Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 6654

### Harmony id=de.viathinksoft.tmpe, version=2.0.0.

9, location=E:\Games\data-
0000000015990080
### Started from System.Void TrafficManager.Patcher::Install(), location E:\Games\
data-0000000016967040
### At 2022-11-05 01.18.48
### 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::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.s => Label1
IL_001D: ldarg.0
IL_001E: ldarg 1
IL_0022: ldarg 3
IL_0026: call static System.Boolean
TrafficManager.Patch._VehicleManager.CreateVehiclePatch::Prefix(VehicleManager
__instance, System.UInt16& vehicle, VehicleInfo info)
IL_002B: stloc 3 (System.Boolean)
IL_002F: nop
IL_0030: ldloc 3 (System.Boolean)
IL_0034: brfalse => Label0
IL_0039: // start original
IL_0039: ldarg.0
IL_003A: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_003F: ldloca.s 0 (System.UInt16)
IL_0041: ldarg.2
IL_0042: callvirt System.Boolean Array16`1<Vehicle>::CreateItem(System.UInt16&
item, ColossalFramework.Math.Randomizer& r)
IL_0047: brfalse => Label2
IL_004C: ldarg.1
IL_004D: ldloc.0
IL_004E: stind.i2
IL_004F: ldloca.s 1 (Vehicle+Frame)
IL_0051: ldarg.s 4
IL_0053: call static UnityEngine.Quaternion
UnityEngine.Quaternion::get_identity()
IL_0058: call System.Void Frame::.ctor(UnityEngine.Vector3 position,
UnityEngine.Quaternion rotation)
IL_005D: ldarg.0
IL_005E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0063: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0068: ldarg.1
IL_0069: ldind.u2
IL_006A: ldelema Vehicle
IL_006F: ldc.i4.1
IL_0070: stfld Flags Vehicle::m_flags
IL_0075: ldarg.0
IL_0076: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_007B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0080: ldarg.1
IL_0081: ldind.u2
IL_0082: ldelema Vehicle
IL_0087: ldc.i4.0
IL_0088: stfld Flags2 Vehicle::m_flags2
IL_008D: ldarg.s 6
IL_008F: brfalse => Label3
IL_0094: ldarg.0
IL_0095: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_009A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_009F: ldarg.1
IL_00A0: ldind.u2
IL_00A1: ldelema Vehicle
IL_00A6: dup
IL_00A7: ldfld Flags Vehicle::m_flags
IL_00AC: ldc.i4.s 32
IL_00AE: or
IL_00AF: stfld Flags Vehicle::m_flags
IL_00B4: Label3
IL_00B4: ldarg.s 7
IL_00B6: brfalse => Label4
IL_00BB: ldarg.0
IL_00BC: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00C1: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00C6: ldarg.1
IL_00C7: ldind.u2
IL_00C8: ldelema Vehicle
IL_00CD: dup
IL_00CE: ldfld Flags Vehicle::m_flags
IL_00D3: ldc.i4.s 16
IL_00D5: or
IL_00D6: stfld Flags Vehicle::m_flags
IL_00DB: Label4
IL_00DB: ldarg.0
IL_00DC: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00E1: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00E6: ldarg.1
IL_00E7: ldind.u2
IL_00E8: ldelema Vehicle
IL_00ED: ldarg.3
IL_00EE: call System.Void Vehicle::set_Info(VehicleInfo value)
IL_00F3: ldarg.0
IL_00F4: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00F9: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00FE: ldarg.1
IL_00FF: ldind.u2
IL_0100: ldelema Vehicle
IL_0105: ldloc.1
IL_0106: stfld Frame Vehicle::m_frame0
IL_010B: ldarg.0
IL_010C: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0111: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0116: ldarg.1
IL_0117: ldind.u2
IL_0118: ldelema Vehicle
IL_011D: ldloc.1
IL_011E: stfld Frame Vehicle::m_frame1
IL_0123: ldarg.0
IL_0124: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0129: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_012E: ldarg.1
IL_012F: ldind.u2
IL_0130: ldelema Vehicle
IL_0135: ldloc.1
IL_0136: stfld Frame Vehicle::m_frame2
IL_013B: ldarg.0
IL_013C: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0141: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0146: ldarg.1
IL_0147: ldind.u2
IL_0148: ldelema Vehicle
IL_014D: ldloc.1
IL_014E: stfld Frame Vehicle::m_frame3
IL_0153: ldarg.0
IL_0154: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0159: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_015E: ldarg.1
IL_015F: ldind.u2
IL_0160: ldelema Vehicle
IL_0165: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_016A: stfld UnityEngine.Vector4 Vehicle::m_targetPos0
IL_016F: ldarg.0
IL_0170: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0175: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_017A: ldarg.1
IL_017B: ldind.u2
IL_017C: ldelema Vehicle
IL_0181: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_0186: stfld UnityEngine.Vector4 Vehicle::m_targetPos1
IL_018B: ldarg.0
IL_018C: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0191: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0196: ldarg.1
IL_0197: ldind.u2
IL_0198: ldelema Vehicle
IL_019D: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_01A2: stfld UnityEngine.Vector4 Vehicle::m_targetPos2
IL_01A7: ldarg.0
IL_01A8: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01AD: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01B2: ldarg.1
IL_01B3: ldind.u2
IL_01B4: ldelema Vehicle
IL_01B9: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_01BE: stfld UnityEngine.Vector4 Vehicle::m_targetPos3
IL_01C3: ldarg.0
IL_01C4: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01C9: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01CE: ldarg.1
IL_01CF: ldind.u2
IL_01D0: ldelema Vehicle
IL_01D5: ldc.i4.0
IL_01D6: stfld System.UInt16 Vehicle::m_sourceBuilding
IL_01DB: ldarg.0
IL_01DC: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01E1: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01E6: ldarg.1
IL_01E7: ldind.u2
IL_01E8: ldelema Vehicle
IL_01ED: ldc.i4.0
IL_01EE: stfld System.UInt16 Vehicle::m_targetBuilding
IL_01F3: ldarg.0
IL_01F4: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01F9: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01FE: ldarg.1
IL_01FF: ldind.u2
IL_0200: ldelema Vehicle
IL_0205: ldarg.s 5
IL_0207: conv.u1
IL_0208: stfld System.Byte Vehicle::m_transferType
IL_020D: ldarg.0
IL_020E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0213: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0218: ldarg.1
IL_0219: ldind.u2
IL_021A: ldelema Vehicle
IL_021F: ldc.i4.0
IL_0220: stfld System.UInt16 Vehicle::m_transferSize
IL_0225: ldarg.0
IL_0226: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_022B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0230: ldarg.1
IL_0231: ldind.u2
IL_0232: ldelema Vehicle
IL_0237: ldc.i4.0
IL_0238: stfld System.Byte Vehicle::m_waitCounter
IL_023D: ldarg.0
IL_023E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0243: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0248: ldarg.1
IL_0249: ldind.u2
IL_024A: ldelema Vehicle
IL_024F: ldc.i4.0
IL_0250: stfld System.Byte Vehicle::m_blockCounter
IL_0255: ldarg.0
IL_0256: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_025B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0260: ldarg.1
IL_0261: ldind.u2
IL_0262: ldelema Vehicle
IL_0267: ldc.i4.0
IL_0268: stfld System.UInt16 Vehicle::m_nextGridVehicle
IL_026D: ldarg.0
IL_026E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0273: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0278: ldarg.1
IL_0279: ldind.u2
IL_027A: ldelema Vehicle
IL_027F: ldc.i4.0
IL_0280: stfld System.UInt16 Vehicle::m_nextOwnVehicle
IL_0285: ldarg.0
IL_0286: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_028B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0290: ldarg.1
IL_0291: ldind.u2
IL_0292: ldelema Vehicle
IL_0297: ldc.i4.0
IL_0298: stfld System.UInt16 Vehicle::m_nextGuestVehicle
IL_029D: ldarg.0
IL_029E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02A3: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02A8: ldarg.1
IL_02A9: ldind.u2
IL_02AA: ldelema Vehicle
IL_02AF: ldc.i4.0
IL_02B0: stfld System.UInt16 Vehicle::m_nextLineVehicle
IL_02B5: ldarg.0
IL_02B6: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02BB: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02C0: ldarg.1
IL_02C1: ldind.u2
IL_02C2: ldelema Vehicle
IL_02C7: ldc.i4.0
IL_02C8: stfld System.UInt16 Vehicle::m_transportLine
IL_02CD: ldarg.0
IL_02CE: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02D3: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02D8: ldarg.1
IL_02D9: ldind.u2
IL_02DA: ldelema Vehicle
IL_02DF: ldc.i4.0
IL_02E0: stfld System.UInt16 Vehicle::m_leadingVehicle
IL_02E5: ldarg.0
IL_02E6: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02EB: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02F0: ldarg.1
IL_02F1: ldind.u2
IL_02F2: ldelema Vehicle
IL_02F7: ldc.i4.0
IL_02F8: stfld System.UInt16 Vehicle::m_trailingVehicle
IL_02FD: ldarg.0
IL_02FE: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0303: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0308: ldarg.1
IL_0309: ldind.u2
IL_030A: ldelema Vehicle
IL_030F: ldc.i4.0
IL_0310: stfld System.UInt16 Vehicle::m_cargoParent
IL_0315: ldarg.0
IL_0316: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_031B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0320: ldarg.1
IL_0321: ldind.u2
IL_0322: ldelema Vehicle
IL_0327: ldc.i4.0
IL_0328: stfld System.UInt16 Vehicle::m_firstCargo
IL_032D: ldarg.0
IL_032E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0333: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0338: ldarg.1
IL_0339: ldind.u2
IL_033A: ldelema Vehicle
IL_033F: ldc.i4.0
IL_0340: stfld System.UInt16 Vehicle::m_nextCargo
IL_0345: ldarg.0
IL_0346: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_034B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0350: ldarg.1
IL_0351: ldind.u2
IL_0352: ldelema Vehicle
IL_0357: ldc.i4.0
IL_0358: stfld System.UInt32 Vehicle::m_citizenUnits
IL_035D: ldarg.0
IL_035E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0363: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0368: ldarg.1
IL_0369: ldind.u2
IL_036A: ldelema Vehicle
IL_036F: ldc.i4.0
IL_0370: stfld System.UInt32 Vehicle::m_path
IL_0375: ldarg.0
IL_0376: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_037B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0380: ldarg.1
IL_0381: ldind.u2
IL_0382: ldelema Vehicle
IL_0387: ldc.i4.0
IL_0388: stfld System.Byte Vehicle::m_lastFrame
IL_038D: ldarg.0
IL_038E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0393: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0398: ldarg.1
IL_0399: ldind.u2
IL_039A: ldelema Vehicle
IL_039F: ldc.i4.0
IL_03A0: stfld System.Byte Vehicle::m_pathPositionIndex
IL_03A5: ldarg.0
IL_03A6: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03AB: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03B0: ldarg.1
IL_03B1: ldind.u2
IL_03B2: ldelema Vehicle
IL_03B7: ldc.i4.0
IL_03B8: stfld System.Byte Vehicle::m_lastPathOffset
IL_03BD: ldarg.0
IL_03BE: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03C3: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03C8: ldarg.1
IL_03C9: ldind.u2
IL_03CA: ldelema Vehicle
IL_03CF: ldc.i4.0
IL_03D0: stfld System.Byte Vehicle::m_gateIndex
IL_03D5: ldarg.0
IL_03D6: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03DB: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03E0: ldarg.1
IL_03E1: ldind.u2
IL_03E2: ldelema Vehicle
IL_03E7: ldc.i4.0
IL_03E8: stfld System.UInt16 Vehicle::m_waterSource
IL_03ED: ldarg.0
IL_03EE: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03F3: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03F8: ldarg.1
IL_03F9: ldind.u2
IL_03FA: ldelema Vehicle
IL_03FF: ldc.i4.0
IL_0400: stfld System.UInt16 Vehicle::m_touristCount
IL_0405: ldarg.0
IL_0406: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_040B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0410: ldarg.1
IL_0411: ldind.u2
IL_0412: ldelema Vehicle
IL_0417: ldc.i4.0
IL_0418: stfld System.UInt16 Vehicle::m_custom
IL_041D: ldarg.3
IL_041E: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_0423: ldarg.1
IL_0424: ldind.u2
IL_0425: ldarg.0
IL_0426: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_042B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0430: ldarg.1
IL_0431: ldind.u2
IL_0432: ldelema Vehicle
IL_0437: callvirt virtual System.Void VehicleAI::CreateVehicle(System.UInt16
vehicleID, Vehicle& data)
IL_043C: ldarg.3
IL_043D: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_0442: ldarg.1
IL_0443: ldind.u2
IL_0444: ldarg.0
IL_0445: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_044A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_044F: ldarg.1
IL_0450: ldind.u2
IL_0451: ldelema Vehicle
IL_0456: ldarg.0
IL_0457: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_045C: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0461: ldarg.1
IL_0462: ldind.u2
IL_0463: ldelema Vehicle
IL_0468: ldflda Frame Vehicle::m_frame0
IL_046D: callvirt virtual System.Void VehicleAI::FrameDataUpdated(System.UInt16
vehicleID, Vehicle& vehicleData, Frame& frameData)
IL_0472: ldarg.0
IL_0473: ldarg.0
IL_0474: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0479: callvirt System.UInt32 Array16`1<Vehicle>::ItemCount()
IL_047E: ldc.i4.1
IL_047F: sub
IL_0480: stfld System.Int32 VehicleManager::m_vehicleCount
IL_0485: ldc.i4.1
IL_0486: br => Label5
IL_048B: Label2
IL_048B: ldarg.1
IL_048C: ldc.i4.0
IL_048D: stind.i2
IL_048E: ldc.i4.0
IL_048F: // end original
IL_048F: Label5
IL_048F: stloc 2 (System.Boolean)
IL_0493: Label0
IL_0493: ldarg.0
IL_0494: ldloc 2 (System.Boolean)
IL_0498: ldarg 1
IL_049C: call static System.Void
TrafficManager.Patch._VehicleManager.CreateVehiclePatch::Postfix(VehicleManager
__instance, System.Boolean __result, System.UInt16& vehicle)
IL_04A1: ldloc 2 (System.Boolean)
IL_04A5: ret
DONE

### Patch: System.Void VehicleManager::ReleaseVehicle(System.UInt16 vehicle)


### Replacement: static System.Void
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<Vehicle> VehicleManager::m_vehicles
IL_0012: ldfld Vehicle[] Array16`1<Vehicle>::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::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<NetSegment> NetManager::m_segments
IL_0030: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0047: ldfld NetSegment[] Array16`1<NetSegment>::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::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<NetNode> NetManager::m_nodes
IL_0006: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0021: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_00CD: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_00F3: ldfld NetSegment[] Array16`1<NetSegment>::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<LogChannel>::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 RoadBaseAI::TrafficLightSimulationStep(System.UInt16


nodeID, NetNode& data)
### Replacement: static System.Void
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.Int32
IL_0000: Local var 38: System.UInt16
IL_0000: Local var 39: RoadBaseAI/TrafficLightState
IL_0000: Local var 40: RoadBaseAI/TrafficLightState
IL_0000: Local var 41: UnityEngine.Vector3
IL_0000: Local var 42: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 42 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 42 (System.Boolean)
IL_000E: ldloc 42 (System.Boolean)
IL_0012: brfalse.s => Label1
IL_0014: ldnull
IL_0015: ldarg 0
IL_0019: ldarg 1
IL_001D: call static System.Boolean
TrafficManager.Patch._TrainTrackBase.LevelCrossingSimulationStepPatch::Prefix(Train
TrackBaseAI __instance, System.UInt16 nodeID, NetNode& data)
IL_0022: stloc 42 (System.Boolean)
IL_0026: nop
IL_0027: ldloc 42 (System.Boolean)
IL_002B: brfalse => Label0
IL_0030: // start original
IL_0030: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0035: stloc.0
IL_0036: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_003B: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0040: stloc.1
IL_0041: ldarg.1
IL_0042: ldfld System.Byte NetNode::m_maxWaitTime
IL_0047: ldc.i4.3
IL_0048: and
IL_0049: stloc.2
IL_004A: ldarg.1
IL_004B: ldfld System.Byte NetNode::m_maxWaitTime
IL_0050: ldc.i4.2
IL_0051: shr
IL_0052: ldc.i4.7
IL_0053: and
IL_0054: stloc.3
IL_0055: ldarg.1
IL_0056: ldfld System.Byte NetNode::m_maxWaitTime
IL_005B: ldc.i4.5
IL_005C: shr
IL_005D: stloc.s 4 (System.Int32)
IL_005F: ldc.i4.m1
IL_0060: stloc.s 5 (System.Int32)
IL_0062: ldc.i4.m1
IL_0063: stloc.s 6 (System.Int32)
IL_0065: ldc.i4.m1
IL_0066: stloc.s 7 (System.Int32)
IL_0068: ldc.i4.m1
IL_0069: stloc.s 8 (System.Int32)
IL_006B: ldc.i4.m1
IL_006C: stloc.s 9 (System.Int32)
IL_006E: ldc.i4.m1
IL_006F: stloc.s 10 (System.Int32)
IL_0071: ldc.i4.0
IL_0072: stloc.s 11 (System.Int32)
IL_0074: ldc.i4.0
IL_0075: stloc.s 12 (System.Int32)
IL_0077: ldc.i4.0
IL_0078: stloc.s 13 (System.Int32)
IL_007A: ldc.i4.0
IL_007B: stloc.s 14 (System.Int32)
IL_007D: ldc.i4.0
IL_007E: stloc.s 15 (System.Int32)
IL_0080: ldc.i4.0
IL_0081: stloc.s 16 (System.Int32)
IL_0083: br => Label2
IL_0088: Label24
IL_0088: ldarg.1
IL_0089: ldloc.s 16 (System.Int32)
IL_008B: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0090: stloc.s 17 (System.UInt16)
IL_0092: ldloc.s 17 (System.UInt16)
IL_0094: brfalse => Label3
IL_0099: ldc.i4.0
IL_009A: stloc.s 18 (System.Int32)
IL_009C: ldc.i4.0
IL_009D: stloc.s 19 (System.Int32)
IL_009F: ldloc.0
IL_00A0: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_00A5: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00AA: ldloc.s 17 (System.UInt16)
IL_00AC: ldelema NetSegment
IL_00B1: ldloc.s 17 (System.UInt16)
IL_00B3: ldc.i4.s 33
IL_00B5: ldc.i4 65601
IL_00BA: ldloca.s 18 (System.Int32)
IL_00BC: ldloca.s 19 (System.Int32)
IL_00BE: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_00C3: ldloc.0
IL_00C4: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_00C9: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00CE: ldloc.s 17 (System.UInt16)
IL_00D0: ldelema NetSegment
IL_00D5: ldfld System.UInt16 NetSegment::m_startNode
IL_00DA: ldarg.0
IL_00DB: ceq
IL_00DD: stloc.s 20 (System.Boolean)
IL_00DF: ldloc.s 20 (System.Boolean)
IL_00E1: brfalse => Label4
IL_00E6: ldloc.s 19 (System.Int32)
IL_00E8: ldc.i4.0
IL_00E9: ceq
IL_00EB: ldc.i4.0
IL_00EC: ceq
IL_00EE: br => Label5
IL_00F3: Label4
IL_00F3: ldloc.s 18 (System.Int32)
IL_00F5: ldc.i4.0
IL_00F6: ceq
IL_00F8: ldc.i4.0
IL_00F9: ceq
IL_00FB: Label5
IL_00FB: stloc.s 21 (System.Boolean)
IL_00FD: ldloc.s 20 (System.Boolean)
IL_00FF: brfalse => Label6
IL_0104: ldloc.s 18 (System.Int32)
IL_0106: ldc.i4.0
IL_0107: ceq
IL_0109: ldc.i4.0
IL_010A: ceq
IL_010C: br => Label7
IL_0111: Label6
IL_0111: ldloc.s 19 (System.Int32)
IL_0113: ldc.i4.0
IL_0114: ceq
IL_0116: ldc.i4.0
IL_0117: ceq
IL_0119: Label7
IL_0119: stloc.s 22 (System.Boolean)
IL_011B: ldloc.s 21 (System.Boolean)
IL_011D: brfalse => Label8
IL_0122: ldloc.s 11 (System.Int32)
IL_0124: ldc.i4.1
IL_0125: ldloc.s 16 (System.Int32)
IL_0127: ldc.i4.s 31
IL_0129: and
IL_012A: shl
IL_012B: or
IL_012C: stloc.s 11 (System.Int32)
IL_012E: Label8
IL_012E: ldloc.s 22 (System.Boolean)
IL_0130: brfalse => Label9
IL_0135: ldloc.s 12 (System.Int32)
IL_0137: ldc.i4.1
IL_0138: ldloc.s 16 (System.Int32)
IL_013A: ldc.i4.s 31
IL_013C: and
IL_013D: shl
IL_013E: or
IL_013F: stloc.s 12 (System.Int32)
IL_0141: ldloc.s 14 (System.Int32)
IL_0143: ldc.i4.1
IL_0144: add
IL_0145: stloc.s 14 (System.Int32)
IL_0147: Label9
IL_0147: ldarg.0
IL_0148: ldloc.0
IL_0149: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_014E: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0153: ldloc.s 17 (System.UInt16)
IL_0155: ldelema NetSegment
IL_015A: ldloc.1
IL_015B: ldc.i4 256
IL_0160: sub
IL_0161: ldloca.s 23 (RoadBaseAI+TrafficLightState)
IL_0163: ldloca.s 24 (RoadBaseAI+TrafficLightState)
IL_0165: ldloca.s 25 (System.Boolean)
IL_0167: ldloca.s 26 (System.Boolean)
IL_0169: 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_016E: ldloc.s 24 (RoadBaseAI+TrafficLightState)
IL_0170: ldc.i4.2
IL_0171: and
IL_0172: brfalse => Label10
IL_0177: ldloc.s 26 (System.Boolean)
IL_0179: brfalse => Label11
IL_017E: ldloc.s 8 (System.Int32)
IL_0180: ldc.i4.m1
IL_0181: bne.un => Label12
IL_0186: ldloc.s 16 (System.Int32)
IL_0188: stloc.s 8 (System.Int32)
IL_018A: Label12
IL_018A: ldloc.s 10 (System.Int32)
IL_018C: ldc.i4.m1
IL_018D: bne.un => Label13
IL_0192: ldloc.s 15 (System.Int32)
IL_0194: ldloc.s 4 (System.Int32)
IL_0196: blt => Label14
IL_019B: ldloc.s 16 (System.Int32)
IL_019D: stloc.s 10 (System.Int32)
IL_019F: Label10
IL_019F: Label11
IL_019F: Label13
IL_019F: Label14
IL_019F: ldloc.s 15 (System.Int32)
IL_01A1: ldc.i4.1
IL_01A2: add
IL_01A3: stloc.s 15 (System.Int32)
IL_01A5: ldloc.s 21 (System.Boolean)
IL_01A7: brtrue => Label15
IL_01AC: ldloc.s 25 (System.Boolean)
IL_01AE: brfalse => Label16
IL_01B3: Label15
IL_01B3: ldloc.s 23 (RoadBaseAI+TrafficLightState)
IL_01B5: ldc.i4.2
IL_01B6: and
IL_01B7: brtrue => Label17
IL_01BC: ldloc.s 16 (System.Int32)
IL_01BE: stloc.s 6 (System.Int32)
IL_01C0: ldloc.s 25 (System.Boolean)
IL_01C2: brfalse => Label18
IL_01C7: ldloc.s 16 (System.Int32)
IL_01C9: stloc.s 5 (System.Int32)
IL_01CB: Label18
IL_01CB: br => Label19
IL_01D0: Label17
IL_01D0: ldloc.s 25 (System.Boolean)
IL_01D2: brfalse => Label20
IL_01D7: ldloc.s 7 (System.Int32)
IL_01D9: ldc.i4.m1
IL_01DA: bne.un => Label21
IL_01DF: ldloc.s 16 (System.Int32)
IL_01E1: stloc.s 7 (System.Int32)
IL_01E3: Label21
IL_01E3: ldloc.s 9 (System.Int32)
IL_01E5: ldc.i4.m1
IL_01E6: bne.un => Label22
IL_01EB: ldloc.s 13 (System.Int32)
IL_01ED: ldloc.3
IL_01EE: blt => Label23
IL_01F3: ldloc.s 16 (System.Int32)
IL_01F5: stloc.s 9 (System.Int32)
IL_01F7: Label19
IL_01F7: Label20
IL_01F7: Label22
IL_01F7: Label23
IL_01F7: ldloc.s 13 (System.Int32)
IL_01F9: ldc.i4.1
IL_01FA: add
IL_01FB: stloc.s 13 (System.Int32)
IL_01FD: Label3
IL_01FD: Label16
IL_01FD: ldloc.s 16 (System.Int32)
IL_01FF: ldc.i4.1
IL_0200: add
IL_0201: stloc.s 16 (System.Int32)
IL_0203: Label2
IL_0203: ldloc.s 16 (System.Int32)
IL_0205: ldc.i4.8
IL_0206: blt => Label24
IL_020B: ldloc.s 9 (System.Int32)
IL_020D: ldc.i4.m1
IL_020E: bne.un => Label25
IL_0213: ldloc.s 7 (System.Int32)
IL_0215: stloc.s 9 (System.Int32)
IL_0217: Label25
IL_0217: ldloc.s 10 (System.Int32)
IL_0219: ldc.i4.m1
IL_021A: bne.un => Label26
IL_021F: ldloc.s 8 (System.Int32)
IL_0221: stloc.s 10 (System.Int32)
IL_0223: Label26
IL_0223: ldloc.s 6 (System.Int32)
IL_0225: ldc.i4.m1
IL_0226: beq => Label27
IL_022B: ldloc.s 5 (System.Int32)
IL_022D: ldc.i4.m1
IL_022E: beq => Label28
IL_0233: ldloc.2
IL_0234: ldc.i4.1
IL_0235: bgt => Label29
IL_023A: ldc.i4.m1
IL_023B: stloc.s 9 (System.Int32)
IL_023D: ldc.i4.m1
IL_023E: stloc.s 10 (System.Int32)
IL_0240: ldloc.2
IL_0241: ldc.i4.1
IL_0242: add
IL_0243: stloc.2
IL_0244: Label27
IL_0244: Label28
IL_0244: Label29
IL_0244: ldloc.s 10 (System.Int32)
IL_0246: ldc.i4.m1
IL_0247: beq => Label30
IL_024C: ldloc.s 9 (System.Int32)
IL_024E: ldc.i4.m1
IL_024F: beq => Label31
IL_0254: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0259: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_025E: ldc.i4.3
IL_025F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0264: brfalse => Label32
IL_0269: ldc.i4.m1
IL_026A: stloc.s 10 (System.Int32)
IL_026C: Label30
IL_026C: Label31
IL_026C: Label32
IL_026C: ldloc.s 9 (System.Int32)
IL_026E: ldc.i4.m1
IL_026F: beq => Label33
IL_0274: ldloc.s 9 (System.Int32)
IL_0276: stloc.s 6 (System.Int32)
IL_0278: Label33
IL_0278: ldloc.s 10 (System.Int32)
IL_027A: ldloc.s 6 (System.Int32)
IL_027C: bne.un => Label34
IL_0281: ldc.i4.m1
IL_0282: stloc.s 6 (System.Int32)
IL_0284: Label34
IL_0284: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_0289: stloc.s 27 (UnityEngine.Vector3)
IL_028B: ldloc.s 10 (System.Int32)
IL_028D: ldc.i4.m1
IL_028E: beq => Label35
IL_0293: ldarg.1
IL_0294: ldloc.s 10 (System.Int32)
IL_0296: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_029B: stloc.s 28 (System.UInt16)
IL_029D: ldloc.0
IL_029E: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02A3: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02A8: ldloc.s 28 (System.UInt16)
IL_02AA: ldelema NetSegment
IL_02AF: ldarg.0
IL_02B0: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_02B5: stloc.s 27 (UnityEngine.Vector3)
IL_02B7: ldloc.s 6 (System.Int32)
IL_02B9: ldc.i4.m1
IL_02BA: beq => Label36
IL_02BF: ldarg.1
IL_02C0: ldloc.s 6 (System.Int32)
IL_02C2: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_02C7: stloc.s 28 (System.UInt16)
IL_02C9: ldloc.0
IL_02CA: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02CF: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02D4: ldloc.s 28 (System.UInt16)
IL_02D6: ldelema NetSegment
IL_02DB: ldarg.0
IL_02DC: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_02E1: stloc.s 29 (UnityEngine.Vector3)
IL_02E3: ldloca.s 29 (UnityEngine.Vector3)
IL_02E5: ldfld System.Single UnityEngine.Vector3::x
IL_02EA: ldloca.s 27 (UnityEngine.Vector3)
IL_02EC: ldfld System.Single UnityEngine.Vector3::x
IL_02F1: mul
IL_02F2: ldloca.s 29 (UnityEngine.Vector3)
IL_02F4: ldfld System.Single UnityEngine.Vector3::z
IL_02F9: ldloca.s 27 (UnityEngine.Vector3)
IL_02FB: ldfld System.Single UnityEngine.Vector3::z
IL_0300: mul
IL_0301: add
IL_0302: ldc.r4 -0.5
IL_0307: bge.un => Label37
IL_030C: ldc.i4.m1
IL_030D: stloc.s 6 (System.Int32)
IL_030F: Label36
IL_030F: Label37
IL_030F: ldloc.s 6 (System.Int32)
IL_0311: ldc.i4.m1
IL_0312: bne.un => Label38
IL_0317: ldc.i4.0
IL_0318: stloc.s 30 (System.Int32)
IL_031A: br => Label39
IL_031F: Label45
IL_031F: ldloc.s 30 (System.Int32)
IL_0321: ldloc.s 10 (System.Int32)
IL_0323: beq => Label40
IL_0328: ldloc.s 11 (System.Int32)
IL_032A: ldc.i4.1
IL_032B: ldloc.s 30 (System.Int32)
IL_032D: ldc.i4.s 31
IL_032F: and
IL_0330: shl
IL_0331: and
IL_0332: brfalse => Label41
IL_0337: ldarg.1
IL_0338: ldloc.s 30 (System.Int32)
IL_033A: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_033F: stloc.s 28 (System.UInt16)
IL_0341: ldloc.s 28 (System.UInt16)
IL_0343: brfalse => Label42
IL_0348: ldloc.0
IL_0349: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_034E: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0353: ldloc.s 28 (System.UInt16)
IL_0355: ldelema NetSegment
IL_035A: ldarg.0
IL_035B: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0360: stloc.s 31 (UnityEngine.Vector3)
IL_0362: ldloca.s 31 (UnityEngine.Vector3)
IL_0364: ldfld System.Single UnityEngine.Vector3::x
IL_0369: ldloca.s 27 (UnityEngine.Vector3)
IL_036B: ldfld System.Single UnityEngine.Vector3::x
IL_0370: mul
IL_0371: ldloca.s 31 (UnityEngine.Vector3)
IL_0373: ldfld System.Single UnityEngine.Vector3::z
IL_0378: ldloca.s 27 (UnityEngine.Vector3)
IL_037A: ldfld System.Single UnityEngine.Vector3::z
IL_037F: mul
IL_0380: add
IL_0381: ldc.r4 -0.5
IL_0386: blt.un => Label43
IL_038B: ldloc.s 30 (System.Int32)
IL_038D: stloc.s 6 (System.Int32)
IL_038F: br => Label44
IL_0394: Label40
IL_0394: Label41
IL_0394: Label42
IL_0394: Label43
IL_0394: ldloc.s 30 (System.Int32)
IL_0396: ldc.i4.1
IL_0397: add
IL_0398: stloc.s 30 (System.Int32)
IL_039A: Label39
IL_039A: ldloc.s 30 (System.Int32)
IL_039C: ldc.i4.8
IL_039D: blt => Label45
IL_03A2: Label35
IL_03A2: Label38
IL_03A2: Label44
IL_03A2: ldc.i4.m1
IL_03A3: stloc.s 32 (System.Int32)
IL_03A5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_03AA: stloc.s 33 (UnityEngine.Vector3)
IL_03AC: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_03B1: stloc.s 34 (UnityEngine.Vector3)
IL_03B3: ldloc.s 6 (System.Int32)
IL_03B5: ldc.i4.m1
IL_03B6: beq => Label46
IL_03BB: ldarg.1
IL_03BC: ldloc.s 6 (System.Int32)
IL_03BE: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_03C3: stloc.s 35 (System.UInt16)
IL_03C5: ldloc.0
IL_03C6: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_03CB: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_03D0: ldloc.s 35 (System.UInt16)
IL_03D2: ldelema NetSegment
IL_03D7: ldarg.0
IL_03D8: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_03DD: stloc.s 33 (UnityEngine.Vector3)
IL_03DF: ldloc.s 11 (System.Int32)
IL_03E1: ldloc.s 12 (System.Int32)
IL_03E3: and
IL_03E4: ldc.i4.1
IL_03E5: ldloc.s 6 (System.Int32)
IL_03E7: ldc.i4.s 31
IL_03E9: and
IL_03EA: shl
IL_03EB: and
IL_03EC: brfalse => Label47
IL_03F1: ldc.i4.0
IL_03F2: stloc.s 36 (System.Int32)
IL_03F4: br => Label48
IL_03F9: Label59
IL_03F9: ldloc.s 36 (System.Int32)
IL_03FB: ldloc.s 6 (System.Int32)
IL_03FD: beq => Label49
IL_0402: ldloc.s 36 (System.Int32)
IL_0404: ldloc.s 10 (System.Int32)
IL_0406: beq => Label50
IL_040B: ldloc.s 11 (System.Int32)
IL_040D: ldloc.s 12 (System.Int32)
IL_040F: and
IL_0410: ldc.i4.1
IL_0411: ldloc.s 36 (System.Int32)
IL_0413: ldc.i4.s 31
IL_0415: and
IL_0416: shl
IL_0417: and
IL_0418: brfalse => Label51
IL_041D: ldarg.1
IL_041E: ldloc.s 36 (System.Int32)
IL_0420: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0425: stloc.s 35 (System.UInt16)
IL_0427: ldloc.s 35 (System.UInt16)
IL_0429: brfalse => Label52
IL_042E: ldloc.0
IL_042F: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0434: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0439: ldloc.s 35 (System.UInt16)
IL_043B: ldelema NetSegment
IL_0440: ldarg.0
IL_0441: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0446: stloc.s 34 (UnityEngine.Vector3)
IL_0448: ldloc.s 10 (System.Int32)
IL_044A: ldc.i4.m1
IL_044B: beq => Label53
IL_0450: ldloca.s 34 (UnityEngine.Vector3)
IL_0452: ldfld System.Single UnityEngine.Vector3::x
IL_0457: ldloca.s 27 (UnityEngine.Vector3)
IL_0459: ldfld System.Single UnityEngine.Vector3::x
IL_045E: mul
IL_045F: ldloca.s 34 (UnityEngine.Vector3)
IL_0461: ldfld System.Single UnityEngine.Vector3::z
IL_0466: ldloca.s 27 (UnityEngine.Vector3)
IL_0468: ldfld System.Single UnityEngine.Vector3::z
IL_046D: mul
IL_046E: add
IL_046F: ldc.r4 -0.5
IL_0474: blt.un => Label54
IL_0479: Label53
IL_0479: ldloc.s 14 (System.Int32)
IL_047B: ldc.i4.2
IL_047C: bne.un => Label55
IL_0481: ldloc.s 36 (System.Int32)
IL_0483: stloc.s 32 (System.Int32)
IL_0485: br => Label56
IL_048A: Label55
IL_048A: ldloca.s 34 (UnityEngine.Vector3)
IL_048C: ldfld System.Single UnityEngine.Vector3::x
IL_0491: ldloca.s 33 (UnityEngine.Vector3)
IL_0493: ldfld System.Single UnityEngine.Vector3::x
IL_0498: mul
IL_0499: ldloca.s 34 (UnityEngine.Vector3)
IL_049B: ldfld System.Single UnityEngine.Vector3::z
IL_04A0: ldloca.s 33 (UnityEngine.Vector3)
IL_04A2: ldfld System.Single UnityEngine.Vector3::z
IL_04A7: mul
IL_04A8: add
IL_04A9: ldc.r4 -0.9396926
IL_04AE: bge.un => Label57
IL_04B3: ldloc.s 36 (System.Int32)
IL_04B5: stloc.s 32 (System.Int32)
IL_04B7: br => Label58
IL_04BC: Label49
IL_04BC: Label50
IL_04BC: Label51
IL_04BC: Label52
IL_04BC: Label54
IL_04BC: Label57
IL_04BC: ldloc.s 36 (System.Int32)
IL_04BE: ldc.i4.1
IL_04BF: add
IL_04C0: stloc.s 36 (System.Int32)
IL_04C2: Label48
IL_04C2: ldloc.s 36 (System.Int32)
IL_04C4: ldc.i4.8
IL_04C5: blt => Label59
IL_04CA: Label46
IL_04CA: Label47
IL_04CA: Label56
IL_04CA: Label58
IL_04CA: ldc.i4.0
IL_04CB: stloc.s 37 (System.Int32)
IL_04CD: br => Label60
IL_04D2: Label79
IL_04D2: ldarg.1
IL_04D3: ldloc.s 37 (System.Int32)
IL_04D5: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_04DA: stloc.s 38 (System.UInt16)
IL_04DC: ldloc.s 38 (System.UInt16)
IL_04DE: brfalse => Label61
IL_04E3: ldarg.0
IL_04E4: ldloc.0
IL_04E5: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_04EA: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_04EF: ldloc.s 38 (System.UInt16)
IL_04F1: ldelema NetSegment
IL_04F6: ldloc.1
IL_04F7: ldc.i4 256
IL_04FC: sub
IL_04FD: ldloca.s 39 (RoadBaseAI+TrafficLightState)
IL_04FF: ldloca.s 40 (RoadBaseAI+TrafficLightState)
IL_0501: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_0506: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0508: ldc.i4.s -2
IL_050A: and
IL_050B: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_050D: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_050F: ldc.i4.s -2
IL_0511: and
IL_0512: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0514: ldloc.s 6 (System.Int32)
IL_0516: ldloc.s 37 (System.Int32)
IL_0518: beq => Label62
IL_051D: ldloc.s 32 (System.Int32)
IL_051F: ldloc.s 37 (System.Int32)
IL_0521: bne.un => Label63
IL_0526: Label62
IL_0526: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0528: ldc.i4.2
IL_0529: and
IL_052A: brfalse => Label64
IL_052F: ldc.i4.1
IL_0530: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0532: ldc.i4.0
IL_0533: stloc.2
IL_0534: ldloc.3
IL_0535: ldc.i4.1
IL_0536: add
IL_0537: dup
IL_0538: stloc.3
IL_0539: ldloc.s 13 (System.Int32)
IL_053B: blt => Label65
IL_0540: ldc.i4.0
IL_0541: stloc.3
IL_0542: Label64
IL_0542: Label65
IL_0542: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0544: ldc.i4.2
IL_0545: and
IL_0546: brtrue => Label66
IL_054B: ldc.i4.3
IL_054C: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_054E: Label66
IL_054E: br => Label67
IL_0553: Label63
IL_0553: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0555: ldc.i4.2
IL_0556: and
IL_0557: brtrue => Label68
IL_055C: ldc.i4.3
IL_055D: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_055F: Label68
IL_055F: ldloc.0
IL_0560: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0565: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_056A: ldloc.s 38 (System.UInt16)
IL_056C: ldelema NetSegment
IL_0571: ldarg.0
IL_0572: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0577: stloc.s 41 (UnityEngine.Vector3)
IL_0579: ldloc.s 12 (System.Int32)
IL_057B: ldc.i4.1
IL_057C: ldloc.s 37 (System.Int32)
IL_057E: ldc.i4.s 31
IL_0580: and
IL_0581: shl
IL_0582: and
IL_0583: brfalse => Label69
IL_0588: ldloc.s 10 (System.Int32)
IL_058A: ldloc.s 37 (System.Int32)
IL_058C: beq => Label70
IL_0591: ldloc.s 6 (System.Int32)
IL_0593: ldc.i4.m1
IL_0594: beq => Label71
IL_0599: ldloca.s 41 (UnityEngine.Vector3)
IL_059B: ldfld System.Single UnityEngine.Vector3::x
IL_05A0: ldloca.s 33 (UnityEngine.Vector3)
IL_05A2: ldfld System.Single UnityEngine.Vector3::x
IL_05A7: mul
IL_05A8: ldloca.s 41 (UnityEngine.Vector3)
IL_05AA: ldfld System.Single UnityEngine.Vector3::z
IL_05AF: ldloca.s 33 (UnityEngine.Vector3)
IL_05B1: ldfld System.Single UnityEngine.Vector3::z
IL_05B6: mul
IL_05B7: add
IL_05B8: ldc.r4 -0.5
IL_05BD: blt => Label72
IL_05C2: Label71
IL_05C2: ldloc.s 32 (System.Int32)
IL_05C4: ldc.i4.m1
IL_05C5: beq => Label73
IL_05CA: ldloca.s 41 (UnityEngine.Vector3)
IL_05CC: ldfld System.Single UnityEngine.Vector3::x
IL_05D1: ldloca.s 34 (UnityEngine.Vector3)
IL_05D3: ldfld System.Single UnityEngine.Vector3::x
IL_05D8: mul
IL_05D9: ldloca.s 41 (UnityEngine.Vector3)
IL_05DB: ldfld System.Single UnityEngine.Vector3::z
IL_05E0: ldloca.s 34 (UnityEngine.Vector3)
IL_05E2: ldfld System.Single UnityEngine.Vector3::z
IL_05E7: mul
IL_05E8: add
IL_05E9: ldc.r4 -0.5
IL_05EE: bge.un => Label74
IL_05F3: Label72
IL_05F3: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05F5: ldc.i4.2
IL_05F6: and
IL_05F7: brtrue => Label75
IL_05FC: ldc.i4.3
IL_05FD: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05FF: Label75
IL_05FF: br => Label76
IL_0604: Label69
IL_0604: Label70
IL_0604: Label73
IL_0604: Label74
IL_0604: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0606: ldc.i4.2
IL_0607: and
IL_0608: brfalse => Label77
IL_060D: ldc.i4.1
IL_060E: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0610: ldloc.s 4 (System.Int32)
IL_0612: ldc.i4.1
IL_0613: add
IL_0614: dup
IL_0615: stloc.s 4 (System.Int32)
IL_0617: ldloc.s 15 (System.Int32)
IL_0619: blt => Label78
IL_061E: ldc.i4.0
IL_061F: stloc.s 4 (System.Int32)
IL_0621: Label67
IL_0621: Label76
IL_0621: Label77
IL_0621: Label78
IL_0621: ldarg.0
IL_0622: ldloc.0
IL_0623: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0628: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_062D: ldloc.s 38 (System.UInt16)
IL_062F: ldelema NetSegment
IL_0634: ldloc.1
IL_0635: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0637: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0639: ldc.i4.0
IL_063A: ldc.i4.0
IL_063B: 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_0640: Label61
IL_0640: ldloc.s 37 (System.Int32)
IL_0642: ldc.i4.1
IL_0643: add
IL_0644: stloc.s 37 (System.Int32)
IL_0646: Label60
IL_0646: ldloc.s 37 (System.Int32)
IL_0648: ldc.i4.8
IL_0649: blt => Label79
IL_064E: ldarg.1
IL_064F: ldloc.s 4 (System.Int32)
IL_0651: ldc.i4.5
IL_0652: shl
IL_0653: ldloc.3
IL_0654: ldc.i4.2
IL_0655: shl
IL_0656: or
IL_0657: ldloc.2
IL_0658: or
IL_0659: conv.u1
IL_065A: stfld System.Byte NetNode::m_maxWaitTime
IL_065F: // end original
IL_065F: Label0
IL_065F: ret
DONE

### Patch: static System.Void RoadBaseAI::GetTrafficLightNodeState(System.UInt16


nodeID, NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData, Flags&
flags, UnityEngine.Color& color)
### Replacement: static System.Void
RoadBaseAI::GetTrafficLightNodeState_Patch1(System.UInt16 nodeID, NetNode&
nodeData, System.UInt16 segmentID, NetSegment& segmentData, Flags& 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.s => Label1
IL_0014: ldarg 0
IL_0018: ldarg 1
IL_001C: ldarg 2
IL_0020: ldarg 3
IL_0024: ldarg 4
IL_0028: ldarg 5
IL_002C: call static System.Boolean
TrafficManager.Patch._RoadBaseAI.GetTrafficLightNodeStatePatch::Prefix(System.UInt1
6 nodeID, NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData,
Flags& flags, UnityEngine.Color& color)
IL_0031: stloc 5 (System.Boolean)
IL_0035: nop
IL_0036: ldloc 5 (System.Boolean)
IL_003A: brfalse => Label0
IL_003F: // start original
IL_003F: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0044: ldfld System.UInt32 SimulationManager::m_referenceFrameIndex
IL_0049: ldc.i4.s 15
IL_004B: sub
IL_004C: stloc.2
IL_004D: ldarg.0
IL_004E: ldc.i4.8
IL_004F: shl
IL_0050: ldc.i4 32768
IL_0055: div.un
IL_0056: stloc.3
IL_0057: ldloc.2
IL_0058: ldloc.3
IL_0059: sub
IL_005A: ldc.i4 255
IL_005F: and
IL_0060: stloc.s 4 (System.UInt32)
IL_0062: ldarg.0
IL_0063: ldarg.3
IL_0064: ldloc.2
IL_0065: ldloc.3
IL_0066: sub
IL_0067: ldloca.s 0 (RoadBaseAI+TrafficLightState)
IL_0069: ldloca.s 1 (RoadBaseAI+TrafficLightState)
IL_006B: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_0070: ldarg.s 5
IL_0072: ldc.r4 0.5
IL_0077: stfld System.Single UnityEngine.Color::a
IL_007C: ldloc.0
IL_007D: switch => Labels2,3,4,5
IL_0092: br => Label6
IL_0097: Label2
IL_0097: ldarg.s 5
IL_0099: ldc.r4 1
IL_009E: stfld System.Single UnityEngine.Color::g
IL_00A3: br => Label7
IL_00A8: Label3
IL_00A8: ldloc.s 4 (System.UInt32)
IL_00AA: ldc.i4.s 45
IL_00AC: bge.un => Label8
IL_00B1: ldarg.s 5
IL_00B3: ldc.r4 0
IL_00B8: stfld System.Single UnityEngine.Color::g
IL_00BD: br => Label9
IL_00C2: Label8
IL_00C2: ldloc.s 4 (System.UInt32)
IL_00C4: ldc.i4.s 60
IL_00C6: bge.un => Label10
IL_00CB: ldarg.s 5
IL_00CD: ldc.r4 1
IL_00D2: stfld System.Single UnityEngine.Color::r
IL_00D7: br => Label11
IL_00DC: Label10
IL_00DC: ldarg.s 5
IL_00DE: ldc.r4 1
IL_00E3: stfld System.Single UnityEngine.Color::g
IL_00E8: Label9
IL_00E8: Label11
IL_00E8: br => Label12
IL_00ED: Label4
IL_00ED: ldarg.s 5
IL_00EF: ldc.r4 0
IL_00F4: stfld System.Single UnityEngine.Color::g
IL_00F9: br => Label13
IL_00FE: Label5
IL_00FE: ldloc.s 4 (System.UInt32)
IL_0100: ldc.i4.s 45
IL_0102: bge.un => Label14
IL_0107: ldarg.s 5
IL_0109: ldc.r4 1
IL_010E: stfld System.Single UnityEngine.Color::r
IL_0113: br => Label15
IL_0118: Label14
IL_0118: ldarg.s 5
IL_011A: ldc.r4 0
IL_011F: stfld System.Single UnityEngine.Color::g
IL_0124: Label15
IL_0124: br => Label16
IL_0129: Label6
IL_0129: Label7
IL_0129: Label12
IL_0129: Label13
IL_0129: Label16
IL_0129: ldloc.1
IL_012A: switch => Labels17,18,19,20
IL_013F: br => Label21
IL_0144: Label17
IL_0144: ldarg.s 5
IL_0146: ldc.r4 1
IL_014B: stfld System.Single UnityEngine.Color::b
IL_0150: br => Label22
IL_0155: Label18
IL_0155: ldloc.s 4 (System.UInt32)
IL_0157: ldc.i4.s 45
IL_0159: bge.un => Label23
IL_015E: ldarg.s 5
IL_0160: ldc.r4 0
IL_0165: stfld System.Single UnityEngine.Color::b
IL_016A: br => Label24
IL_016F: Label23
IL_016F: ldarg.s 5
IL_0171: ldc.r4 1
IL_0176: stfld System.Single UnityEngine.Color::b
IL_017B: Label24
IL_017B: br => Label25
IL_0180: Label19
IL_0180: ldarg.s 5
IL_0182: ldc.r4 0
IL_0187: stfld System.Single UnityEngine.Color::b
IL_018C: br => Label26
IL_0191: Label20
IL_0191: ldloc.s 4 (System.UInt32)
IL_0193: ldc.i4.s 45
IL_0195: bge.un => Label27
IL_019A: ldloc.s 4 (System.UInt32)
IL_019C: ldc.i4.8
IL_019D: div.un
IL_019E: ldc.i4.1
IL_019F: and
IL_01A0: ldc.i4.1
IL_01A1: bne.un => Label28
IL_01A6: ldarg.s 5
IL_01A8: ldc.r4 1
IL_01AD: stfld System.Single UnityEngine.Color::b
IL_01B2: Label28
IL_01B2: br => Label29
IL_01B7: Label27
IL_01B7: ldarg.s 5
IL_01B9: ldc.r4 0
IL_01BE: stfld System.Single UnityEngine.Color::b
IL_01C3: Label29
IL_01C3: br => Label30
IL_01C8: // end original
IL_01C8: Label21
IL_01C8: Label22
IL_01C8: Label25
IL_01C8: Label26
IL_01C8: Label30
IL_01C8: Label0
IL_01C8: ret
DONE

### Patch: virtual System.Void RoadBaseAI::UpdateNode(System.UInt16 nodeID,


NetNode& data)
### Replacement: static System.Void RoadBaseAI::UpdateNode_Patch1(RoadBaseAI this,
System.UInt16 nodeID, NetNode& data)
IL_0000: Local var 0: Notification/Problem
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 Problem NetNode::m_problems
IL_000E: ldc.i8 72057602627866624
IL_0017: call static Problem Notification::RemoveProblems(Problem problems1,
Problem problems2)
IL_001C: stloc.0
IL_001D: ldc.i4.0
IL_001E: stloc.1
IL_001F: ldc.i4.0
IL_0020: stloc.2
IL_0021: ldarg.2
IL_0022: ldarg.1
IL_0023: ldc.i4.0
IL_0024: ldc.i4.s 33
IL_0026: ldc.i4.1
IL_0027: ldc.i4.1
IL_0028: ldloca.s 1 (System.Int32)
IL_002A: ldloca.s 2 (System.Int32)
IL_002C: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, LaneType laneTypes, VehicleType vehicleTypes,
System.Boolean onePerSegment, System.Int32& forward, System.Int32& backward)
IL_0031: ldarg.2
IL_0032: ldfld Flags NetNode::m_flags
IL_0037: ldc.i4 1024
IL_003C: and
IL_003D: brfalse => Label0
IL_0042: ldarg.2
IL_0043: ldfld System.UInt16 NetNode::m_building
IL_0048: brfalse => Label1
IL_004D: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0052: stloc.3
IL_0053: ldloc.1
IL_0054: brfalse => Label2
IL_0059: ldloc.3
IL_005A: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_005F: ldfld Building[] Array16`1<Building>::m_buffer
IL_0064: ldarg.2
IL_0065: ldfld System.UInt16 NetNode::m_building
IL_006A: ldelema Building
IL_006F: dup
IL_0070: ldfld Flags Building::m_flags
IL_0075: ldc.i4 128
IL_007A: or
IL_007B: stfld Flags Building::m_flags
IL_0080: br => Label3
IL_0085: Label2
IL_0085: ldloc.3
IL_0086: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008B: ldfld Building[] Array16`1<Building>::m_buffer
IL_0090: ldarg.2
IL_0091: ldfld System.UInt16 NetNode::m_building
IL_0096: ldelema Building
IL_009B: dup
IL_009C: ldfld Flags Building::m_flags
IL_00A1: ldc.i4 -129
IL_00A6: and
IL_00A7: stfld Flags Building::m_flags
IL_00AC: Label3
IL_00AC: ldloc.2
IL_00AD: brfalse => Label4
IL_00B2: ldloc.3
IL_00B3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00B8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00BD: ldarg.2
IL_00BE: ldfld System.UInt16 NetNode::m_building
IL_00C3: ldelema Building
IL_00C8: dup
IL_00C9: ldfld Flags Building::m_flags
IL_00CE: ldc.i4.s 64
IL_00D0: or
IL_00D1: stfld Flags Building::m_flags
IL_00D6: br => Label5
IL_00DB: Label4
IL_00DB: ldloc.3
IL_00DC: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00E1: ldfld Building[] Array16`1<Building>::m_buffer
IL_00E6: ldarg.2
IL_00E7: ldfld System.UInt16 NetNode::m_building
IL_00EC: ldelema Building
IL_00F1: dup
IL_00F2: ldfld Flags Building::m_flags
IL_00F7: ldc.i4.s -65
IL_00F9: and
IL_00FA: stfld Flags Building::m_flags
IL_00FF: Label5
IL_00FF: br => Label6
IL_0104: Label0
IL_0104: Label1
IL_0104: ldloc.1
IL_0105: brfalse => Label7
IL_010A: ldloc.2
IL_010B: brfalse => Label8
IL_0110: Label7
IL_0110: ldloc.1
IL_0111: brtrue => Label9
IL_0116: ldloc.2
IL_0117: brfalse => Label10
IL_011C: Label8
IL_011C: ldloc.0
IL_011D: ldc.i4 4096
IL_0122: conv.i8
IL_0123: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0128: stloc.0
IL_0129: Label6
IL_0129: Label9
IL_0129: Label10
IL_0129: ldloc.1
IL_012A: ldc.i4.1
IL_012B: bne.un => Label11
IL_0130: ldarg.2
IL_0131: dup
IL_0132: ldfld Flags NetNode::m_flags
IL_0137: ldc.i4 4194304
IL_013C: or
IL_013D: stfld Flags NetNode::m_flags
IL_0142: br => Label12
IL_0147: Label11
IL_0147: ldarg.2
IL_0148: dup
IL_0149: ldfld Flags NetNode::m_flags
IL_014E: ldc.i4 -4194305
IL_0153: and
IL_0154: stfld Flags NetNode::m_flags
IL_0159: Label12
IL_0159: ldloc.2
IL_015A: ldc.i4.1
IL_015B: bne.un => Label13
IL_0160: ldarg.2
IL_0161: dup
IL_0162: ldfld Flags NetNode::m_flags
IL_0167: ldc.i4 16777216
IL_016C: or
IL_016D: stfld Flags NetNode::m_flags
IL_0172: br => Label14
IL_0177: Label13
IL_0177: ldarg.2
IL_0178: dup
IL_0179: ldfld Flags NetNode::m_flags
IL_017E: ldc.i4 -16777217
IL_0183: and
IL_0184: stfld Flags NetNode::m_flags
IL_0189: Label14
IL_0189: ldarg.2
IL_018A: ldfld Flags NetNode::m_flags
IL_018F: ldc.i4 262144
IL_0194: and
IL_0195: brtrue => Label15
IL_019A: ldc.i4.0
IL_019B: stloc.s 4 (System.Int32)
IL_019D: ldc.i4.0
IL_019E: stloc.1
IL_019F: ldc.i4.0
IL_01A0: stloc.2
IL_01A1: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_01A6: stloc.s 5 (NetManager)
IL_01A8: ldc.i4.0
IL_01A9: stloc.s 6 (System.Int32)
IL_01AB: br => Label16
IL_01B0: Label24
IL_01B0: ldarg.2
IL_01B1: ldloc.s 6 (System.Int32)
IL_01B3: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_01B8: stloc.s 7 (System.UInt16)
IL_01BA: ldloc.s 7 (System.UInt16)
IL_01BC: brfalse => Label17
IL_01C1: ldc.i4.0
IL_01C2: stloc.s 8 (System.Int32)
IL_01C4: ldc.i4.0
IL_01C5: stloc.s 9 (System.Int32)
IL_01C7: ldloc.s 5 (NetManager)
IL_01C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01D3: ldloc.s 7 (System.UInt16)
IL_01D5: ldelema NetSegment
IL_01DA: ldloc.s 7 (System.UInt16)
IL_01DC: ldc.i4.s 33
IL_01DE: ldc.i4.s 64
IL_01E0: ldloca.s 8 (System.Int32)
IL_01E2: ldloca.s 9 (System.Int32)
IL_01E4: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_01E9: ldloc.s 8 (System.Int32)
IL_01EB: brtrue => Label18
IL_01F0: ldloc.s 9 (System.Int32)
IL_01F2: brfalse => Label19
IL_01F7: Label18
IL_01F7: ldloc.s 4 (System.Int32)
IL_01F9: ldc.i4.1
IL_01FA: add
IL_01FB: stloc.s 4 (System.Int32)
IL_01FD: ldloc.s 8 (System.Int32)
IL_01FF: brfalse => Label20
IL_0204: ldc.i4.1
IL_0205: stloc.s 8 (System.Int32)
IL_0207: Label20
IL_0207: ldloc.s 9 (System.Int32)
IL_0209: brfalse => Label21
IL_020E: ldc.i4.1
IL_020F: stloc.s 9 (System.Int32)
IL_0211: Label21
IL_0211: ldloc.s 5 (NetManager)
IL_0213: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0218: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_021D: ldloc.s 7 (System.UInt16)
IL_021F: ldelema NetSegment
IL_0224: ldfld System.UInt16 NetSegment::m_endNode
IL_0229: ldarg.1
IL_022A: bne.un => Label22
IL_022F: ldloc.1
IL_0230: ldloc.s 9 (System.Int32)
IL_0232: add
IL_0233: stloc.1
IL_0234: ldloc.2
IL_0235: ldloc.s 8 (System.Int32)
IL_0237: add
IL_0238: stloc.2
IL_0239: br => Label23
IL_023E: Label22
IL_023E: ldloc.1
IL_023F: ldloc.s 8 (System.Int32)
IL_0241: add
IL_0242: stloc.1
IL_0243: ldloc.2
IL_0244: ldloc.s 9 (System.Int32)
IL_0246: add
IL_0247: stloc.2
IL_0248: Label17
IL_0248: Label19
IL_0248: Label23
IL_0248: ldloc.s 6 (System.Int32)
IL_024A: ldc.i4.1
IL_024B: add
IL_024C: stloc.s 6 (System.Int32)
IL_024E: Label16
IL_024E: ldloc.s 6 (System.Int32)
IL_0250: ldc.i4.8
IL_0251: blt => Label24
IL_0256: ldloc.1
IL_0257: brfalse => Label25
IL_025C: ldloc.2
IL_025D: brfalse => Label26
IL_0262: Label25
IL_0262: ldloc.1
IL_0263: brtrue => Label27
IL_0268: ldloc.2
IL_0269: brtrue => Label28
IL_026E: Label27
IL_026E: ldloc.s 4 (System.Int32)
IL_0270: ldc.i4.1
IL_0271: bne.un => Label29
IL_0276: Label26
IL_0276: Label28
IL_0276: ldloc.0
IL_0277: ldc.i8 8589934592
IL_0280: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0285: stloc.0
IL_0286: Label29
IL_0286: ldc.i4.0
IL_0287: stloc.s 4 (System.Int32)
IL_0289: ldc.i4.0
IL_028A: stloc.1
IL_028B: ldc.i4.0
IL_028C: stloc.2
IL_028D: ldc.i4.0
IL_028E: stloc.s 10 (System.Int32)
IL_0290: br => Label30
IL_0295: Label38
IL_0295: ldarg.2
IL_0296: ldloc.s 10 (System.Int32)
IL_0298: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_029D: stloc.s 11 (System.UInt16)
IL_029F: ldloc.s 11 (System.UInt16)
IL_02A1: brfalse => Label31
IL_02A6: ldc.i4.0
IL_02A7: stloc.s 12 (System.Int32)
IL_02A9: ldc.i4.0
IL_02AA: stloc.s 13 (System.Int32)
IL_02AC: ldloc.s 5 (NetManager)
IL_02AE: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02B3: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02B8: ldloc.s 11 (System.UInt16)
IL_02BA: ldelema NetSegment
IL_02BF: ldloc.s 11 (System.UInt16)
IL_02C1: ldc.i4.s 33
IL_02C3: ldc.i4 65536
IL_02C8: ldloca.s 12 (System.Int32)
IL_02CA: ldloca.s 13 (System.Int32)
IL_02CC: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_02D1: ldloc.s 12 (System.Int32)
IL_02D3: brtrue => Label32
IL_02D8: ldloc.s 13 (System.Int32)
IL_02DA: brfalse => Label33
IL_02DF: Label32
IL_02DF: ldloc.s 4 (System.Int32)
IL_02E1: ldc.i4.1
IL_02E2: add
IL_02E3: stloc.s 4 (System.Int32)
IL_02E5: ldloc.s 12 (System.Int32)
IL_02E7: brfalse => Label34
IL_02EC: ldc.i4.1
IL_02ED: stloc.s 12 (System.Int32)
IL_02EF: Label34
IL_02EF: ldloc.s 13 (System.Int32)
IL_02F1: brfalse => Label35
IL_02F6: ldc.i4.1
IL_02F7: stloc.s 13 (System.Int32)
IL_02F9: Label35
IL_02F9: ldloc.s 5 (NetManager)
IL_02FB: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0300: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0305: ldloc.s 11 (System.UInt16)
IL_0307: ldelema NetSegment
IL_030C: ldfld System.UInt16 NetSegment::m_endNode
IL_0311: ldarg.1
IL_0312: bne.un => Label36
IL_0317: ldloc.1
IL_0318: ldloc.s 13 (System.Int32)
IL_031A: add
IL_031B: stloc.1
IL_031C: ldloc.2
IL_031D: ldloc.s 12 (System.Int32)
IL_031F: add
IL_0320: stloc.2
IL_0321: br => Label37
IL_0326: Label36
IL_0326: ldloc.1
IL_0327: ldloc.s 12 (System.Int32)
IL_0329: add
IL_032A: stloc.1
IL_032B: ldloc.2
IL_032C: ldloc.s 13 (System.Int32)
IL_032E: add
IL_032F: stloc.2
IL_0330: Label31
IL_0330: Label33
IL_0330: Label37
IL_0330: ldloc.s 10 (System.Int32)
IL_0332: ldc.i4.1
IL_0333: add
IL_0334: stloc.s 10 (System.Int32)
IL_0336: Label30
IL_0336: ldloc.s 10 (System.Int32)
IL_0338: ldc.i4.8
IL_0339: blt => Label38
IL_033E: ldloc.1
IL_033F: brfalse => Label39
IL_0344: ldloc.2
IL_0345: brfalse => Label40
IL_034A: Label39
IL_034A: ldloc.1
IL_034B: brtrue => Label41
IL_0350: ldloc.2
IL_0351: brtrue => Label42
IL_0356: Label41
IL_0356: ldloc.s 4 (System.Int32)
IL_0358: ldc.i4.1
IL_0359: bne.un => Label43
IL_035E: Label40
IL_035E: Label42
IL_035E: ldloc.0
IL_035F: ldc.i8 72057594037927936
IL_0368: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_036D: stloc.0
IL_036E: Label15
IL_036E: Label43
IL_036E: ldarg.2
IL_036F: ldloc.0
IL_0370: stfld Problem NetNode::m_problems
IL_0375: // end original
IL_0375: ldarg 1
IL_0379: ldarg 2
IL_037D: call static System.Void
TrafficManager.Patch._RoadBaseAI.UpdateNodePatch::Postfix(System.UInt16 nodeID,
NetNode& data)
IL_0382: ret
DONE

### Patch: virtual System.Void RoadBaseAI::UpdateLanes(System.UInt16 segmentID,


NetSegment& data, System.Boolean loading)
### Replacement: static System.Void 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<NetManager>::get_instance()
IL_0005: stloc.0
IL_0006: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::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<NetNode> NetManager::m_nodes
IL_0176: ldfld NetNode[] Array16`1<NetNode>::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: ldarg.2
IL_0192: ldfld UnityEngine.Vector3 NetSegment::m_endDirection
IL_0197: call static UnityEngine.Vector3
UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a)
IL_019C: ldloca.s 12 (System.Int32)
IL_019E: ldloca.s 13 (System.Int32)
IL_01A0: ldloca.s 14 (System.Int32)
IL_01A2: ldloca.s 15 (System.Int32)
IL_01A4: ldloca.s 16 (System.Int32)
IL_01A6: ldloca.s 17 (System.Int32)
IL_01A8: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, Direction directions, LaneType laneTypes, VehicleType
vehicleTypes, UnityEngine.Vector3 direction, System.Int32& left, System.Int32&
forward, System.Int32& right, System.Int32& left2, System.Int32& forward2,
System.Int32& right2)
IL_01AD: ldloc.0
IL_01AE: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_01B3: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_01B8: ldarg.2
IL_01B9: ldfld System.UInt16 NetSegment::m_endNode
IL_01BE: ldelema NetNode
IL_01C3: ldfld Flags NetNode::m_flags
IL_01C8: ldc.i4 1136
IL_01CD: and
IL_01CE: brfalse => Label2
IL_01D3: ldloc.s 12 (System.Int32)
IL_01D5: ldloc.s 13 (System.Int32)
IL_01D7: add
IL_01D8: ldloc.s 14 (System.Int32)
IL_01DA: add
IL_01DB: brtrue => Label3
IL_01E0: ldc.i4.1
IL_01E1: stloc.s 19 (System.Boolean)
IL_01E3: br => Label4
IL_01E8: Label3
IL_01E8: ldc.i4.1
IL_01E9: stloc.s 18 (System.Boolean)
IL_01EB: Label2
IL_01EB: Label4
IL_01EB: ldc.i4.0
IL_01EC: stloc.s 20 (System.Int32)
IL_01EE: ldc.i4.0
IL_01EF: stloc.s 21 (System.Int32)
IL_01F1: ldc.i4.0
IL_01F2: stloc.s 22 (System.Int32)
IL_01F4: ldc.i4.0
IL_01F5: stloc.s 23 (System.Int32)
IL_01F7: ldc.i4.0
IL_01F8: stloc.s 24 (System.Int32)
IL_01FA: ldc.i4.0
IL_01FB: stloc.s 25 (System.Int32)
IL_01FD: ldc.i4.0
IL_01FE: stloc.s 26 (System.Boolean)
IL_0200: ldc.i4.0
IL_0201: stloc.s 27 (System.Boolean)
IL_0203: ldloc.0
IL_0204: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0209: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_020E: ldarg.2
IL_020F: ldfld System.UInt16 NetSegment::m_startNode
IL_0214: ldelema NetNode
IL_0219: ldarg.2
IL_021A: ldfld System.UInt16 NetSegment::m_startNode
IL_021F: ldarg.1
IL_0220: ldc.i4.1
IL_0221: ldc.i4.s 33
IL_0223: ldc.i4.1
IL_0224: ldarg.2
IL_0225: ldfld UnityEngine.Vector3 NetSegment::m_startDirection
IL_022A: call static UnityEngine.Vector3
UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a)
IL_022F: ldloca.s 20 (System.Int32)
IL_0231: ldloca.s 21 (System.Int32)
IL_0233: ldloca.s 22 (System.Int32)
IL_0235: ldloca.s 23 (System.Int32)
IL_0237: ldloca.s 24 (System.Int32)
IL_0239: ldloca.s 25 (System.Int32)
IL_023B: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, Direction directions, LaneType laneTypes, VehicleType
vehicleTypes, UnityEngine.Vector3 direction, System.Int32& left, System.Int32&
forward, System.Int32& right, System.Int32& left2, System.Int32& forward2,
System.Int32& right2)
IL_0240: ldloc.0
IL_0241: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0246: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_024B: ldarg.2
IL_024C: ldfld System.UInt16 NetSegment::m_startNode
IL_0251: ldelema NetNode
IL_0256: ldfld Flags NetNode::m_flags
IL_025B: ldc.i4 1136
IL_0260: and
IL_0261: brfalse => Label5
IL_0266: ldloc.s 20 (System.Int32)
IL_0268: ldloc.s 21 (System.Int32)
IL_026A: add
IL_026B: ldloc.s 22 (System.Int32)
IL_026D: add
IL_026E: brtrue => Label6
IL_0273: ldc.i4.1
IL_0274: stloc.s 27 (System.Boolean)
IL_0276: br => Label7
IL_027B: Label6
IL_027B: ldc.i4.1
IL_027C: stloc.s 26 (System.Boolean)
IL_027E: Label5
IL_027E: Label7
IL_027E: ldc.i4.0
IL_027F: stloc.s 28 (NetLane+Flags)
IL_0281: ldloc.s 15 (System.Int32)
IL_0283: brfalse => Label8
IL_0288: ldloc.s 12 (System.Int32)
IL_028A: brtrue => Label9
IL_028F: ldloc.s 28 (NetLane+Flags)
IL_0291: ldarg.2
IL_0292: ldfld Flags NetSegment::m_flags
IL_0297: ldc.i4.s 16
IL_0299: and
IL_029A: brfalse => Label10
IL_029F: ldc.i4 4096
IL_02A4: br => Label11
IL_02A9: Label10
IL_02A9: ldc.i4 16384
IL_02AE: Label11
IL_02AE: or
IL_02AF: stloc.s 28 (NetLane+Flags)
IL_02B1: Label8
IL_02B1: Label9
IL_02B1: ldloc.s 17 (System.Int32)
IL_02B3: brfalse => Label12
IL_02B8: ldloc.s 14 (System.Int32)
IL_02BA: brtrue => Label13
IL_02BF: ldloc.s 28 (NetLane+Flags)
IL_02C1: ldarg.2
IL_02C2: ldfld Flags NetSegment::m_flags
IL_02C7: ldc.i4.s 16
IL_02C9: and
IL_02CA: brfalse => Label14
IL_02CF: ldc.i4 8192
IL_02D4: br => Label15
IL_02D9: Label14
IL_02D9: ldc.i4 32768
IL_02DE: Label15
IL_02DE: or
IL_02DF: stloc.s 28 (NetLane+Flags)
IL_02E1: Label12
IL_02E1: Label13
IL_02E1: ldloc.s 23 (System.Int32)
IL_02E3: brfalse => Label16
IL_02E8: ldloc.s 20 (System.Int32)
IL_02EA: brtrue => Label17
IL_02EF: ldloc.s 28 (NetLane+Flags)
IL_02F1: ldarg.2
IL_02F2: ldfld Flags NetSegment::m_flags
IL_02F7: ldc.i4.s 16
IL_02F9: and
IL_02FA: brfalse => Label18
IL_02FF: ldc.i4 16384
IL_0304: br => Label19
IL_0309: Label18
IL_0309: ldc.i4 4096
IL_030E: Label19
IL_030E: or
IL_030F: stloc.s 28 (NetLane+Flags)
IL_0311: Label16
IL_0311: Label17
IL_0311: ldloc.s 25 (System.Int32)
IL_0313: brfalse => Label20
IL_0318: ldloc.s 22 (System.Int32)
IL_031A: brtrue => Label21
IL_031F: ldloc.s 28 (NetLane+Flags)
IL_0321: ldarg.2
IL_0322: ldfld Flags NetSegment::m_flags
IL_0327: ldc.i4.s 16
IL_0329: and
IL_032A: brfalse => Label22
IL_032F: ldc.i4 32768
IL_0334: br => Label23
IL_0339: Label22
IL_0339: ldc.i4 8192
IL_033E: Label23
IL_033E: or
IL_033F: stloc.s 28 (NetLane+Flags)
IL_0341: Label20
IL_0341: Label21
IL_0341: ldarg.2
IL_0342: ldfld Flags NetSegment::m_flags
IL_0347: ldc.i4 1073741824
IL_034C: and
IL_034D: brfalse => Label24
IL_0352: ldloc.s 28 (NetLane+Flags)
IL_0354: ldarg.2
IL_0355: ldfld Flags NetSegment::m_flags
IL_035A: ldc.i4.s 16
IL_035C: and
IL_035D: brfalse => Label25
IL_0362: ldc.i4 2048
IL_0367: br => Label26
IL_036C: Label25
IL_036C: ldc.i4 1024
IL_0371: Label26
IL_0371: or
IL_0372: stloc.s 28 (NetLane+Flags)
IL_0374: Label24
IL_0374: ldarg.2
IL_0375: ldfld Flags NetSegment::m_flags
IL_037A: ldc.i4 -2147483648
IL_037F: and
IL_0380: brfalse => Label27
IL_0385: ldloc.s 28 (NetLane+Flags)
IL_0387: ldarg.2
IL_0388: ldfld Flags NetSegment::m_flags
IL_038D: ldc.i4.s 16
IL_038F: and
IL_0390: brfalse => Label28
IL_0395: ldc.i4 1024
IL_039A: br => Label29
IL_039F: Label28
IL_039F: ldc.i4 2048
IL_03A4: Label29
IL_03A4: or
IL_03A5: stloc.s 28 (NetLane+Flags)
IL_03A7: Label27
IL_03A7: ldc.r4 0
IL_03AC: stloc.s 29 (System.Single)
IL_03AE: ldc.r4 0
IL_03B3: stloc.s 30 (System.Single)
IL_03B5: ldc.i4.0
IL_03B6: stloc.s 31 (System.UInt32)
IL_03B8: ldarg.2
IL_03B9: ldfld System.UInt32 NetSegment::m_lanes
IL_03BE: stloc.s 32 (System.UInt32)
IL_03C0: ldc.i4.0
IL_03C1: stloc.s 33 (System.Int32)
IL_03C3: br => Label30
IL_03C8: Label89
IL_03C8: ldloc.s 32 (System.UInt32)
IL_03CA: brtrue => Label31
IL_03CF: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_03D4: ldloca.s 32 (System.UInt32)
IL_03D6: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_03DB: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_03E0: ldarg.1
IL_03E1: ldc.i4.1
IL_03E2: callvirt System.Boolean NetManager::CreateLanes(System.UInt32&
firstLane, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segment,
System.Int32 count)
IL_03E7: brfalse => Label32
IL_03EC: ldloc.s 31 (System.UInt32)
IL_03EE: brfalse => Label33
IL_03F3: ldloc.0
IL_03F4: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_03F9: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_03FE: ldloc.s 31 (System.UInt32)
IL_0400: conv.u
IL_0401: ldelema NetLane
IL_0406: ldloc.s 32 (System.UInt32)
IL_0408: stfld System.UInt32 NetLane::m_nextLane
IL_040D: br => Label34
IL_0412: Label33
IL_0412: ldarg.2
IL_0413: ldloc.s 32 (System.UInt32)
IL_0415: stfld System.UInt32 NetSegment::m_lanes
IL_041A: Label34
IL_041A: br => Label35
IL_041F: Label32
IL_041F: br => Label36
IL_0424: Label31
IL_0424: Label35
IL_0424: ldarg.0
IL_0425: ldfld NetInfo NetAI::m_info
IL_042A: ldfld Lane[] NetInfo::m_lanes
IL_042F: ldloc.s 33 (System.Int32)
IL_0431: ldelem.ref
IL_0432: stloc.s 34 (NetInfo+Lane)
IL_0434: ldloc.s 34 (NetInfo+Lane)
IL_0436: ldfld System.Single Lane::m_position
IL_043B: ldarg.0
IL_043C: ldfld NetInfo NetAI::m_info
IL_0441: ldfld System.Single NetInfo::m_halfWidth
IL_0446: ldc.r4 2
IL_044B: mul
IL_044C: div
IL_044D: ldc.r4 0.5
IL_0452: add
IL_0453: stloc.s 35 (System.Single)
IL_0455: ldarg.2
IL_0456: ldfld Flags NetSegment::m_flags
IL_045B: ldc.i4.s 16
IL_045D: and
IL_045E: brfalse => Label37
IL_0463: ldc.r4 1
IL_0468: ldloc.s 35 (System.Single)
IL_046A: sub
IL_046B: stloc.s 35 (System.Single)
IL_046D: Label37
IL_046D: ldloc.2
IL_046E: ldloc.3
IL_046F: ldloc.2
IL_0470: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0475: ldloc.s 35 (System.Single)
IL_0477: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_047C: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0481: stloc.s 36 (UnityEngine.Vector3)
IL_0483: ldloc.s 6 (UnityEngine.Vector3)
IL_0485: ldloc.s 7 (UnityEngine.Vector3)
IL_0487: ldloc.s 35 (System.Single)
IL_0489: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_048E: stloc.s 37 (UnityEngine.Vector3)
IL_0490: ldloc.s 4 (UnityEngine.Vector3)
IL_0492: ldloc.s 5 (UnityEngine.Vector3)
IL_0494: ldloc.s 4 (UnityEngine.Vector3)
IL_0496: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_049B: ldloc.s 35 (System.Single)
IL_049D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_04A2: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_04A7: stloc.s 38 (UnityEngine.Vector3)
IL_04A9: ldloc.s 8 (UnityEngine.Vector3)
IL_04AB: ldloc.s 9 (UnityEngine.Vector3)
IL_04AD: ldloc.s 35 (System.Single)
IL_04AF: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_04B4: stloc.s 39 (UnityEngine.Vector3)
IL_04B6: ldloca.s 36 (UnityEngine.Vector3)
IL_04B8: dup
IL_04B9: ldfld System.Single UnityEngine.Vector3::y
IL_04BE: ldloc.s 34 (NetInfo+Lane)
IL_04C0: ldfld System.Single Lane::m_verticalOffset
IL_04C5: add
IL_04C6: stfld System.Single UnityEngine.Vector3::y
IL_04CB: ldloca.s 38 (UnityEngine.Vector3)
IL_04CD: dup
IL_04CE: ldfld System.Single UnityEngine.Vector3::y
IL_04D3: ldloc.s 34 (NetInfo+Lane)
IL_04D5: ldfld System.Single Lane::m_verticalOffset
IL_04DA: add
IL_04DB: stfld System.Single UnityEngine.Vector3::y
IL_04E0: ldloc.s 36 (UnityEngine.Vector3)
IL_04E2: ldloc.s 37 (UnityEngine.Vector3)
IL_04E4: ldloc.s 38 (UnityEngine.Vector3)
IL_04E6: ldloc.s 39 (UnityEngine.Vector3)
IL_04E8: ldloc.s 10 (System.Boolean)
IL_04EA: ldloc.s 11 (System.Boolean)
IL_04EC: ldloca.s 40 (UnityEngine.Vector3)
IL_04EE: ldloca.s 41 (UnityEngine.Vector3)
IL_04F0: 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_04F5: ldloc.0
IL_04F6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_04FB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0500: ldloc.s 32 (System.UInt32)
IL_0502: conv.u
IL_0503: ldelema NetLane
IL_0508: ldfld System.UInt16 NetLane::m_flags
IL_050D: stloc.s 42 (NetLane+Flags)
IL_050F: ldloc.s 28 (NetLane+Flags)
IL_0511: stloc.s 43 (NetLane+Flags)
IL_0513: ldloc.s 42 (NetLane+Flags)
IL_0515: ldc.i4 -64753
IL_051A: and
IL_051B: stloc.s 42 (NetLane+Flags)
IL_051D: ldloc.s 34 (NetInfo+Lane)
IL_051F: ldfld Direction Lane::m_finalDirection
IL_0524: ldc.i4.3
IL_0525: and
IL_0526: conv.u1
IL_0527: ldc.i4.2
IL_0528: bne.un => Label38
IL_052D: ldloc.s 43 (NetLane+Flags)
IL_052F: ldc.i4 -2049
IL_0534: and
IL_0535: stloc.s 43 (NetLane+Flags)
IL_0537: Label38
IL_0537: ldloc.s 34 (NetInfo+Lane)
IL_0539: ldfld Direction Lane::m_finalDirection
IL_053E: ldc.i4.3
IL_053F: and
IL_0540: conv.u1
IL_0541: ldc.i4.1
IL_0542: bne.un => Label39
IL_0547: ldloc.s 43 (NetLane+Flags)
IL_0549: ldc.i4 -1025
IL_054E: and
IL_054F: stloc.s 43 (NetLane+Flags)
IL_0551: Label39
IL_0551: ldloc.s 34 (NetInfo+Lane)
IL_0553: ldfld VehicleType Lane::m_vehicleType
IL_0558: ldc.i4 2048
IL_055D: and
IL_055E: brfalse => Label40
IL_0563: ldloc.s 43 (NetLane+Flags)
IL_0565: ldc.i4 -3073
IL_056A: and
IL_056B: stloc.s 43 (NetLane+Flags)
IL_056D: Label40
IL_056D: ldloc.s 42 (NetLane+Flags)
IL_056F: ldloc.s 43 (NetLane+Flags)
IL_0571: or
IL_0572: stloc.s 42 (NetLane+Flags)
IL_0574: ldloc.1
IL_0575: brfalse => Label41
IL_057A: ldloc.s 42 (NetLane+Flags)
IL_057C: ldc.i4.4
IL_057D: or
IL_057E: stloc.s 42 (NetLane+Flags)
IL_0580: br => Label42
IL_0585: Label41
IL_0585: ldloc.s 42 (NetLane+Flags)
IL_0587: ldc.i4.s -5
IL_0589: and
IL_058A: stloc.s 42 (NetLane+Flags)
IL_058C: Label42
IL_058C: ldc.i4.0
IL_058D: stloc.s 44 (System.Int32)
IL_058F: ldc.i4 255
IL_0594: stloc.s 45 (System.Int32)
IL_0596: ldloc.s 34 (NetInfo+Lane)
IL_0598: ldfld LaneType Lane::m_laneType
IL_059D: ldc.i4.s 33
IL_059F: and
IL_05A0: conv.u1
IL_05A1: brfalse => Label43
IL_05A6: ldloc.s 34 (NetInfo+Lane)
IL_05A8: ldfld Direction Lane::m_finalDirection
IL_05AD: ldc.i4.1
IL_05AE: and
IL_05AF: conv.u1
IL_05B0: ldc.i4.0
IL_05B1: ceq
IL_05B3: ldc.i4.0
IL_05B4: ceq
IL_05B6: ldarg.2
IL_05B7: ldfld Flags NetSegment::m_flags
IL_05BC: ldc.i4.s 16
IL_05BE: and
IL_05BF: ldc.i4.0
IL_05C0: ceq
IL_05C2: ceq
IL_05C4: stloc.s 46 (System.Boolean)
IL_05C6: ldloc.s 46 (System.Boolean)
IL_05C8: brfalse => Label44
IL_05CD: ldloc.s 12 (System.Int32)
IL_05CF: stloc.s 47 (System.Int32)
IL_05D1: ldloc.s 13 (System.Int32)
IL_05D3: stloc.s 48 (System.Int32)
IL_05D5: ldloc.s 14 (System.Int32)
IL_05D7: stloc.s 49 (System.Int32)
IL_05D9: br => Label45
IL_05DE: Label44
IL_05DE: ldloc.s 20 (System.Int32)
IL_05E0: stloc.s 47 (System.Int32)
IL_05E2: ldloc.s 21 (System.Int32)
IL_05E4: stloc.s 48 (System.Int32)
IL_05E6: ldloc.s 22 (System.Int32)
IL_05E8: stloc.s 49 (System.Int32)
IL_05EA: Label45
IL_05EA: ldloc.s 34 (NetInfo+Lane)
IL_05EC: ldfld Direction Lane::m_finalDirection
IL_05F1: ldc.i4.1
IL_05F2: and
IL_05F3: conv.u1
IL_05F4: brfalse => Label46
IL_05F9: ldloc.s 34 (NetInfo+Lane)
IL_05FB: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0600: stloc.s 50 (System.Int32)
IL_0602: ldloc.s 34 (NetInfo+Lane)
IL_0604: ldfld System.Int32 Lane::m_similarLaneCount
IL_0609: ldloc.s 34 (NetInfo+Lane)
IL_060B: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0610: sub
IL_0611: ldc.i4.1
IL_0612: sub
IL_0613: stloc.s 51 (System.Int32)
IL_0615: br => Label47
IL_061A: Label46
IL_061A: ldloc.s 34 (NetInfo+Lane)
IL_061C: ldfld System.Int32 Lane::m_similarLaneCount
IL_0621: ldloc.s 34 (NetInfo+Lane)
IL_0623: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0628: sub
IL_0629: ldc.i4.1
IL_062A: sub
IL_062B: stloc.s 50 (System.Int32)
IL_062D: ldloc.s 34 (NetInfo+Lane)
IL_062F: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0634: stloc.s 51 (System.Int32)
IL_0636: Label47
IL_0636: ldloc.s 47 (System.Int32)
IL_0638: ldloc.s 48 (System.Int32)
IL_063A: add
IL_063B: ldloc.s 49 (System.Int32)
IL_063D: add
IL_063E: stloc.s 52 (System.Int32)
IL_0640: ldc.i4 255
IL_0645: stloc.s 44 (System.Int32)
IL_0647: ldc.i4.0
IL_0648: stloc.s 45 (System.Int32)
IL_064A: ldloc.s 52 (System.Int32)
IL_064C: brfalse => Label48
IL_0651: ldloc.s 34 (NetInfo+Lane)
IL_0653: ldfld System.Int32 Lane::m_similarLaneCount
IL_0658: ldloc.s 52 (System.Int32)
IL_065A: ble => Label49
IL_065F: ldloc.s 52 (System.Int32)
IL_0661: ldc.i4.0
IL_0662: ble => Label50
IL_0667: ldloc.s 52 (System.Int32)
IL_0669: ldloc.s 50 (System.Int32)
IL_066B: mul
IL_066C: ldloc.s 34 (NetInfo+Lane)
IL_066E: ldfld System.Int32 Lane::m_similarLaneCount
IL_0673: div
IL_0674: stloc.s 44 (System.Int32)
IL_0676: ldloc.s 52 (System.Int32)
IL_0678: ldloc.s 52 (System.Int32)
IL_067A: ldloc.s 51 (System.Int32)
IL_067C: mul
IL_067D: ldloc.s 34 (NetInfo+Lane)
IL_067F: ldfld System.Int32 Lane::m_similarLaneCount
IL_0684: div
IL_0685: sub
IL_0686: stloc.s 45 (System.Int32)
IL_0688: ldloc.s 42 (NetLane+Flags)
IL_068A: ldc.i4 128
IL_068F: or
IL_0690: stloc.s 42 (NetLane+Flags)
IL_0692: ldloc.s 44 (System.Int32)
IL_0694: ldloc.s 47 (System.Int32)
IL_0696: bge => Label51
IL_069B: ldloc.s 42 (NetLane+Flags)
IL_069D: ldc.i4.s 32
IL_069F: or
IL_06A0: stloc.s 42 (NetLane+Flags)
IL_06A2: Label51
IL_06A2: ldloc.s 52 (System.Int32)
IL_06A4: ldloc.s 45 (System.Int32)
IL_06A6: sub
IL_06A7: ldloc.s 49 (System.Int32)
IL_06A9: bge => Label52
IL_06AE: ldloc.s 42 (NetLane+Flags)
IL_06B0: ldc.i4.s 64
IL_06B2: or
IL_06B3: stloc.s 42 (NetLane+Flags)
IL_06B5: Label52
IL_06B5: ldloc.s 48 (System.Int32)
IL_06B7: brfalse => Label53
IL_06BC: ldloc.s 44 (System.Int32)
IL_06BE: ldloc.s 47 (System.Int32)
IL_06C0: ldloc.s 48 (System.Int32)
IL_06C2: add
IL_06C3: bge => Label54
IL_06C8: ldloc.s 45 (System.Int32)
IL_06CA: ldloc.s 47 (System.Int32)
IL_06CC: ble => Label55
IL_06D1: ldloc.s 42 (NetLane+Flags)
IL_06D3: ldc.i4.s 16
IL_06D5: or
IL_06D6: stloc.s 42 (NetLane+Flags)
IL_06D8: Label53
IL_06D8: Label54
IL_06D8: Label55
IL_06D8: br => Label56
IL_06DD: Label49
IL_06DD: Label50
IL_06DD: ldloc.s 34 (NetInfo+Lane)
IL_06DF: ldfld System.Int32 Lane::m_similarLaneCount
IL_06E4: ldloc.s 52 (System.Int32)
IL_06E6: blt => Label57
IL_06EB: ldloc.s 47 (System.Int32)
IL_06ED: stloc.s 53 (System.Int32)
IL_06EF: ldloc.s 49 (System.Int32)
IL_06F1: stloc.s 54 (System.Int32)
IL_06F3: br => Label58
IL_06F8: Label57
IL_06F8: ldloc.s 47 (System.Int32)
IL_06FA: ldloc.s 34 (NetInfo+Lane)
IL_06FC: ldfld System.Int32 Lane::m_similarLaneCount
IL_0701: mul
IL_0702: ldloc.s 52 (System.Int32)
IL_0704: ldloc.s 48 (System.Int32)
IL_0706: ldc.i4.1
IL_0707: shr
IL_0708: add
IL_0709: div
IL_070A: stloc.s 53 (System.Int32)
IL_070C: ldloc.s 49 (System.Int32)
IL_070E: ldloc.s 34 (NetInfo+Lane)
IL_0710: ldfld System.Int32 Lane::m_similarLaneCount
IL_0715: mul
IL_0716: ldloc.s 52 (System.Int32)
IL_0718: ldloc.s 48 (System.Int32)
IL_071A: ldc.i4.1
IL_071B: shr
IL_071C: add
IL_071D: div
IL_071E: stloc.s 54 (System.Int32)
IL_0720: Label58
IL_0720: ldloc.s 53 (System.Int32)
IL_0722: stloc.s 55 (System.Int32)
IL_0724: ldloc.s 34 (NetInfo+Lane)
IL_0726: ldfld System.Int32 Lane::m_similarLaneCount
IL_072B: ldloc.s 53 (System.Int32)
IL_072D: sub
IL_072E: ldloc.s 54 (System.Int32)
IL_0730: sub
IL_0731: stloc.s 56 (System.Int32)
IL_0733: ldloc.s 54 (System.Int32)
IL_0735: stloc.s 57 (System.Int32)
IL_0737: ldloc.s 56 (System.Int32)
IL_0739: ldc.i4.0
IL_073A: ble => Label59
IL_073F: ldloc.s 47 (System.Int32)
IL_0741: ldloc.s 53 (System.Int32)
IL_0743: ble => Label60
IL_0748: ldloc.s 55 (System.Int32)
IL_074A: ldc.i4.1
IL_074B: add
IL_074C: stloc.s 55 (System.Int32)
IL_074E: Label60
IL_074E: ldloc.s 49 (System.Int32)
IL_0750: ldloc.s 54 (System.Int32)
IL_0752: ble => Label61
IL_0757: ldloc.s 57 (System.Int32)
IL_0759: ldc.i4.1
IL_075A: add
IL_075B: stloc.s 57 (System.Int32)
IL_075D: Label59
IL_075D: Label61
IL_075D: ldloc.s 50 (System.Int32)
IL_075F: ldloc.s 55 (System.Int32)
IL_0761: bge => Label62
IL_0766: ldloc.s 50 (System.Int32)
IL_0768: ldloc.s 47 (System.Int32)
IL_076A: mul
IL_076B: ldloc.s 55 (System.Int32)
IL_076D: add
IL_076E: ldc.i4.1
IL_076F: sub
IL_0770: ldloc.s 55 (System.Int32)
IL_0772: div
IL_0773: stloc.s 58 (System.Int32)
IL_0775: ldloc.s 50 (System.Int32)
IL_0777: ldc.i4.1
IL_0778: add
IL_0779: ldloc.s 47 (System.Int32)
IL_077B: mul
IL_077C: ldloc.s 55 (System.Int32)
IL_077E: add
IL_077F: ldc.i4.1
IL_0780: sub
IL_0781: ldloc.s 55 (System.Int32)
IL_0783: div
IL_0784: stloc.s 59 (System.Int32)
IL_0786: ldloc.s 59 (System.Int32)
IL_0788: ldloc.s 58 (System.Int32)
IL_078A: ble => Label63
IL_078F: ldloc.s 42 (NetLane+Flags)
IL_0791: ldc.i4.s 32
IL_0793: or
IL_0794: stloc.s 42 (NetLane+Flags)
IL_0796: ldloc.s 44 (System.Int32)
IL_0798: ldloc.s 58 (System.Int32)
IL_079A: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_079F: stloc.s 44 (System.Int32)
IL_07A1: ldloc.s 45 (System.Int32)
IL_07A3: ldloc.s 59 (System.Int32)
IL_07A5: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_07AA: stloc.s 45 (System.Int32)
IL_07AC: Label62
IL_07AC: Label63
IL_07AC: ldloc.s 50 (System.Int32)
IL_07AE: ldloc.s 53 (System.Int32)
IL_07B0: blt => Label64
IL_07B5: ldloc.s 51 (System.Int32)
IL_07B7: ldloc.s 54 (System.Int32)
IL_07B9: blt => Label65
IL_07BE: ldloc.s 48 (System.Int32)
IL_07C0: brfalse => Label66
IL_07C5: ldloc.s 34 (NetInfo+Lane)
IL_07C7: ldfld System.Int32 Lane::m_similarLaneCount
IL_07CC: ldloc.s 52 (System.Int32)
IL_07CE: ble => Label67
IL_07D3: ldloc.s 53 (System.Int32)
IL_07D5: ldc.i4.1
IL_07D6: add
IL_07D7: stloc.s 53 (System.Int32)
IL_07D9: Label67
IL_07D9: ldloc.s 47 (System.Int32)
IL_07DB: ldloc.s 50 (System.Int32)
IL_07DD: ldloc.s 53 (System.Int32)
IL_07DF: sub
IL_07E0: ldloc.s 48 (System.Int32)
IL_07E2: mul
IL_07E3: ldloc.s 56 (System.Int32)
IL_07E5: add
IL_07E6: ldc.i4.1
IL_07E7: sub
IL_07E8: ldloc.s 56 (System.Int32)
IL_07EA: div
IL_07EB: add
IL_07EC: stloc.s 60 (System.Int32)
IL_07EE: ldloc.s 47 (System.Int32)
IL_07F0: ldloc.s 50 (System.Int32)
IL_07F2: ldc.i4.1
IL_07F3: add
IL_07F4: ldloc.s 53 (System.Int32)
IL_07F6: sub
IL_07F7: ldloc.s 48 (System.Int32)
IL_07F9: mul
IL_07FA: ldloc.s 56 (System.Int32)
IL_07FC: add
IL_07FD: ldc.i4.1
IL_07FE: sub
IL_07FF: ldloc.s 56 (System.Int32)
IL_0801: div
IL_0802: add
IL_0803: stloc.s 61 (System.Int32)
IL_0805: ldloc.s 61 (System.Int32)
IL_0807: ldloc.s 60 (System.Int32)
IL_0809: ble => Label68
IL_080E: ldloc.s 42 (NetLane+Flags)
IL_0810: ldc.i4.s 16
IL_0812: or
IL_0813: stloc.s 42 (NetLane+Flags)
IL_0815: ldloc.s 44 (System.Int32)
IL_0817: ldloc.s 60 (System.Int32)
IL_0819: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_081E: stloc.s 44 (System.Int32)
IL_0820: ldloc.s 45 (System.Int32)
IL_0822: ldloc.s 61 (System.Int32)
IL_0824: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0829: stloc.s 45 (System.Int32)
IL_082B: Label64
IL_082B: Label65
IL_082B: Label66
IL_082B: Label68
IL_082B: ldloc.s 51 (System.Int32)
IL_082D: ldloc.s 57 (System.Int32)
IL_082F: bge => Label69
IL_0834: ldloc.s 52 (System.Int32)
IL_0836: ldloc.s 51 (System.Int32)
IL_0838: ldc.i4.1
IL_0839: add
IL_083A: ldloc.s 49 (System.Int32)
IL_083C: mul
IL_083D: ldloc.s 57 (System.Int32)
IL_083F: add
IL_0840: ldc.i4.1
IL_0841: sub
IL_0842: ldloc.s 57 (System.Int32)
IL_0844: div
IL_0845: sub
IL_0846: stloc.s 62 (System.Int32)
IL_0848: ldloc.s 52 (System.Int32)
IL_084A: ldloc.s 51 (System.Int32)
IL_084C: ldloc.s 49 (System.Int32)
IL_084E: mul
IL_084F: ldloc.s 57 (System.Int32)
IL_0851: add
IL_0852: ldc.i4.1
IL_0853: sub
IL_0854: ldloc.s 57 (System.Int32)
IL_0856: div
IL_0857: sub
IL_0858: stloc.s 63 (System.Int32)
IL_085A: ldloc.s 63 (System.Int32)
IL_085C: ldloc.s 62 (System.Int32)
IL_085E: ble => Label70
IL_0863: ldloc.s 42 (NetLane+Flags)
IL_0865: ldc.i4.s 64
IL_0867: or
IL_0868: stloc.s 42 (NetLane+Flags)
IL_086A: ldloc.s 44 (System.Int32)
IL_086C: ldloc.s 62 (System.Int32)
IL_086E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0873: stloc.s 44 (System.Int32)
IL_0875: ldloc.s 45 (System.Int32)
IL_0877: ldloc.s 63 (System.Int32)
IL_0879: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_087E: stloc.s 45 (System.Int32)
IL_0880: Label69
IL_0880: Label70
IL_0880: ldarg.0
IL_0881: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_0886: brfalse => Label71
IL_088B: ldloc.s 42 (NetLane+Flags)
IL_088D: ldc.i4.s 96
IL_088F: and
IL_0890: ldc.i4.s 32
IL_0892: bne.un => Label72
IL_0897: ldloc.s 42 (NetLane+Flags)
IL_0899: ldc.i4.s 16
IL_089B: and
IL_089C: brfalse => Label73
IL_08A1: ldloc.s 48 (System.Int32)
IL_08A3: ldc.i4.2
IL_08A4: blt => Label74
IL_08A9: ldloc.s 47 (System.Int32)
IL_08AB: ldc.i4.1
IL_08AC: bne.un => Label75
IL_08B1: Label73
IL_08B1: ldloc.s 45 (System.Int32)
IL_08B3: ldloc.s 44 (System.Int32)
IL_08B5: ldc.i4.1
IL_08B6: add
IL_08B7: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_08BC: stloc.s 45 (System.Int32)
IL_08BE: Label74
IL_08BE: Label75
IL_08BE: br => Label76
IL_08C3: Label72
IL_08C3: ldloc.s 42 (NetLane+Flags)
IL_08C5: ldc.i4.s 96
IL_08C7: and
IL_08C8: ldc.i4.s 64
IL_08CA: bne.un => Label77
IL_08CF: ldloc.s 42 (NetLane+Flags)
IL_08D1: ldc.i4.s 16
IL_08D3: and
IL_08D4: brfalse => Label78
IL_08D9: ldloc.s 48 (System.Int32)
IL_08DB: ldc.i4.2
IL_08DC: blt => Label79
IL_08E1: ldloc.s 49 (System.Int32)
IL_08E3: ldc.i4.1
IL_08E4: bne.un => Label80
IL_08E9: Label78
IL_08E9: ldloc.s 44 (System.Int32)
IL_08EB: ldloc.s 45 (System.Int32)
IL_08ED: ldc.i4.1
IL_08EE: sub
IL_08EF: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_08F4: stloc.s 44 (System.Int32)
IL_08F6: Label48
IL_08F6: Label56
IL_08F6: Label71
IL_08F6: Label76
IL_08F6: Label77
IL_08F6: Label79
IL_08F6: Label80
IL_08F6: ldloc.s 46 (System.Boolean)
IL_08F8: brfalse => Label81
IL_08FD: ldloc.s 18 (System.Boolean)
IL_08FF: brfalse => Label82
IL_0904: ldloc.s 42 (NetLane+Flags)
IL_0906: ldc.i4.s -113
IL_0908: and
IL_0909: stloc.s 42 (NetLane+Flags)
IL_090B: br => Label83
IL_0910: Label82
IL_0910: ldloc.s 19 (System.Boolean)
IL_0912: brfalse => Label84
IL_0917: ldloc.s 42 (NetLane+Flags)
IL_0919: ldc.i4.s 16
IL_091B: or
IL_091C: stloc.s 42 (NetLane+Flags)
IL_091E: Label83
IL_091E: Label84
IL_091E: br => Label85
IL_0923: Label81
IL_0923: ldloc.s 26 (System.Boolean)
IL_0925: brfalse => Label86
IL_092A: ldloc.s 42 (NetLane+Flags)
IL_092C: ldc.i4.s -113
IL_092E: and
IL_092F: stloc.s 42 (NetLane+Flags)
IL_0931: br => Label87
IL_0936: Label86
IL_0936: ldloc.s 27 (System.Boolean)
IL_0938: brfalse => Label88
IL_093D: ldloc.s 42 (NetLane+Flags)
IL_093F: ldc.i4.s 16
IL_0941: or
IL_0942: stloc.s 42 (NetLane+Flags)
IL_0944: Label43
IL_0944: Label85
IL_0944: Label87
IL_0944: Label88
IL_0944: ldloc.0
IL_0945: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_094A: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_094F: ldloc.s 32 (System.UInt32)
IL_0951: conv.u
IL_0952: ldelema NetLane
IL_0957: ldloc.s 36 (UnityEngine.Vector3)
IL_0959: ldloc.s 40 (UnityEngine.Vector3)
IL_095B: ldloc.s 41 (UnityEngine.Vector3)
IL_095D: ldloc.s 38 (UnityEngine.Vector3)
IL_095F: newobj System.Void
ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3
_b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d)
IL_0964: stfld ColossalFramework.Math.Bezier3 NetLane::m_bezier
IL_0969: ldloc.0
IL_096A: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_096F: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0974: ldloc.s 32 (System.UInt32)
IL_0976: conv.u
IL_0977: ldelema NetLane
IL_097C: ldarg.1
IL_097D: stfld System.UInt16 NetLane::m_segment
IL_0982: ldloc.0
IL_0983: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0988: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_098D: ldloc.s 32 (System.UInt32)
IL_098F: conv.u
IL_0990: ldelema NetLane
IL_0995: ldloc.s 42 (NetLane+Flags)
IL_0997: conv.u2
IL_0998: stfld System.UInt16 NetLane::m_flags
IL_099D: ldloc.0
IL_099E: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09A3: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09A8: ldloc.s 32 (System.UInt32)
IL_09AA: conv.u
IL_09AB: ldelema NetLane
IL_09B0: ldloc.s 44 (System.Int32)
IL_09B2: conv.u1
IL_09B3: stfld System.Byte NetLane::m_firstTarget
IL_09B8: ldloc.0
IL_09B9: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09BE: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09C3: ldloc.s 32 (System.UInt32)
IL_09C5: conv.u
IL_09C6: ldelema NetLane
IL_09CB: ldloc.s 45 (System.Int32)
IL_09CD: conv.u1
IL_09CE: stfld System.Byte NetLane::m_lastTarget
IL_09D3: ldloc.s 29 (System.Single)
IL_09D5: ldloc.0
IL_09D6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09DB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09E0: ldloc.s 32 (System.UInt32)
IL_09E2: conv.u
IL_09E3: ldelema NetLane
IL_09E8: call System.Single NetLane::UpdateLength()
IL_09ED: add
IL_09EE: stloc.s 29 (System.Single)
IL_09F0: ldloc.s 30 (System.Single)
IL_09F2: ldc.r4 1
IL_09F7: add
IL_09F8: stloc.s 30 (System.Single)
IL_09FA: ldloc.s 32 (System.UInt32)
IL_09FC: stloc.s 31 (System.UInt32)
IL_09FE: ldloc.0
IL_09FF: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0A04: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0A09: ldloc.s 32 (System.UInt32)
IL_0A0B: conv.u
IL_0A0C: ldelema NetLane
IL_0A11: ldfld System.UInt32 NetLane::m_nextLane
IL_0A16: stloc.s 32 (System.UInt32)
IL_0A18: ldloc.s 33 (System.Int32)
IL_0A1A: ldc.i4.1
IL_0A1B: add
IL_0A1C: stloc.s 33 (System.Int32)
IL_0A1E: Label30
IL_0A1E: ldloc.s 33 (System.Int32)
IL_0A20: ldarg.0
IL_0A21: ldfld NetInfo NetAI::m_info
IL_0A26: ldfld Lane[] NetInfo::m_lanes
IL_0A2B: ldlen
IL_0A2C: conv.i4
IL_0A2D: blt => Label89
IL_0A32: Label36
IL_0A32: ldloc.s 30 (System.Single)
IL_0A34: ldc.r4 0
IL_0A39: beq => Label90
IL_0A3E: ldarg.2
IL_0A3F: ldloc.s 29 (System.Single)
IL_0A41: ldloc.s 30 (System.Single)
IL_0A43: div
IL_0A44: stfld System.Single NetSegment::m_averageLength
IL_0A49: br => Label91
IL_0A4E: Label90
IL_0A4E: ldarg.2
IL_0A4F: ldc.r4 0
IL_0A54: stfld System.Single NetSegment::m_averageLength
IL_0A59: Label91
IL_0A59: ldc.i4.0
IL_0A5A: stloc.s 64 (System.Boolean)
IL_0A5C: ldarg.2
IL_0A5D: ldfld System.Single NetSegment::m_averageLength
IL_0A62: ldc.r4 11
IL_0A67: bge.un => Label92
IL_0A6C: ldloc.0
IL_0A6D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0A72: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A77: ldarg.2
IL_0A78: ldfld System.UInt16 NetSegment::m_startNode
IL_0A7D: ldelema NetNode
IL_0A82: ldfld Flags NetNode::m_flags
IL_0A87: ldc.i4 128
IL_0A8C: and
IL_0A8D: brfalse => Label93
IL_0A92: ldloc.0
IL_0A93: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0A98: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A9D: ldarg.2
IL_0A9E: ldfld System.UInt16 NetSegment::m_endNode
IL_0AA3: ldelema NetNode
IL_0AA8: ldfld Flags NetNode::m_flags
IL_0AAD: ldc.i4 128
IL_0AB2: and
IL_0AB3: brfalse => Label94
IL_0AB8: ldc.i4.1
IL_0AB9: stloc.s 64 (System.Boolean)
IL_0ABB: Label92
IL_0ABB: Label93
IL_0ABB: Label94
IL_0ABB: ldarg.2
IL_0ABC: ldfld System.UInt32 NetSegment::m_lanes
IL_0AC1: stloc.s 32 (System.UInt32)
IL_0AC3: ldc.i4.0
IL_0AC4: stloc.s 65 (System.Int32)
IL_0AC6: br => Label95
IL_0ACB: Label98
IL_0ACB: ldloc.0
IL_0ACC: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0AD1: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0AD6: ldloc.s 32 (System.UInt32)
IL_0AD8: conv.u
IL_0AD9: ldelema NetLane
IL_0ADE: ldfld System.UInt16 NetLane::m_flags
IL_0AE3: ldc.i4.s -9
IL_0AE5: and
IL_0AE6: stloc.s 66 (NetLane+Flags)
IL_0AE8: ldloc.s 64 (System.Boolean)
IL_0AEA: brfalse => Label96
IL_0AEF: ldloc.s 66 (NetLane+Flags)
IL_0AF1: ldc.i4.8
IL_0AF2: or
IL_0AF3: stloc.s 66 (NetLane+Flags)
IL_0AF5: Label96
IL_0AF5: ldloc.0
IL_0AF6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0AFB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0B00: ldloc.s 32 (System.UInt32)
IL_0B02: conv.u
IL_0B03: ldelema NetLane
IL_0B08: ldloc.s 66 (NetLane+Flags)
IL_0B0A: conv.u2
IL_0B0B: stfld System.UInt16 NetLane::m_flags
IL_0B10: ldloc.0
IL_0B11: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0B16: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0B1B: ldloc.s 32 (System.UInt32)
IL_0B1D: conv.u
IL_0B1E: ldelema NetLane
IL_0B23: ldfld System.UInt32 NetLane::m_nextLane
IL_0B28: stloc.s 32 (System.UInt32)
IL_0B2A: ldloc.s 65 (System.Int32)
IL_0B2C: ldc.i4.1
IL_0B2D: add
IL_0B2E: stloc.s 65 (System.Int32)
IL_0B30: Label95
IL_0B30: ldloc.s 65 (System.Int32)
IL_0B32: ldarg.0
IL_0B33: ldfld NetInfo NetAI::m_info
IL_0B38: ldfld Lane[] NetInfo::m_lanes
IL_0B3D: ldlen
IL_0B3E: conv.i4
IL_0B3F: bge => Label97
IL_0B44: ldloc.s 32 (System.UInt32)
IL_0B46: brtrue => Label98
IL_0B4B: Label97
IL_0B4B: ldarg.3
IL_0B4C: brtrue => Label99
IL_0B51: ldarg.2
IL_0B52: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0B57: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0B5C: stloc.s 68 (UnityEngine.Vector3)
IL_0B5E: ldloca.s 68 (UnityEngine.Vector3)
IL_0B60: ldfld System.Single UnityEngine.Vector3::x
IL_0B65: ldc.r4 16
IL_0B6A: sub
IL_0B6B: ldc.r4 64
IL_0B70: div
IL_0B71: ldc.r4 135
IL_0B76: add
IL_0B77: conv.i4
IL_0B78: ldc.i4.0
IL_0B79: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0B7E: stloc.s 67 (System.Int32)
IL_0B80: ldarg.2
IL_0B81: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0B86: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0B8B: stloc.s 70 (UnityEngine.Vector3)
IL_0B8D: ldloca.s 70 (UnityEngine.Vector3)
IL_0B8F: ldfld System.Single UnityEngine.Vector3::z
IL_0B94: ldc.r4 16
IL_0B99: sub
IL_0B9A: ldc.r4 64
IL_0B9F: div
IL_0BA0: ldc.r4 135
IL_0BA5: add
IL_0BA6: conv.i4
IL_0BA7: ldc.i4.0
IL_0BA8: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0BAD: stloc.s 69 (System.Int32)
IL_0BAF: ldarg.2
IL_0BB0: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0BB5: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0BBA: stloc.s 72 (UnityEngine.Vector3)
IL_0BBC: ldloca.s 72 (UnityEngine.Vector3)
IL_0BBE: ldfld System.Single UnityEngine.Vector3::x
IL_0BC3: ldc.r4 16
IL_0BC8: add
IL_0BC9: ldc.r4 64
IL_0BCE: div
IL_0BCF: ldc.r4 135
IL_0BD4: add
IL_0BD5: conv.i4
IL_0BD6: ldc.i4 269
IL_0BDB: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0BE0: stloc.s 71 (System.Int32)
IL_0BE2: ldarg.2
IL_0BE3: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0BE8: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0BED: stloc.s 74 (UnityEngine.Vector3)
IL_0BEF: ldloca.s 74 (UnityEngine.Vector3)
IL_0BF1: ldfld System.Single UnityEngine.Vector3::z
IL_0BF6: ldc.r4 16
IL_0BFB: add
IL_0BFC: ldc.r4 64
IL_0C01: div
IL_0C02: ldc.r4 135
IL_0C07: add
IL_0C08: conv.i4
IL_0C09: ldc.i4 269
IL_0C0E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0C13: stloc.s 73 (System.Int32)
IL_0C15: ldloc.s 69 (System.Int32)
IL_0C17: stloc.s 75 (System.Int32)
IL_0C19: br => Label100
IL_0C1E: Label108
IL_0C1E: ldloc.s 67 (System.Int32)
IL_0C20: stloc.s 76 (System.Int32)
IL_0C22: br => Label101
IL_0C27: Label107
IL_0C27: ldloc.0
IL_0C28: ldfld System.UInt16[] NetManager::m_nodeGrid
IL_0C2D: ldloc.s 75 (System.Int32)
IL_0C2F: ldc.i4 270
IL_0C34: mul
IL_0C35: ldloc.s 76 (System.Int32)
IL_0C37: add
IL_0C38: ldelem.u2
IL_0C39: stloc.s 77 (System.UInt16)
IL_0C3B: ldc.i4.0
IL_0C3C: stloc.s 78 (System.Int32)
IL_0C3E: br => Label102
IL_0C43: Label106
IL_0C43: ldloc.0
IL_0C44: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0C49: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0C4E: ldloc.s 77 (System.UInt16)
IL_0C50: ldelema NetNode
IL_0C55: call NetInfo NetNode::get_Info()
IL_0C5A: stloc.s 79 (NetInfo)
IL_0C5C: ldloc.0
IL_0C5D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0C62: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0C67: ldloc.s 77 (System.UInt16)
IL_0C69: ldelema NetNode
IL_0C6E: ldfld UnityEngine.Vector3 NetNode::m_position
IL_0C73: stloc.s 80 (UnityEngine.Vector3)
IL_0C75: ldarg.2
IL_0C76: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0C7B: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0C80: stloc.s 82 (UnityEngine.Vector3)
IL_0C82: ldloca.s 82 (UnityEngine.Vector3)
IL_0C84: ldfld System.Single UnityEngine.Vector3::x
IL_0C89: ldc.r4 16
IL_0C8E: sub
IL_0C8F: ldloca.s 80 (UnityEngine.Vector3)
IL_0C91: ldfld System.Single UnityEngine.Vector3::x
IL_0C96: sub
IL_0C97: ldarg.2
IL_0C98: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0C9D: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0CA2: stloc.s 83 (UnityEngine.Vector3)
IL_0CA4: ldloca.s 83 (UnityEngine.Vector3)
IL_0CA6: ldfld System.Single UnityEngine.Vector3::z
IL_0CAB: ldc.r4 16
IL_0CB0: sub
IL_0CB1: ldloca.s 80 (UnityEngine.Vector3)
IL_0CB3: ldfld System.Single UnityEngine.Vector3::z
IL_0CB8: sub
IL_0CB9: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0CBE: ldloca.s 80 (UnityEngine.Vector3)
IL_0CC0: ldfld System.Single UnityEngine.Vector3::x
IL_0CC5: ldarg.2
IL_0CC6: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0CCB: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0CD0: stloc.s 84 (UnityEngine.Vector3)
IL_0CD2: ldloca.s 84 (UnityEngine.Vector3)
IL_0CD4: ldfld System.Single UnityEngine.Vector3::x
IL_0CD9: sub
IL_0CDA: ldc.r4 16
IL_0CDF: sub
IL_0CE0: ldloca.s 80 (UnityEngine.Vector3)
IL_0CE2: ldfld System.Single UnityEngine.Vector3::z
IL_0CE7: ldarg.2
IL_0CE8: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0CED: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0CF2: stloc.s 85 (UnityEngine.Vector3)
IL_0CF4: ldloca.s 85 (UnityEngine.Vector3)
IL_0CF6: ldfld System.Single UnityEngine.Vector3::z
IL_0CFB: sub
IL_0CFC: ldc.r4 16
IL_0D01: sub
IL_0D02: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0D07: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0D0C: stloc.s 81 (System.Single)
IL_0D0E: ldloc.s 81 (System.Single)
IL_0D10: ldc.r4 0
IL_0D15: bge.un => Label103
IL_0D1A: ldloc.s 79 (NetInfo)
IL_0D1C: ldfld NetAI NetInfo::m_netAI
IL_0D21: ldloc.s 77 (System.UInt16)
IL_0D23: ldloc.0
IL_0D24: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0D29: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0D2E: ldloc.s 77 (System.UInt16)
IL_0D30: ldelema NetNode
IL_0D35: callvirt virtual System.Void NetAI::NearbyLanesUpdated(System.UInt16
nodeID, NetNode& data)
IL_0D3A: Label103
IL_0D3A: ldloc.0
IL_0D3B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0D40: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0D45: ldloc.s 77 (System.UInt16)
IL_0D47: ldelema NetNode
IL_0D4C: ldfld System.UInt16 NetNode::m_nextGridNode
IL_0D51: stloc.s 77 (System.UInt16)
IL_0D53: ldloc.s 78 (System.Int32)
IL_0D55: ldc.i4.1
IL_0D56: add
IL_0D57: dup
IL_0D58: stloc.s 78 (System.Int32)
IL_0D5A: ldc.i4 32768
IL_0D5F: blt => Label104
IL_0D64: ldc.i4.1
IL_0D65: ldstr "Invalid list detected!\n"
IL_0D6A: call static System.String System.Environment::get_StackTrace()
IL_0D6F: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_0D74: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Error(LogChannel ll, System.String
msg)
IL_0D79: br => Label105
IL_0D7E: Label102
IL_0D7E: Label104
IL_0D7E: ldloc.s 77 (System.UInt16)
IL_0D80: brtrue => Label106
IL_0D85: Label105
IL_0D85: ldloc.s 76 (System.Int32)
IL_0D87: ldc.i4.1
IL_0D88: add
IL_0D89: stloc.s 76 (System.Int32)
IL_0D8B: Label101
IL_0D8B: ldloc.s 76 (System.Int32)
IL_0D8D: ldloc.s 71 (System.Int32)
IL_0D8F: ble => Label107
IL_0D94: ldloc.s 75 (System.Int32)
IL_0D96: ldc.i4.1
IL_0D97: add
IL_0D98: stloc.s 75 (System.Int32)
IL_0D9A: Label100
IL_0D9A: ldloc.s 75 (System.Int32)
IL_0D9C: ldloc.s 73 (System.Int32)
IL_0D9E: ble => Label108
IL_0DA3: ldarg.0
IL_0DA4: ldfld NetInfo NetAI::m_info
IL_0DA9: ldfld System.Boolean NetInfo::m_hasPedestrianLanes
IL_0DAE: brfalse => Label109
IL_0DB3: ldarg.0
IL_0DB4: ldfld NetInfo NetAI::m_info
IL_0DB9: ldfld System.Boolean NetInfo::m_hasForwardVehicleLanes
IL_0DBE: brtrue => Label110
IL_0DC3: ldarg.0
IL_0DC4: ldfld NetInfo NetAI::m_info
IL_0DC9: ldfld System.Boolean NetInfo::m_hasBackwardVehicleLanes
IL_0DCE: brfalse => Label111
IL_0DD3: Label110
IL_0DD3: ldarg.1
IL_0DD4: ldarg.2
IL_0DD5: call static System.Void RoadBaseAI::CheckBuildings(System.UInt16
segmentID, NetSegment& data)
IL_0DDA: // end original
IL_0DDA: Label99
IL_0DDA: Label109
IL_0DDA: Label111
IL_0DDA: ldarg 1
IL_0DDE: ldarg 2
IL_0DE2: ldarg 3
IL_0DE6: call static System.Void
TrafficManager.Patch._RoadBaseAI.UpdateLanesPatch::Postfix(System.UInt16 segmentID,
NetSegment& data, System.Boolean loading)
IL_0DEB: 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::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.s => Label1
IL_0014: 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: 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_0035: stloc 1 (System.Boolean)
IL_0039: nop
IL_003A: ldloc 1 (System.Boolean)
IL_003E: brfalse => Label0
IL_0043: // start original
IL_0043: ldarg.s 4
IL_0045: ldc.i4.2
IL_0046: shl
IL_0047: ldarg.3
IL_0048: or
IL_0049: stloc.0
IL_004A: ldarg.1
IL_004B: ldfld System.UInt16 NetSegment::m_startNode
IL_0050: ldarg.0
IL_0051: bne.un => Label2
IL_0056: ldarg.2
IL_0057: ldc.i4.8
IL_0058: shr.un
IL_0059: ldc.i4.1
IL_005A: and
IL_005B: brtrue => Label3
IL_0060: ldarg.1
IL_0061: ldarg.1
IL_0062: ldfld System.Byte NetSegment::m_trafficLightState0
IL_0067: ldc.i4 240
IL_006C: and
IL_006D: ldloc.0
IL_006E: or
IL_006F: conv.u1
IL_0070: stfld System.Byte NetSegment::m_trafficLightState0
IL_0075: br => Label4
IL_007A: Label3
IL_007A: ldarg.1
IL_007B: ldarg.1
IL_007C: ldfld System.Byte NetSegment::m_trafficLightState1
IL_0081: ldc.i4 240
IL_0086: and
IL_0087: ldloc.0
IL_0088: or
IL_0089: conv.u1
IL_008A: stfld System.Byte NetSegment::m_trafficLightState1
IL_008F: Label4
IL_008F: ldarg.s 5
IL_0091: brfalse => Label5
IL_0096: ldarg.1
IL_0097: dup
IL_0098: ldfld Flags NetSegment::m_flags
IL_009D: ldc.i4 4096
IL_00A2: or
IL_00A3: stfld Flags NetSegment::m_flags
IL_00A8: br => Label6
IL_00AD: Label5
IL_00AD: ldarg.1
IL_00AE: dup
IL_00AF: ldfld Flags NetSegment::m_flags
IL_00B4: ldc.i4 -4097
IL_00B9: and
IL_00BA: stfld Flags NetSegment::m_flags
IL_00BF: Label6
IL_00BF: ldarg.s 6
IL_00C1: brfalse => Label7
IL_00C6: ldarg.1
IL_00C7: dup
IL_00C8: ldfld Flags NetSegment::m_flags
IL_00CD: ldc.i4 16384
IL_00D2: or
IL_00D3: stfld Flags NetSegment::m_flags
IL_00D8: br => Label8
IL_00DD: Label7
IL_00DD: ldarg.1
IL_00DE: dup
IL_00DF: ldfld Flags NetSegment::m_flags
IL_00E4: ldc.i4 -16385
IL_00E9: and
IL_00EA: stfld Flags NetSegment::m_flags
IL_00EF: Label8
IL_00EF: br => Label9
IL_00F4: Label2
IL_00F4: ldarg.2
IL_00F5: ldc.i4.8
IL_00F6: shr.un
IL_00F7: ldc.i4.1
IL_00F8: and
IL_00F9: brtrue => Label10
IL_00FE: ldarg.1
IL_00FF: ldarg.1
IL_0100: ldfld System.Byte NetSegment::m_trafficLightState0
IL_0105: ldc.i4.s 15
IL_0107: and
IL_0108: ldloc.0
IL_0109: ldc.i4.4
IL_010A: shl
IL_010B: or
IL_010C: conv.u1
IL_010D: stfld System.Byte NetSegment::m_trafficLightState0
IL_0112: br => Label11
IL_0117: Label10
IL_0117: ldarg.1
IL_0118: ldarg.1
IL_0119: ldfld System.Byte NetSegment::m_trafficLightState1
IL_011E: ldc.i4.s 15
IL_0120: and
IL_0121: ldloc.0
IL_0122: ldc.i4.4
IL_0123: shl
IL_0124: or
IL_0125: conv.u1
IL_0126: stfld System.Byte NetSegment::m_trafficLightState1
IL_012B: Label11
IL_012B: ldarg.s 5
IL_012D: brfalse => Label12
IL_0132: ldarg.1
IL_0133: dup
IL_0134: ldfld Flags NetSegment::m_flags
IL_0139: ldc.i4 8192
IL_013E: or
IL_013F: stfld Flags NetSegment::m_flags
IL_0144: br => Label13
IL_0149: Label12
IL_0149: ldarg.1
IL_014A: dup
IL_014B: ldfld Flags NetSegment::m_flags
IL_0150: ldc.i4 -8193
IL_0155: and
IL_0156: stfld Flags NetSegment::m_flags
IL_015B: Label13
IL_015B: ldarg.s 6
IL_015D: brfalse => Label14
IL_0162: ldarg.1
IL_0163: dup
IL_0164: ldfld Flags NetSegment::m_flags
IL_0169: ldc.i4 32768
IL_016E: or
IL_016F: stfld Flags NetSegment::m_flags
IL_0174: br => Label15
IL_0179: Label14
IL_0179: ldarg.1
IL_017A: dup
IL_017B: ldfld Flags NetSegment::m_flags
IL_0180: ldc.i4 -32769
IL_0185: and
IL_0186: stfld Flags NetSegment::m_flags
IL_018B: // end original
IL_018B: Label9
IL_018B: Label15
IL_018B: Label0
IL_018B: ret
DONE

### Patch: virtual System.Void RoadBaseAI::SimulationStep(System.UInt16 segmentID,


NetSegment& data)
### Replacement: static System.Void 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/Problem
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.s => Label1
IL_0014: ldarg.0
IL_0015: ldarg 1
IL_0019: ldarg 2
IL_001D: call static System.Void
TrafficManager.Patch._RoadBaseAI.SegmentSimulationStepPatch::Prefix(RoadBaseAI
__instance, System.UInt16 segmentID, NetSegment& data)
IL_0022: nop
IL_0023: ldloc 44 (System.Boolean)
IL_0027: brfalse => Label0
IL_002C: // start original
IL_002C: ldarg.0
IL_002D: ldarg.1
IL_002E: ldarg.2
IL_002F: call virtual System.Void PlayerNetAI::SimulationStep(System.UInt16
segmentID, NetSegment& data)
IL_0034: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0039: stloc.0
IL_003A: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_003F: stloc.1
IL_0040: ldarg.2
IL_0041: ldfld Problem NetSegment::m_problems
IL_0046: ldc.i4 805306368
IL_004B: conv.i8
IL_004C: call static Problem Notification::RemoveProblems(Problem problems1,
Problem problems2)
IL_0051: stloc.2
IL_0052: ldarg.2
IL_0053: ldfld Flags NetSegment::m_flags
IL_0058: ldc.i4 2048
IL_005D: and
IL_005E: brfalse => Label2
IL_0063: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0068: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_006D: ldc.i4.s 16
IL_006F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0074: brtrue => Label3
IL_0079: ldarg.2
IL_007A: dup
IL_007B: ldfld Flags NetSegment::m_flags
IL_0080: ldc.i4 -2049
IL_0085: and
IL_0086: stfld Flags NetSegment::m_flags
IL_008B: Label2
IL_008B: Label3
IL_008B: ldc.r4 0
IL_0090: stloc.3
IL_0091: ldarg.2
IL_0092: ldfld System.UInt32 NetSegment::m_lanes
IL_0097: stloc.s 4 (System.UInt32)
IL_0099: ldc.i4.0
IL_009A: stloc.s 5 (System.Int32)
IL_009C: br => Label4
IL_00A1: Label8
IL_00A1: ldarg.0
IL_00A2: ldfld NetInfo NetAI::m_info
IL_00A7: ldfld Lane[] NetInfo::m_lanes
IL_00AC: ldloc.s 5 (System.Int32)
IL_00AE: ldelem.ref
IL_00AF: stloc.s 6 (NetInfo+Lane)
IL_00B1: ldloc.s 6 (NetInfo+Lane)
IL_00B3: ldfld LaneType Lane::m_laneType
IL_00B8: ldc.i4.s 33
IL_00BA: and
IL_00BB: conv.u1
IL_00BC: brfalse => Label5
IL_00C1: ldloc.s 6 (NetInfo+Lane)
IL_00C3: ldfld VehicleType Lane::m_vehicleType
IL_00C8: ldc.i4.s -33
IL_00CA: and
IL_00CB: brfalse => Label6
IL_00D0: ldloc.3
IL_00D1: ldloc.1
IL_00D2: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00D7: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00DC: ldloc.s 4 (System.UInt32)
IL_00DE: conv.u
IL_00DF: ldelema NetLane
IL_00E4: ldfld System.Single NetLane::m_length
IL_00E9: add
IL_00EA: stloc.3
IL_00EB: Label5
IL_00EB: Label6
IL_00EB: ldloc.1
IL_00EC: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00F1: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00F6: ldloc.s 4 (System.UInt32)
IL_00F8: conv.u
IL_00F9: ldelema NetLane
IL_00FE: ldfld System.UInt32 NetLane::m_nextLane
IL_0103: stloc.s 4 (System.UInt32)
IL_0105: ldloc.s 5 (System.Int32)
IL_0107: ldc.i4.1
IL_0108: add
IL_0109: stloc.s 5 (System.Int32)
IL_010B: Label4
IL_010B: ldloc.s 5 (System.Int32)
IL_010D: ldarg.0
IL_010E: ldfld NetInfo NetAI::m_info
IL_0113: ldfld Lane[] NetInfo::m_lanes
IL_0118: ldlen
IL_0119: conv.i4
IL_011A: bge => Label7
IL_011F: ldloc.s 4 (System.UInt32)
IL_0121: brtrue => Label8
IL_0126: Label7
IL_0126: ldc.i4.0
IL_0127: stloc.s 7 (System.Int32)
IL_0129: ldc.i4.0
IL_012A: stloc.s 8 (System.Int32)
IL_012C: ldarg.2
IL_012D: ldfld System.UInt16 NetSegment::m_trafficBuffer
IL_0132: ldc.i4 65535
IL_0137: bne.un => Label9
IL_013C: ldarg.2
IL_013D: ldfld Flags NetSegment::m_flags
IL_0142: ldc.i4 2097152
IL_0147: and
IL_0148: brtrue => Label10
IL_014D: ldarg.2
IL_014E: dup
IL_014F: ldfld Flags NetSegment::m_flags
IL_0154: ldc.i4 2097152
IL_0159: or
IL_015A: stfld Flags NetSegment::m_flags
IL_015F: ldarg.2
IL_0160: ldloc.0
IL_0161: dup
IL_0162: ldfld System.UInt32 SimulationManager::m_currentBuildIndex
IL_0167: dup
IL_0168: stloc.s 9 (System.UInt32)
IL_016A: ldc.i4.1
IL_016B: add
IL_016C: stfld System.UInt32 SimulationManager::m_currentBuildIndex
IL_0171: ldloc.s 9 (System.UInt32)
IL_0173: stfld System.UInt32 NetSegment::m_modifiedIndex
IL_0178: Label10
IL_0178: br => Label11
IL_017D: Label9
IL_017D: ldarg.2
IL_017E: dup
IL_017F: ldfld Flags NetSegment::m_flags
IL_0184: ldc.i4 -2097153
IL_0189: and
IL_018A: stfld Flags NetSegment::m_flags
IL_018F: ldloc.3
IL_0190: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_0195: ldc.i4.4
IL_0196: shl
IL_0197: stloc.s 10 (System.Int32)
IL_0199: ldloc.s 10 (System.Int32)
IL_019B: brfalse => Label12
IL_01A0: ldarg.2
IL_01A1: ldfld System.UInt16 NetSegment::m_trafficBuffer
IL_01A6: ldc.i4.s 100
IL_01A8: mul
IL_01A9: ldloc.s 10 (System.Int32)
IL_01AB: div
IL_01AC: ldc.i4.s 100
IL_01AE: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01B3: conv.u1
IL_01B4: stloc.s 7 (System.Int32)
IL_01B6: ldarg.2
IL_01B7: ldfld System.UInt16 NetSegment::m_noiseBuffer
IL_01BC: ldc.i4 250
IL_01C1: mul
IL_01C2: ldloc.s 10 (System.Int32)
IL_01C4: div
IL_01C5: ldc.i4.s 100
IL_01C7: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01CC: conv.u1
IL_01CD: stloc.s 8 (System.Int32)
IL_01CF: Label11
IL_01CF: Label12
IL_01CF: ldarg.2
IL_01D0: ldc.i4.0
IL_01D1: stfld System.UInt16 NetSegment::m_trafficBuffer
IL_01D6: ldarg.2
IL_01D7: ldc.i4.0
IL_01D8: stfld System.UInt16 NetSegment::m_noiseBuffer
IL_01DD: ldloc.s 7 (System.Int32)
IL_01DF: ldarg.2
IL_01E0: ldfld System.Byte NetSegment::m_trafficDensity
IL_01E5: ble => Label13
IL_01EA: ldarg.2
IL_01EB: ldarg.2
IL_01EC: ldfld System.Byte NetSegment::m_trafficDensity
IL_01F1: ldc.i4.5
IL_01F2: add
IL_01F3: ldloc.s 7 (System.Int32)
IL_01F5: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01FA: conv.u1
IL_01FB: stfld System.Byte NetSegment::m_trafficDensity
IL_0200: br => Label14
IL_0205: Label13
IL_0205: ldloc.s 7 (System.Int32)
IL_0207: ldarg.2
IL_0208: ldfld System.Byte NetSegment::m_trafficDensity
IL_020D: bge => Label15
IL_0212: ldarg.2
IL_0213: ldarg.2
IL_0214: ldfld System.Byte NetSegment::m_trafficDensity
IL_0219: ldc.i4.5
IL_021A: sub
IL_021B: ldloc.s 7 (System.Int32)
IL_021D: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0222: conv.u1
IL_0223: stfld System.Byte NetSegment::m_trafficDensity
IL_0228: Label14
IL_0228: Label15
IL_0228: ldloc.s 8 (System.Int32)
IL_022A: ldarg.2
IL_022B: ldfld System.Byte NetSegment::m_noiseDensity
IL_0230: ble => Label16
IL_0235: ldarg.2
IL_0236: ldarg.2
IL_0237: ldfld System.Byte NetSegment::m_noiseDensity
IL_023C: ldc.i4.2
IL_023D: add
IL_023E: ldloc.s 8 (System.Int32)
IL_0240: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0245: conv.u1
IL_0246: stfld System.Byte NetSegment::m_noiseDensity
IL_024B: br => Label17
IL_0250: Label16
IL_0250: ldloc.s 8 (System.Int32)
IL_0252: ldarg.2
IL_0253: ldfld System.Byte NetSegment::m_noiseDensity
IL_0258: bge => Label18
IL_025D: ldarg.2
IL_025E: ldarg.2
IL_025F: ldfld System.Byte NetSegment::m_noiseDensity
IL_0264: ldc.i4.2
IL_0265: sub
IL_0266: ldloc.s 8 (System.Int32)
IL_0268: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_026D: conv.u1
IL_026E: stfld System.Byte NetSegment::m_noiseDensity
IL_0273: Label17
IL_0273: Label18
IL_0273: ldloc.1
IL_0274: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0279: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_027E: ldarg.2
IL_027F: ldfld System.UInt16 NetSegment::m_startNode
IL_0284: ldelema NetNode
IL_0289: ldfld UnityEngine.Vector3 NetNode::m_position
IL_028E: stloc.s 11 (UnityEngine.Vector3)
IL_0290: ldloc.1
IL_0291: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0296: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_029B: ldarg.2
IL_029C: ldfld System.UInt16 NetSegment::m_endNode
IL_02A1: ldelema NetNode
IL_02A6: ldfld UnityEngine.Vector3 NetNode::m_position
IL_02AB: stloc.s 12 (UnityEngine.Vector3)
IL_02AD: ldloc.s 11 (UnityEngine.Vector3)
IL_02AF: ldloc.s 12 (UnityEngine.Vector3)
IL_02B1: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_02B6: ldc.r4 0.5
IL_02BB: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_02C0: stloc.s 13 (UnityEngine.Vector3)
IL_02C2: ldc.i4.0
IL_02C3: stloc.s 14 (System.Boolean)
IL_02C5: ldarg.0
IL_02C6: ldfld NetInfo NetAI::m_info
IL_02CB: ldfld Flags NetInfo::m_setVehicleFlags
IL_02D0: ldc.i4 268435456
IL_02D5: and
IL_02D6: brtrue => Label19
IL_02DB: call static TerrainManager
ColossalFramework.Singleton`1<TerrainManager>::get_instance()
IL_02E0: ldloc.s 13 (UnityEngine.Vector3)
IL_02E2: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_02E7: callvirt System.Single TerrainManager::WaterLevel(UnityEngine.Vector2
position)
IL_02EC: stloc.s 15 (System.Single)
IL_02EE: ldloc.s 15 (System.Single)
IL_02F0: ldloca.s 13 (UnityEngine.Vector3)
IL_02F2: ldfld System.Single UnityEngine.Vector3::y
IL_02F7: ldc.r4 1
IL_02FC: add
IL_02FD: ble.un => Label20
IL_0302: ldloc.s 15 (System.Single)
IL_0304: ldc.r4 0
IL_0309: ble.un => Label21
IL_030E: ldc.i4.1
IL_030F: stloc.s 14 (System.Boolean)
IL_0311: ldarg.2
IL_0312: dup
IL_0313: ldfld Flags NetSegment::m_flags
IL_0318: ldc.i4 4194304
IL_031D: or
IL_031E: stfld Flags NetSegment::m_flags
IL_0323: ldloc.2
IL_0324: ldc.i8 4611686018695823360
IL_032D: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0332: stloc.2
IL_0333: ldarg.2
IL_0334: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0339: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_033E: stloc.s 16 (UnityEngine.Vector3)
IL_0340: ldarg.2
IL_0341: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0346: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_034B: stloc.s 17 (UnityEngine.Vector3)
IL_034D: ldloca.s 16 (UnityEngine.Vector3)
IL_034F: ldfld System.Single UnityEngine.Vector3::x
IL_0354: ldloca.s 16 (UnityEngine.Vector3)
IL_0356: ldfld System.Single UnityEngine.Vector3::z
IL_035B: ldloca.s 17 (UnityEngine.Vector3)
IL_035D: ldfld System.Single UnityEngine.Vector3::x
IL_0362: ldloca.s 17 (UnityEngine.Vector3)
IL_0364: ldfld System.Single UnityEngine.Vector3::z
IL_0369: call static System.Void RoadBaseAI::FloodParkedCars(System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_036E: br => Label22
IL_0373: Label20
IL_0373: Label21
IL_0373: ldarg.2
IL_0374: dup
IL_0375: ldfld Flags NetSegment::m_flags
IL_037A: ldc.i4 -4194305
IL_037F: and
IL_0380: stfld Flags NetSegment::m_flags
IL_0385: ldloc.s 15 (System.Single)
IL_0387: ldloca.s 13 (UnityEngine.Vector3)
IL_0389: ldfld System.Single UnityEngine.Vector3::y
IL_038E: ble.un => Label23
IL_0393: ldloc.s 15 (System.Single)
IL_0395: ldc.r4 0
IL_039A: ble.un => Label24
IL_039F: ldc.i4.1
IL_03A0: stloc.s 14 (System.Boolean)
IL_03A2: ldloc.2
IL_03A3: ldc.i4 268435456
IL_03A8: conv.i8
IL_03A9: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_03AE: stloc.2
IL_03AF: Label19
IL_03AF: Label22
IL_03AF: Label23
IL_03AF: Label24
IL_03AF: call static DistrictManager
ColossalFramework.Singleton`1<DistrictManager>::get_instance()
IL_03B4: stloc.s 18 (DistrictManager)
IL_03B6: ldloc.s 18 (DistrictManager)
IL_03B8: ldloc.s 13 (UnityEngine.Vector3)
IL_03BA: callvirt System.Byte DistrictManager::GetDistrict(UnityEngine.Vector3
worldPos)
IL_03BF: stloc.s 19 (System.Byte)
IL_03C1: ldloc.s 18 (DistrictManager)
IL_03C3: ldfld Array8`1<District> DistrictManager::m_districts
IL_03C8: ldfld District[] Array8`1<District>::m_buffer
IL_03CD: ldloc.s 19 (System.Byte)
IL_03CF: ldelema District
IL_03D4: ldfld CityPlanning District::m_cityPlanningPolicies
IL_03D9: stloc.s 20 (DistrictPolicies+CityPlanning)
IL_03DB: ldc.i4.s 100
IL_03DD: ldarg.2
IL_03DE: ldfld System.Byte NetSegment::m_noiseDensity
IL_03E3: ldc.i4.s 100
IL_03E5: sub
IL_03E6: ldarg.2
IL_03E7: ldfld System.Byte NetSegment::m_noiseDensity
IL_03EC: ldc.i4.s 100
IL_03EE: sub
IL_03EF: mul
IL_03F0: ldc.i4.s 100
IL_03F2: div
IL_03F3: sub
IL_03F4: stloc.s 21 (System.Int32)
IL_03F6: ldarg.0
IL_03F7: ldfld NetInfo NetAI::m_info
IL_03FC: ldfld VehicleType NetInfo::m_vehicleTypes
IL_0401: ldc.i4.1
IL_0402: and
IL_0403: brfalse => Label25
IL_0408: ldarg.0
IL_0409: ldfld NetInfo NetAI::m_info
IL_040E: ldfld Flags NetInfo::m_setVehicleFlags
IL_0413: ldc.i4 268435456
IL_0418: and
IL_0419: brtrue => Label26
IL_041E: ldloc.s 14 (System.Boolean)
IL_0420: brfalse => Label27
IL_0425: ldarg.2
IL_0426: ldfld Flags NetSegment::m_flags
IL_042B: ldc.i4 2099200
IL_0430: and
IL_0431: brtrue => Label28
IL_0436: ldloc.0
IL_0437: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_043C: ldc.i4.s 10
IL_043E: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0443: brtrue => Label29
IL_0448: ldloca.s 22 (TransferManager+TransferOffer)
IL_044A: initobj TransferManager+TransferOffer
IL_0450: ldloca.s 22 (TransferManager+TransferOffer)
IL_0452: ldc.i4.4
IL_0453: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_0458: ldloca.s 22 (TransferManager+TransferOffer)
IL_045A: ldarg.1
IL_045B: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_0460: ldloca.s 22 (TransferManager+TransferOffer)
IL_0462: ldloc.s 13 (UnityEngine.Vector3)
IL_0464: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_0469: ldloca.s 22 (TransferManager+TransferOffer)
IL_046B: ldc.i4.1
IL_046C: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_0471: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_0476: ldc.i4.s 73
IL_0478: ldloc.s 22 (TransferManager+TransferOffer)
IL_047A: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason
material, TransferOffer offer)
IL_047F: Label27
IL_047F: Label28
IL_047F: Label29
IL_047F: ldarg.2
IL_0480: ldfld System.Byte NetSegment::m_wetness
IL_0485: stloc.s 23 (System.Int32)
IL_0487: ldloc.1
IL_0488: ldfld System.Boolean NetManager::m_treatWetAsSnow
IL_048D: brtrue => Label30
IL_0492: ldloc.s 14 (System.Boolean)
IL_0494: brfalse => Label31
IL_0499: ldc.i4 255
IL_049E: stloc.s 23 (System.Int32)
IL_04A0: br => Label32
IL_04A5: Label31
IL_04A5: ldloc.s 23 (System.Int32)
IL_04A7: ldc.i4.s 63
IL_04A9: add
IL_04AA: ldc.i4.5
IL_04AB: shr
IL_04AC: neg
IL_04AD: stloc.s 24 (System.Int32)
IL_04AF: call static WeatherManager
ColossalFramework.Singleton`1<WeatherManager>::get_instance()
IL_04B4: ldloc.s 13 (UnityEngine.Vector3)
IL_04B6: ldc.i4.0
IL_04B7: callvirt System.Single
WeatherManager::SampleRainIntensity(UnityEngine.Vector3 pos, System.Boolean
ignoreWeather)
IL_04BC: stloc.s 25 (System.Single)
IL_04BE: ldloc.s 25 (System.Single)
IL_04C0: ldc.r4 0
IL_04C5: beq => Label33
IL_04CA: ldloc.s 25 (System.Single)
IL_04CC: ldc.r4 4000
IL_04D1: mul
IL_04D2: ldc.r4 1000
IL_04D7: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_04DC: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_04E1: stloc.s 26 (System.Int32)
IL_04E3: ldloc.s 24 (System.Int32)
IL_04E5: ldloc.0
IL_04E6: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_04EB: ldloc.s 26 (System.Int32)
IL_04ED: ldloc.s 26 (System.Int32)
IL_04EF: ldc.i4.s 99
IL_04F1: add
IL_04F2: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_04F7: ldc.i4.s 100
IL_04F9: div
IL_04FA: add
IL_04FB: stloc.s 24 (System.Int32)
IL_04FD: Label33
IL_04FD: ldloc.s 23 (System.Int32)
IL_04FF: ldloc.s 24 (System.Int32)
IL_0501: add
IL_0502: ldc.i4.0
IL_0503: ldc.i4 255
IL_0508: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_050D: stloc.s 23 (System.Int32)
IL_050F: Label32
IL_050F: br => Label34
IL_0514: Label30
IL_0514: ldarg.0
IL_0515: ldfld System.Boolean RoadBaseAI::m_accumulateSnow
IL_051A: brfalse => Label35
IL_051F: ldloc.s 14 (System.Boolean)
IL_0521: brfalse => Label36
IL_0526: ldc.i4 128
IL_052B: stloc.s 23 (System.Int32)
IL_052D: br => Label37
IL_0532: Label36
IL_0532: call static WeatherManager
ColossalFramework.Singleton`1<WeatherManager>::get_instance()
IL_0537: ldloc.s 13 (UnityEngine.Vector3)
IL_0539: ldc.i4.0
IL_053A: callvirt System.Single
WeatherManager::SampleRainIntensity(UnityEngine.Vector3 pos, System.Boolean
ignoreWeather)
IL_053F: stloc.s 27 (System.Single)
IL_0541: ldloc.s 27 (System.Single)
IL_0543: ldc.r4 0
IL_0548: beq => Label38
IL_054D: ldloc.s 27 (System.Single)
IL_054F: ldc.r4 400
IL_0554: mul
IL_0555: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_055A: stloc.s 28 (System.Int32)
IL_055C: ldloc.0
IL_055D: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0562: ldloc.s 28 (System.Int32)
IL_0564: ldloc.s 28 (System.Int32)
IL_0566: ldc.i4.s 99
IL_0568: add
IL_0569: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_056E: ldc.i4.s 100
IL_0570: div
IL_0571: stloc.s 29 (System.Int32)
IL_0573: call static UnlockManager
ColossalFramework.Singleton`1<UnlockManager>::get_instance()
IL_0578: ldc.i4.s 24
IL_057A: callvirt System.Boolean UnlockManager::Unlocked(Feature feature)
IL_057F: brfalse => Label39
IL_0584: ldloc.s 23 (System.Int32)
IL_0586: ldloc.s 29 (System.Int32)
IL_0588: add
IL_0589: ldc.i4 255
IL_058E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0593: stloc.s 23 (System.Int32)
IL_0595: br => Label40
IL_059A: Label39
IL_059A: ldloc.s 23 (System.Int32)
IL_059C: ldloc.s 29 (System.Int32)
IL_059E: add
IL_059F: ldc.i4 128
IL_05A4: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_05A9: stloc.s 23 (System.Int32)
IL_05AB: Label40
IL_05AB: br => Label41
IL_05B0: Label38
IL_05B0: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_05B5: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_05BA: ldc.i4.4
IL_05BB: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_05C0: brtrue => Label42
IL_05C5: ldloc.s 23 (System.Int32)
IL_05C7: ldc.i4.1
IL_05C8: sub
IL_05C9: ldc.i4.0
IL_05CA: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_05CF: stloc.s 23 (System.Int32)
IL_05D1: Label41
IL_05D1: Label42
IL_05D1: ldloc.s 23 (System.Int32)
IL_05D3: ldc.i4.s 64
IL_05D5: blt => Label43
IL_05DA: ldarg.2
IL_05DB: ldfld Flags NetSegment::m_flags
IL_05E0: ldc.i4 6293504
IL_05E5: and
IL_05E6: brtrue => Label44
IL_05EB: ldloc.0
IL_05EC: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_05F1: ldc.i4.s 10
IL_05F3: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_05F8: brtrue => Label45
IL_05FD: ldloca.s 30 (TransferManager+TransferOffer)
IL_05FF: initobj TransferManager+TransferOffer
IL_0605: ldloca.s 30 (TransferManager+TransferOffer)
IL_0607: ldloc.s 23 (System.Int32)
IL_0609: ldc.i4.s 50
IL_060B: div
IL_060C: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_0611: ldloca.s 30 (TransferManager+TransferOffer)
IL_0613: ldarg.1
IL_0614: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_0619: ldloca.s 30 (TransferManager+TransferOffer)
IL_061B: ldloc.s 13 (UnityEngine.Vector3)
IL_061D: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_0622: ldloca.s 30 (TransferManager+TransferOffer)
IL_0624: ldc.i4.1
IL_0625: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_062A: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_062F: ldc.i4.s 64
IL_0631: ldloc.s 30 (TransferManager+TransferOffer)
IL_0633: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason
material, TransferOffer offer)
IL_0638: Label43
IL_0638: Label44
IL_0638: Label45
IL_0638: ldloc.s 23 (System.Int32)
IL_063A: ldc.i4 192
IL_063F: blt => Label46
IL_0644: ldloc.2
IL_0645: ldc.i4 536870912
IL_064A: conv.i8
IL_064B: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0650: stloc.2
IL_0651: Label46
IL_0651: ldloc.s 18 (DistrictManager)
IL_0653: ldfld Array8`1<District> DistrictManager::m_districts
IL_0658: ldfld District[] Array8`1<District>::m_buffer
IL_065D: ldloc.s 19 (System.Byte)
IL_065F: ldelema District
IL_0664: ldflda DistrictProductionData District::m_productionData
IL_0669: dup
IL_066A: ldfld System.UInt32 DistrictProductionData::m_tempSnowCover
IL_066F: ldloc.s 23 (System.Int32)
IL_0671: add
IL_0672: stfld System.UInt32 DistrictProductionData::m_tempSnowCover
IL_0677: Label34
IL_0677: Label35
IL_0677: Label37
IL_0677: ldloc.s 23 (System.Int32)
IL_0679: ldarg.2
IL_067A: ldfld System.Byte NetSegment::m_wetness
IL_067F: beq => Label47
IL_0684: ldarg.2
IL_0685: ldfld System.Byte NetSegment::m_wetness
IL_068A: ldloc.s 23 (System.Int32)
IL_068C: sub
IL_068D: call static System.Int32 UnityEngine.Mathf::Abs(System.Int32 value)
IL_0692: ldc.i4.s 10
IL_0694: ble => Label48
IL_0699: ldarg.2
IL_069A: ldloc.s 23 (System.Int32)
IL_069C: conv.u1
IL_069D: stfld System.Byte NetSegment::m_wetness
IL_06A2: ldsfld InstanceID InstanceID::Empty
IL_06A7: stloc.s 31 (InstanceID)
IL_06A9: ldloca.s 31 (InstanceID)
IL_06AB: ldarg.1
IL_06AC: call System.Void InstanceID::set_NetSegment(System.UInt16 value)
IL_06B1: ldloc.1
IL_06B2: ldloc.s 31 (InstanceID)
IL_06B4: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06B9: ldloca.s 31 (InstanceID)
IL_06BB: ldarg.2
IL_06BC: ldfld System.UInt16 NetSegment::m_startNode
IL_06C1: call System.Void InstanceID::set_NetNode(System.UInt16 value)
IL_06C6: ldloc.1
IL_06C7: ldloc.s 31 (InstanceID)
IL_06C9: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06CE: ldloca.s 31 (InstanceID)
IL_06D0: ldarg.2
IL_06D1: ldfld System.UInt16 NetSegment::m_endNode
IL_06D6: call System.Void InstanceID::set_NetNode(System.UInt16 value)
IL_06DB: ldloc.1
IL_06DC: ldloc.s 31 (InstanceID)
IL_06DE: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06E3: br => Label49
IL_06E8: Label48
IL_06E8: ldarg.2
IL_06E9: ldloc.s 23 (System.Int32)
IL_06EB: conv.u1
IL_06EC: stfld System.Byte NetSegment::m_wetness
IL_06F1: ldloc.1
IL_06F2: ldc.i4 256
IL_06F7: stfld System.Int32 NetManager::m_wetnessChanged
IL_06FC: Label26
IL_06FC: Label47
IL_06FC: Label49
IL_06FC: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_06FE: ldc.i4 1024
IL_0703: and
IL_0704: brfalse => Label50
IL_0709: ldloc.s 21 (System.Int32)
IL_070B: ldc.i4.3
IL_070C: mul
IL_070D: ldc.i4.1
IL_070E: add
IL_070F: ldc.i4.1
IL_0710: shr
IL_0711: stloc.s 21 (System.Int32)
IL_0713: ldc.i4 700
IL_0718: ldc.i4.s 50
IL_071A: ldarg.2
IL_071B: ldfld System.Byte NetSegment::m_trafficDensity
IL_0720: ldc.i4.6
IL_0721: mul
IL_0722: add
IL_0723: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0728: stloc.s 32 (System.Int32)
IL_072A: br => Label51
IL_072F: Label50
IL_072F: ldc.i4 500
IL_0734: ldc.i4.s 50
IL_0736: ldarg.2
IL_0737: ldfld System.Byte NetSegment::m_trafficDensity
IL_073C: ldc.i4.4
IL_073D: mul
IL_073E: add
IL_073F: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0744: stloc.s 32 (System.Int32)
IL_0746: Label51
IL_0746: ldarg.0
IL_0747: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_074C: brtrue => Label52
IL_0751: ldloc.0
IL_0752: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0757: ldloc.s 32 (System.Int32)
IL_0759: ldloc.s 32 (System.Int32)
IL_075B: ldc.i4.s 99
IL_075D: add
IL_075E: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_0763: ldc.i4.s 100
IL_0765: div
IL_0766: stloc.s 33 (System.Int32)
IL_0768: ldarg.2
IL_0769: ldarg.2
IL_076A: ldfld System.Byte NetSegment::m_condition
IL_076F: ldloc.s 33 (System.Int32)
IL_0771: sub
IL_0772: ldc.i4.0
IL_0773: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0778: conv.u1
IL_0779: stfld System.Byte NetSegment::m_condition
IL_077E: ldarg.2
IL_077F: ldfld System.Byte NetSegment::m_condition
IL_0784: ldc.i4 192
IL_0789: bge => Label53
IL_078E: ldarg.2
IL_078F: ldfld Flags NetSegment::m_flags
IL_0794: ldc.i4 6293504
IL_0799: and
IL_079A: brtrue => Label54
IL_079F: ldloc.0
IL_07A0: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_07A5: ldc.i4.s 20
IL_07A7: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_07AC: brtrue => Label55
IL_07B1: ldloca.s 34 (TransferManager+TransferOffer)
IL_07B3: initobj TransferManager+TransferOffer
IL_07B9: ldloca.s 34 (TransferManager+TransferOffer)
IL_07BB: ldc.i4 255
IL_07C0: ldarg.2
IL_07C1: ldfld System.Byte NetSegment::m_condition
IL_07C6: sub
IL_07C7: ldc.i4.s 50
IL_07C9: div
IL_07CA: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_07CF: ldloca.s 34 (TransferManager+TransferOffer)
IL_07D1: ldarg.1
IL_07D2: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_07D7: ldloca.s 34 (TransferManager+TransferOffer)
IL_07D9: ldloc.s 13 (UnityEngine.Vector3)
IL_07DB: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_07E0: ldloca.s 34 (TransferManager+TransferOffer)
IL_07E2: ldc.i4.1
IL_07E3: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_07E8: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_07ED: ldc.i4.s 66
IL_07EF: ldloc.s 34 (TransferManager+TransferOffer)
IL_07F1: callvirt System.Void TransferManager::AddIncomingOffer(TransferReason
material, TransferOffer offer)
IL_07F6: Label25
IL_07F6: Label52
IL_07F6: Label53
IL_07F6: Label54
IL_07F6: Label55
IL_07F6: ldarg.0
IL_07F7: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_07FC: brtrue => Label56
IL_0801: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_0803: ldc.i4.s 32
IL_0805: and
IL_0806: brfalse => Label57
IL_080B: ldarg.2
IL_080C: dup
IL_080D: ldfld Flags NetSegment::m_flags
IL_0812: ldc.i4 1048576
IL_0817: or
IL_0818: stfld Flags NetSegment::m_flags
IL_081D: br => Label58
IL_0822: Label57
IL_0822: ldarg.2
IL_0823: dup
IL_0824: ldfld Flags NetSegment::m_flags
IL_0829: ldc.i4 -1048577
IL_082E: and
IL_082F: stfld Flags NetSegment::m_flags
IL_0834: Label58
IL_0834: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_0836: ldc.i4 128
IL_083B: and
IL_083C: brfalse => Label59
IL_0841: ldarg.2
IL_0842: dup
IL_0843: ldfld Flags NetSegment::m_flags
IL_0848: ldc.i4 8388608
IL_084D: or
IL_084E: stfld Flags NetSegment::m_flags
IL_0853: br => Label60
IL_0858: Label59
IL_0858: ldarg.2
IL_0859: dup
IL_085A: ldfld Flags NetSegment::m_flags
IL_085F: ldc.i4 -8388609
IL_0864: and
IL_0865: stfld Flags NetSegment::m_flags
IL_086A: Label60
IL_086A: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_086C: ldc.i4 512
IL_0871: and
IL_0872: brfalse => Label61
IL_0877: ldarg.2
IL_0878: dup
IL_0879: ldfld Flags NetSegment::m_flags
IL_087E: ldc.i4 16777216
IL_0883: or
IL_0884: stfld Flags NetSegment::m_flags
IL_0889: br => Label62
IL_088E: Label61
IL_088E: ldarg.2
IL_088F: dup
IL_0890: ldfld Flags NetSegment::m_flags
IL_0895: ldc.i4 -16777217
IL_089A: and
IL_089B: stfld Flags NetSegment::m_flags
IL_08A0: Label62
IL_08A0: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_08A2: ldc.i4 65536
IL_08A7: and
IL_08A8: brfalse => Label63
IL_08AD: ldarg.2
IL_08AE: dup
IL_08AF: ldfld Flags NetSegment::m_flags
IL_08B4: ldc.i4 256
IL_08B9: or
IL_08BA: stfld Flags NetSegment::m_flags
IL_08BF: br => Label64
IL_08C4: Label63
IL_08C4: ldarg.2
IL_08C5: dup
IL_08C6: ldfld Flags NetSegment::m_flags
IL_08CB: ldc.i4 -257
IL_08D0: and
IL_08D1: stfld Flags NetSegment::m_flags
IL_08D6: Label56
IL_08D6: Label64
IL_08D6: ldarg.0
IL_08D7: ldfld System.Int32 RoadBaseAI::m_noiseAccumulation
IL_08DC: ldloc.s 21 (System.Int32)
IL_08DE: mul
IL_08DF: ldc.i4.s 100
IL_08E1: div
IL_08E2: stloc.s 35 (System.Int32)
IL_08E4: ldloc.s 35 (System.Int32)
IL_08E6: brfalse => Label65
IL_08EB: ldloc.s 11 (UnityEngine.Vector3)
IL_08ED: ldloc.s 12 (UnityEngine.Vector3)
IL_08EF: call static System.Single
UnityEngine.Vector3::Distance(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_08F4: stloc.s 36 (System.Single)
IL_08F6: ldloc.s 36 (System.Single)
IL_08F8: ldarg.0
IL_08F9: ldfld System.Single RoadBaseAI::m_noiseRadius
IL_08FE: div
IL_08FF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single
f)
IL_0904: stloc.s 37 (System.Int32)
IL_0906: ldc.i4.0
IL_0907: stloc.s 38 (System.Int32)
IL_0909: br => Label66
IL_090E: Label67
IL_090E: ldloc.s 11 (UnityEngine.Vector3)
IL_0910: ldloc.s 12 (UnityEngine.Vector3)
IL_0912: ldloc.s 38 (System.Int32)
IL_0914: ldc.i4.1
IL_0915: add
IL_0916: conv.r4
IL_0917: ldloc.s 37 (System.Int32)
IL_0919: ldc.i4.1
IL_091A: add
IL_091B: conv.r4
IL_091C: div
IL_091D: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_0922: stloc.s 39 (UnityEngine.Vector3)
IL_0924: call static ImmaterialResourceManager
ColossalFramework.Singleton`1<ImmaterialResourceManager>::get_instance()
IL_0929: ldc.i4.8
IL_092A: ldloc.s 35 (System.Int32)
IL_092C: ldloc.s 39 (UnityEngine.Vector3)
IL_092E: ldarg.0
IL_092F: ldfld System.Single RoadBaseAI::m_noiseRadius
IL_0934: callvirt System.Int32 ImmaterialResourceManager::AddResource(Resource
resource, System.Int32 rate, UnityEngine.Vector3 position, System.Single radius)
IL_0939: pop
IL_093A: ldloc.s 38 (System.Int32)
IL_093C: ldc.i4.1
IL_093D: add
IL_093E: stloc.s 38 (System.Int32)
IL_0940: Label66
IL_0940: ldloc.s 38 (System.Int32)
IL_0942: ldloc.s 37 (System.Int32)
IL_0944: blt => Label67
IL_0949: Label65
IL_0949: ldarg.2
IL_094A: ldfld System.Byte NetSegment::m_trafficDensity
IL_094F: ldc.i4.s 50
IL_0951: blt => Label68
IL_0956: ldarg.2
IL_0957: ldfld System.Single NetSegment::m_averageLength
IL_095C: ldc.r4 25
IL_0961: bge.un => Label69
IL_0966: ldloc.1
IL_0967: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_096C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0971: ldarg.2
IL_0972: ldfld System.UInt16 NetSegment::m_startNode
IL_0977: ldelema NetNode
IL_097C: ldfld Flags NetNode::m_flags
IL_0981: ldc.i4 10485760
IL_0986: and
IL_0987: ldc.i4 8388608
IL_098C: bne.un => Label70
IL_0991: ldloc.1
IL_0992: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0997: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_099C: ldarg.2
IL_099D: ldfld System.UInt16 NetSegment::m_endNode
IL_09A2: ldelema NetNode
IL_09A7: ldfld Flags NetNode::m_flags
IL_09AC: ldc.i4 10485760
IL_09B1: and
IL_09B2: ldc.i4 8388608
IL_09B7: bne.un => Label71
IL_09BC: call static GuideManager
ColossalFramework.Singleton`1<GuideManager>::get_instance()
IL_09C1: ldfld GuideController SimulationManagerBase`2<GuideManager,
GuideController>::m_properties
IL_09C6: stloc.s 40 (GuideController)
IL_09C8: ldloc.s 40 (GuideController)
IL_09CA: brfalse => Label72
IL_09CF: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_09D4: ldfld NetSegmentInstanceGuide NetManager::m_shortRoadTraffic
IL_09D9: ldloc.s 40 (GuideController)
IL_09DB: ldfld GuideInfo GuideController::m_shortRoadTraffic
IL_09E0: ldarg.1
IL_09E1: ldc.i4.0
IL_09E2: callvirt System.Void NetSegmentInstanceGuide::Activate(GuideInfo
guideInfo, System.UInt16 segmentID, System.Boolean ignoreID)
IL_09E7: Label68
IL_09E7: Label69
IL_09E7: Label70
IL_09E7: Label71
IL_09E7: Label72
IL_09E7: ldarg.2
IL_09E8: ldfld Flags NetSegment::m_flags
IL_09ED: ldc.i4.8
IL_09EE: and
IL_09EF: brfalse => Label73
IL_09F4: call static GuideManager
ColossalFramework.Singleton`1<GuideManager>::get_instance()
IL_09F9: ldfld GuideController SimulationManagerBase`2<GuideManager,
GuideController>::m_properties
IL_09FE: stloc.s 41 (GuideController)
IL_0A00: ldloc.s 41 (GuideController)
IL_0A02: brfalse => Label74
IL_0A07: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0A0C: ldfld NetSegmentInstanceGuide NetManager::m_roadDestroyed
IL_0A11: ldloc.s 41 (GuideController)
IL_0A13: ldfld GuideInfo GuideController::m_roadDestroyed
IL_0A18: ldarg.1
IL_0A19: ldc.i4.0
IL_0A1A: callvirt System.Void NetSegmentInstanceGuide::Activate(GuideInfo
guideInfo, System.UInt16 segmentID, System.Boolean ignoreID)
IL_0A1F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0A24: ldfld ServiceTypeGuide NetManager::m_roadDestroyed2
IL_0A29: ldloc.s 41 (GuideController)
IL_0A2B: ldfld GuideInfo GuideController::m_roadDestroyed2
IL_0A30: ldarg.0
IL_0A31: ldfld NetInfo NetAI::m_info
IL_0A36: ldfld ItemClass NetInfo::m_class
IL_0A3B: ldfld Service ItemClass::m_service
IL_0A40: callvirt System.Void ServiceTypeGuide::Activate(GuideInfo guideInfo,
Service service)
IL_0A45: Label74
IL_0A45: ldloc.0
IL_0A46: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0A4B: ldc.i4.8
IL_0A4C: shr.un
IL_0A4D: ldc.i4.s 15
IL_0A4F: and
IL_0A50: conv.u8
IL_0A51: ldarg.1
IL_0A52: ldc.i4.s 15
IL_0A54: and
IL_0A55: conv.i8
IL_0A56: bne.un => Label75
IL_0A5B: ldarg.2
IL_0A5C: ldfld System.Single NetSegment::m_averageLength
IL_0A61: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_0A66: stloc.s 42 (System.Int32)
IL_0A68: call static StatisticsManager
ColossalFramework.Singleton`1<StatisticsManager>::get_instance()
IL_0A6D: ldc.i4.s 53
IL_0A6F: callvirt StatisticBase StatisticsManager::Acquire(StatisticType type)
IL_0A74: stloc.s 43 (StatisticBase)
IL_0A76: ldloc.s 43 (StatisticBase)
IL_0A78: ldloc.s 42 (System.Int32)
IL_0A7A: callvirt abstract virtual System.Void StatisticBase::Add(System.Int32
delta)
IL_0A7F: Label73
IL_0A7F: Label75
IL_0A7F: ldarg.2
IL_0A80: ldloc.2
IL_0A81: stfld Problem NetSegment::m_problems
IL_0A86: // end original
IL_0A86: Label0
IL_0A86: ret
DONE

### Patch: static System.Void


TrainTrackBaseAI::LevelCrossingSimulationStep(System.UInt16 nodeID, NetNode& data)
### Replacement: static System.Void
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.s => Label1
IL_0014: ldnull
IL_0015: ldarg 0
IL_0019: ldarg 1
IL_001D: call static System.Boolean
TrafficManager.Patch._RoadBaseAI.TrafficLightSimulationStepPatch::Prefix(RoadBaseAI
__instance, System.UInt16 nodeID, NetNode& data)
IL_0022: stloc 20 (System.Boolean)
IL_0026: nop
IL_0027: ldloc 20 (System.Boolean)
IL_002B: brfalse => Label0
IL_0030: // start original
IL_0030: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0035: stloc.0
IL_0036: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_003B: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0040: stloc.1
IL_0041: ldc.i4.0
IL_0042: stloc.2
IL_0043: ldc.i4.0
IL_0044: stloc.3
IL_0045: ldc.i4.0
IL_0046: stloc.s 4 (System.Int32)
IL_0048: br => Label2
IL_004D: Label14
IL_004D: ldarg.1
IL_004E: ldloc.s 4 (System.Int32)
IL_0050: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0055: stloc.s 5 (System.UInt16)
IL_0057: ldloc.s 5 (System.UInt16)
IL_0059: brfalse => Label3
IL_005E: ldloc.0
IL_005F: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0064: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0069: ldloc.s 5 (System.UInt16)
IL_006B: ldelema NetSegment
IL_0070: call NetInfo NetSegment::get_Info()
IL_0075: stloc.s 6 (NetInfo)
IL_0077: ldloc.s 6 (NetInfo)
IL_0079: ldfld ItemClass NetInfo::m_class
IL_007E: ldfld Service ItemClass::m_service
IL_0083: ldc.i4.s 9
IL_0085: beq => Label4
IL_008A: ldloc.s 6 (NetInfo)
IL_008C: ldfld Lane[] NetInfo::m_lanes
IL_0091: brfalse => Label5
IL_0096: ldloc.0
IL_0097: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_009C: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00A1: ldloc.s 5 (System.UInt16)
IL_00A3: ldelema NetSegment
IL_00A8: ldfld System.UInt16 NetSegment::m_startNode
IL_00AD: ldarg.0
IL_00AE: ceq
IL_00B0: stloc.s 7 (System.Boolean)
IL_00B2: ldloc.0
IL_00B3: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_00B8: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00BD: ldloc.s 5 (System.UInt16)
IL_00BF: ldelema NetSegment
IL_00C4: ldfld System.UInt32 NetSegment::m_lanes
IL_00C9: stloc.s 8 (System.UInt32)
IL_00CB: ldc.i4.0
IL_00CC: stloc.s 9 (System.Int32)
IL_00CE: br => Label6
IL_00D3: Label12
IL_00D3: ldloc.s 6 (NetInfo)
IL_00D5: ldfld Lane[] NetInfo::m_lanes
IL_00DA: ldloc.s 9 (System.Int32)
IL_00DC: ldelem.ref
IL_00DD: ldfld LaneType Lane::m_laneType
IL_00E2: ldc.i4.1
IL_00E3: bne.un => Label7
IL_00E8: ldloc.0
IL_00E9: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00EE: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00F3: ldloc.s 8 (System.UInt32)
IL_00F5: conv.u
IL_00F6: ldelema NetLane
IL_00FB: ldloc.s 7 (System.Boolean)
IL_00FD: brfalse => Label8
IL_0102: ldc.r4 0
IL_0107: br => Label9
IL_010C: Label8
IL_010C: ldc.r4 1
IL_0111: Label9
IL_0111: call UnityEngine.Vector3 NetLane::CalculatePosition(System.Single
laneOffset)
IL_0116: stloc.s 10 (UnityEngine.Vector3)
IL_0118: ldloc.s 10 (UnityEngine.Vector3)
IL_011A: call static System.Boolean
TrainTrackBaseAI::CheckOverlap(UnityEngine.Vector3 pos)
IL_011F: brfalse => Label10
IL_0124: ldc.i4.1
IL_0125: stloc.2
IL_0126: Label7
IL_0126: Label10
IL_0126: ldloc.0
IL_0127: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_012C: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0131: ldloc.s 8 (System.UInt32)
IL_0133: conv.u
IL_0134: ldelema NetLane
IL_0139: ldfld System.UInt32 NetLane::m_nextLane
IL_013E: stloc.s 8 (System.UInt32)
IL_0140: ldloc.s 9 (System.Int32)
IL_0142: ldc.i4.1
IL_0143: add
IL_0144: stloc.s 9 (System.Int32)
IL_0146: Label6
IL_0146: ldloc.s 9 (System.Int32)
IL_0148: ldloc.s 6 (NetInfo)
IL_014A: ldfld Lane[] NetInfo::m_lanes
IL_014F: ldlen
IL_0150: conv.i4
IL_0151: bge => Label11
IL_0156: ldloc.s 8 (System.UInt32)
IL_0158: brtrue => Label12
IL_015D: Label5
IL_015D: Label11
IL_015D: ldarg.0
IL_015E: ldloc.0
IL_015F: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0164: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0169: ldloc.s 5 (System.UInt16)
IL_016B: ldelema NetSegment
IL_0170: ldloc.1
IL_0171: ldc.i4 256
IL_0176: sub
IL_0177: ldloca.s 11 (RoadBaseAI+TrafficLightState)
IL_0179: ldloca.s 12 (RoadBaseAI+TrafficLightState)
IL_017B: ldloca.s 13 (System.Boolean)
IL_017D: ldloca.s 14 (System.Boolean)
IL_017F: 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_0184: ldloc.s 13 (System.Boolean)
IL_0186: brfalse => Label13
IL_018B: ldc.i4.1
IL_018C: stloc.2
IL_018D: Label3
IL_018D: Label4
IL_018D: Label13
IL_018D: ldloc.s 4 (System.Int32)
IL_018F: ldc.i4.1
IL_0190: add
IL_0191: stloc.s 4 (System.Int32)
IL_0193: Label2
IL_0193: ldloc.s 4 (System.Int32)
IL_0195: ldc.i4.8
IL_0196: blt => Label14
IL_019B: ldloc.2
IL_019C: stloc.3
IL_019D: ldc.i4.0
IL_019E: stloc.s 15 (System.Int32)
IL_01A0: br => Label15
IL_01A5: Label29
IL_01A5: ldarg.1
IL_01A6: ldloc.s 15 (System.Int32)
IL_01A8: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_01AD: stloc.s 16 (System.UInt16)
IL_01AF: ldloc.s 16 (System.UInt16)
IL_01B1: brfalse => Label16
IL_01B6: ldloc.0
IL_01B7: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01BC: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01C1: ldloc.s 16 (System.UInt16)
IL_01C3: ldelema NetSegment
IL_01C8: call NetInfo NetSegment::get_Info()
IL_01CD: stloc.s 17 (NetInfo)
IL_01CF: ldarg.0
IL_01D0: ldloc.0
IL_01D1: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01D6: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01DB: ldloc.s 16 (System.UInt16)
IL_01DD: ldelema NetSegment
IL_01E2: ldloc.1
IL_01E3: ldc.i4 256
IL_01E8: sub
IL_01E9: ldloca.s 18 (RoadBaseAI+TrafficLightState)
IL_01EB: ldloca.s 19 (RoadBaseAI+TrafficLightState)
IL_01ED: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_01F2: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01F4: ldc.i4.s -2
IL_01F6: and
IL_01F7: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01F9: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_01FB: ldc.i4.s -2
IL_01FD: and
IL_01FE: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0200: ldloc.s 17 (NetInfo)
IL_0202: ldfld ItemClass NetInfo::m_class
IL_0207: ldfld Service ItemClass::m_service
IL_020C: ldc.i4.s 9
IL_020E: bne.un => Label17
IL_0213: ldloc.3
IL_0214: brfalse => Label18
IL_0219: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_021B: ldc.i4.2
IL_021C: and
IL_021D: brtrue => Label19
IL_0222: ldc.i4.3
IL_0223: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0225: Label19
IL_0225: br => Label20
IL_022A: Label18
IL_022A: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_022C: ldc.i4.2
IL_022D: and
IL_022E: brfalse => Label21
IL_0233: ldc.i4.1
IL_0234: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0236: Label20
IL_0236: Label21
IL_0236: ldc.i4.0
IL_0237: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0239: br => Label22
IL_023E: Label17
IL_023E: ldloc.3
IL_023F: brfalse => Label23
IL_0244: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0246: ldc.i4.2
IL_0247: and
IL_0248: brfalse => Label24
IL_024D: ldc.i4.1
IL_024E: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0250: Label24
IL_0250: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0252: ldc.i4.2
IL_0253: and
IL_0254: brtrue => Label25
IL_0259: ldc.i4.3
IL_025A: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_025C: Label25
IL_025C: br => Label26
IL_0261: Label23
IL_0261: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0263: ldc.i4.2
IL_0264: and
IL_0265: brtrue => Label27
IL_026A: ldc.i4.3
IL_026B: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_026D: Label27
IL_026D: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_026F: ldc.i4.2
IL_0270: and
IL_0271: brfalse => Label28
IL_0276: ldc.i4.1
IL_0277: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0279: Label22
IL_0279: Label26
IL_0279: Label28
IL_0279: ldarg.0
IL_027A: ldloc.0
IL_027B: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0280: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0285: ldloc.s 16 (System.UInt16)
IL_0287: ldelema NetSegment
IL_028C: ldloc.1
IL_028D: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_028F: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0291: ldc.i4.0
IL_0292: ldc.i4.0
IL_0293: 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_0298: Label16
IL_0298: ldloc.s 15 (System.Int32)
IL_029A: ldc.i4.1
IL_029B: add
IL_029C: stloc.s 15 (System.Int32)
IL_029E: Label15
IL_029E: ldloc.s 15 (System.Int32)
IL_02A0: ldc.i4.8
IL_02A1: blt => Label29
IL_02A6: // end original
IL_02A6: Label0
IL_02A6: ret
DONE

### Patch: virtual System.Void HumanAI::ArriveAtDestination(System.UInt16


instanceID, CitizenInstance& citizenData, System.Boolean success)
### Replacement: static System.Void 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.s => Label1
IL_0014: ldarg.0
IL_0015: ldarg 1
IL_0019: ldarg 2
IL_001D: ldarg 3
IL_0021: call static System.Void
TrafficManager.Patch._HumanAI.ArriveAtDestinationPatch::Prefix(HumanAI __instance,
System.UInt16 instanceID, CitizenInstance& citizenData, System.Boolean success)
IL_0026: nop
IL_0027: ldloc 7 (System.Boolean)
IL_002B: brfalse => Label0
IL_0030: // start original
IL_0030: ldarg.2
IL_0031: ldfld System.UInt32 CitizenInstance::m_citizen
IL_0036: stloc.0
IL_0037: ldloc.0
IL_0038: brfalse => Label2
IL_003D: call static CitizenManager
ColossalFramework.Singleton`1<CitizenManager>::get_instance()
IL_0042: stloc.1
IL_0043: ldloc.1
IL_0044: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0049: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_004E: ldloc.0
IL_004F: conv.u
IL_0050: ldelema Citizen
IL_0055: ldloc.0
IL_0056: ldc.i4.0
IL_0057: ldc.i4.0
IL_0058: call System.Void Citizen::SetVehicle(System.UInt32 citizenID,
System.UInt16 vehicleID, System.UInt32 unitID)
IL_005D: ldarg.2
IL_005E: ldfld Flags CitizenInstance::m_flags
IL_0063: ldc.i4 134217728
IL_0068: and
IL_0069: brfalse => Label3
IL_006E: ldarg.3
IL_006F: brfalse => Label4
IL_0074: ldarg.2
IL_0075: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_007A: stloc.2
IL_007B: ldloc.2
IL_007C: brfalse => Label5
IL_0081: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0086: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0090: ldloc.2
IL_0091: ldelema NetNode
IL_0096: ldfld System.UInt16 NetNode::m_transportLine
IL_009B: stloc.3
IL_009C: ldloc.3
IL_009D: brfalse => Label6
IL_00A2: call static TransportManager
ColossalFramework.Singleton`1<TransportManager>::get_instance()
IL_00A7: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_00AC: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_00B1: ldloc.3
IL_00B2: ldelema TransportLine
IL_00B7: call TransportInfo TransportLine::get_Info()
IL_00BC: stloc.s 4 (TransportInfo)
IL_00BE: ldloc.s 4 (TransportInfo)
IL_00C0: ldfld VehicleType TransportInfo::m_vehicleType
IL_00C5: brtrue => Label7
IL_00CA: ldarg.1
IL_00CB: ldc.i4.1
IL_00CC: and
IL_00CD: brtrue => Label8
IL_00D2: ldloc.2
IL_00D3: call static System.UInt16 TransportLine::GetNextStop(System.UInt16
stop)
IL_00D8: stloc.2
IL_00D9: br => Label9
IL_00DE: Label8
IL_00DE: ldloc.2
IL_00DF: call static System.UInt16 TransportLine::GetPrevStop(System.UInt16
stop)
IL_00E4: stloc.2
IL_00E5: Label9
IL_00E5: ldloc.2
IL_00E6: brfalse => Label10
IL_00EB: ldarg.2
IL_00EC: dup
IL_00ED: ldfld Flags CitizenInstance::m_flags
IL_00F2: ldc.i4 268435456
IL_00F7: or
IL_00F8: stfld Flags CitizenInstance::m_flags
IL_00FD: ldarg.0
IL_00FE: ldarg.1
IL_00FF: ldarg.2
IL_0100: ldloc.2
IL_0101: ldc.i4.1
IL_0102: callvirt virtual System.Void CitizenAI::SetTarget(System.UInt16
instanceID, CitizenInstance& data, System.UInt16 targetIndex, System.Boolean
targetIsNode)
IL_0107: br => Label18
IL_010C: Label10
IL_010C: br => Label11
IL_0111: Label7
IL_0111: ldarg.2
IL_0112: dup
IL_0113: ldfld Flags CitizenInstance::m_flags
IL_0118: ldc.i4 268435456
IL_011D: or
IL_011E: stfld Flags CitizenInstance::m_flags
IL_0123: ldarg.0
IL_0124: ldarg.1
IL_0125: ldarg.2
IL_0126: ldloc.2
IL_0127: call System.Void HumanAI::WaitTouristVehicle(System.UInt16
instanceID, CitizenInstance& citizenData, System.UInt16 stop)
IL_012C: br => Label19
IL_0131: Label4
IL_0131: Label5
IL_0131: Label6
IL_0131: Label11
IL_0131: br => Label12
IL_0136: Label3
IL_0136: ldarg.3
IL_0137: brfalse => Label13
IL_013C: ldloc.1
IL_013D: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0142: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0147: ldloc.0
IL_0148: conv.u
IL_0149: ldelema Citizen
IL_014E: ldloc.0
IL_014F: ldarg.2
IL_0150: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_0155: call System.Void Citizen::SetLocationByBuilding(System.UInt32
citizenID, System.UInt16 buildingID)
IL_015A: Label13
IL_015A: ldarg.2
IL_015B: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_0160: brfalse => Label14
IL_0165: ldloc.1
IL_0166: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_016B: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0170: ldloc.0
IL_0171: conv.u
IL_0172: ldelema Citizen
IL_0177: call Location Citizen::get_CurrentLocation()
IL_017C: ldc.i4.2
IL_017D: bne.un => Label15
IL_0182: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0187: stloc.s 5 (BuildingManager)
IL_0189: ldloc.s 5 (BuildingManager)
IL_018B: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0190: ldfld Building[] Array16`1<Building>::m_buffer
IL_0195: ldarg.2
IL_0196: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_019B: ldelema Building
IL_01A0: call BuildingInfo Building::get_Info()
IL_01A5: stloc.s 6 (BuildingInfo)
IL_01A7: ldloc.s 6 (BuildingInfo)
IL_01A9: ldfld BuildingAI BuildingInfo::m_buildingAI
IL_01AE: ldarg.2
IL_01AF: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_01B4: ldloc.s 5 (BuildingManager)
IL_01B6: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01BB: ldfld Building[] Array16`1<Building>::m_buffer
IL_01C0: ldarg.2
IL_01C1: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_01C6: ldelema Building
IL_01CB: ldloc.0
IL_01CC: callvirt virtual System.Void BuildingAI::VisitorEnter(System.UInt16
buildingID, Building& data, System.UInt32 citizen)
IL_01D1: Label2
IL_01D1: Label12
IL_01D1: Label14
IL_01D1: Label15
IL_01D1: ldarg.2
IL_01D2: ldfld Flags CitizenInstance::m_flags
IL_01D7: ldc.i4.s 64
IL_01D9: and
IL_01DA: brfalse => Label16
IL_01DF: ldarg.3
IL_01E0: brtrue => Label17
IL_01E5: Label16
IL_01E5: ldarg.0
IL_01E6: ldarg.1
IL_01E7: ldarg.2
IL_01E8: ldc.i4.0
IL_01E9: callvirt virtual System.Void CitizenAI::SetSource(System.UInt16
instanceID, CitizenInstance& data, System.UInt16 sourceBuilding)
IL_01EE: ldarg.0
IL_01EF: ldarg.1
IL_01F0: ldarg.2
IL_01F1: ldc.i4.0
IL_01F2: call System.Void CitizenAI::SetTarget(System.UInt16 instanceID,
CitizenInstance& data, System.UInt16 targetBuilding)
IL_01F7: ldarg.2
IL_01F8: ldarg.1
IL_01F9: call System.Void CitizenInstance::Unspawn(System.UInt16 instanceID)
IL_01FE: // end original
IL_01FE: Label17
IL_01FE: Label18
IL_01FE: Label19
IL_01FE: Label0
IL_01FE: ret
DONE

### Patch: virtual System.Void CommonBuildingAI::SimulationStep(System.UInt16


buildingID, Building& data)
### Replacement: static System.Void
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.s => Label1
IL_0014: ldarg 1
IL_0018: ldarg 2
IL_001C: call static System.Void
TrafficManager.Patch._CommonBuildingAI.SimulationStepPatch::Prefix(System.UInt16
buildingID, Building& data)
IL_0021: nop
IL_0022: ldloc 3 (System.Boolean)
IL_0026: brfalse => Label0
IL_002B: // start original
IL_002B: ldarg.0
IL_002C: ldarg.1
IL_002D: ldarg.2
IL_002E: call virtual System.Void BuildingAI::SimulationStep(System.UInt16
buildingID, Building& data)
IL_0033: ldarg.2
IL_0034: ldfld Flags Building::m_flags
IL_0039: ldc.i4 524288
IL_003E: and
IL_003F: brfalse => Label2
IL_0044: ldarg.1
IL_0045: ldc.i4.8
IL_0046: shl
IL_0047: ldc.i4 49152
IL_004C: div.un
IL_004D: stloc.0
IL_004E: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0053: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0058: ldloc.0
IL_0059: sub
IL_005A: stloc.1
IL_005B: ldarg.2
IL_005C: ldfld Flags Building::m_flags
IL_0061: ldc.i4 4194304
IL_0066: and
IL_0067: brfalse => Label3
IL_006C: ldarg.2
IL_006D: ldloc.1
IL_006E: ldc.i4 256
IL_0073: sub
IL_0074: call Frame Building::GetFrameData(System.UInt32 simulationFrame)
IL_0079: stloc.2
IL_007A: ldloca.s 2 (Building+Frame)
IL_007C: ldfld System.Byte Frame::m_constructState
IL_0081: brtrue => Label4
IL_0086: Label3
IL_0086: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_008B: ldarg.1
IL_008C: callvirt System.Void BuildingManager::ReleaseBuilding(System.UInt16
building)
IL_0091: // end original
IL_0091: Label2
IL_0091: Label4
IL_0091: Label0
IL_0091: ret
DONE

### Patch: System.Void RoadWorldInfoPanel::OnAdjustRoadButton()


### Replacement: static System.Void
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.s => Label1
IL_0014: call static System.Boolean
TrafficManager.Patch._RoadWorldInfoPanel.OnAdjustRoadButtonPatch::Prefix()
IL_0019: stloc 0 (System.Boolean)
IL_001D: nop
IL_001E: ldloc 0 (System.Boolean)
IL_0022: brfalse => Label0
IL_0027: // start original
IL_0027: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_002C: ldc.i4.s 30
IL_002E: ldc.i4.2
IL_002F: callvirt System.Void InfoManager::SetCurrentMode(InfoMode mode,
SubInfoMode subMode)
IL_0034: ldarg.0
IL_0035: call System.Void WorldInfoPanel::Hide()
IL_003A: // end original
IL_003A: Label0
IL_003A: ret
DONE

### Patch: System.Void NetSegment::CalculateSegment(System.UInt16 segmentID)


### Replacement: static System.Void 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<NetManager>::get_instance()
IL_0036: stloc.0
IL_0037: ldloc.0
IL_0038: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0074: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16>
NetManager::m_updateNameVisibility
IL_00CF: ldarg.1
IL_00D0: callvirt System.Boolean
System.Collections.Generic.HashSet`1<System.UInt16>::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::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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<CustomAssetMetaData>::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<CustomAssetMetaData>::GetListingMetaData(System.Int32 index)
IL_0037: stloc.0
IL_0038: ldarg.0
IL_0039: ldloc.0
IL_003A: call System.Void
LoadSavePanelBase`1<CustomAssetMetaData>::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<CustomAssetMetaData>::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<SimulationManager>::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<SimulationManager>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_010B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<VehicleInfo>::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<VehicleInfo>::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<VehicleInfo>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_023B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<BuildingInfo>::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<BuildingInfo>::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<BuildingInfo>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_036B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<BuildingInfo>::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<BuildingInfo>::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<BuildingInfo>::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<BuildingManager>::get_instance()
IL_0482: callvirt virtual System.Void SimulationManagerBase`2<BuildingManager,
BuildingProperties>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_04A5: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<BuildingInfo>::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<CitizenInfo>::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<VehicleInfo>::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<PropInfo>::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<TreeInfo>::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<NetInfo>::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::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
IL_00B7: br => Label37
IL_00BC: Label0
IL_00BC: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00C1: ldc.i4.0
IL_00C2: ldc.i4.0
IL_00C3: ldc.i4.m1
IL_00C4: ldc.r4 300
IL_00C9: ldc.i4.0
IL_00CA: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_00CF: br => Label38
IL_00D4: Label1
IL_00D4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00D9: ldc.i4.0
IL_00DA: ldc.i4.0
IL_00DB: ldc.i4.m1
IL_00DC: ldc.r4 300
IL_00E1: ldc.i4.0
IL_00E2: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_00E7: br => Label39
IL_00EC: Label2
IL_00EC: ldarg.2
IL_00ED: brtrue => Label40
IL_00F2: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00F7: ldc.i4.s 15
IL_00F9: ldc.i4.0
IL_00FA: ldc.i4.0
IL_00FB: ldc.r4 500
IL_0100: ldc.i4.0
IL_0101: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0106: br => Label41
IL_010B: Label40
IL_010B: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0110: ldc.i4.0
IL_0111: ldc.i4.0
IL_0112: ldc.i4.m1
IL_0113: ldc.r4 300
IL_0118: ldc.i4.0
IL_0119: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_011E: Label41
IL_011E: br => Label42
IL_0123: Label3
IL_0123: ldarg.2
IL_0124: ldc.i4.1
IL_0125: bne.un => Label43
IL_012A: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_012F: ldc.i4.s 14
IL_0131: ldc.i4.0
IL_0132: ldc.i4.1
IL_0133: ldc.r4 500
IL_0138: ldc.i4.0
IL_0139: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_013E: br => Label44
IL_0143: Label43
IL_0143: ldarg.2
IL_0144: ldc.i4.3
IL_0145: bne.un => Label45
IL_014A: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_014F: ldc.i4.s 14
IL_0151: ldc.i4.0
IL_0152: ldc.i4.4
IL_0153: ldc.r4 500
IL_0158: ldc.i4.0
IL_0159: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_015E: br => Label46
IL_0163: Label45
IL_0163: ldarg.2
IL_0164: ldc.i4.2
IL_0165: bne.un => Label47
IL_016A: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_016F: ldc.i4.s 14
IL_0171: ldc.i4.0
IL_0172: ldc.i4.3
IL_0173: ldc.r4 500
IL_0178: ldc.i4.0
IL_0179: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_017E: br => Label48
IL_0183: Label47
IL_0183: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0188: ldc.i4.s 14
IL_018A: ldc.i4.0
IL_018B: ldc.i4.0
IL_018C: ldc.r4 500
IL_0191: ldc.i4.0
IL_0192: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0197: Label44
IL_0197: Label46
IL_0197: Label48
IL_0197: br => Label49
IL_019C: Label12
IL_019C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01A1: ldc.i4.0
IL_01A2: ldc.i4.0
IL_01A3: ldc.i4.m1
IL_01A4: ldc.r4 300
IL_01A9: ldc.i4.0
IL_01AA: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01AF: br => Label50
IL_01B4: Label4
IL_01B4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01B9: ldc.i4.0
IL_01BA: ldc.i4.0
IL_01BB: ldc.i4.m1
IL_01BC: ldc.r4 300
IL_01C1: ldc.i4.0
IL_01C2: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01C7: br => Label51
IL_01CC: Label5
IL_01CC: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01D1: ldc.i4.0
IL_01D2: ldc.i4.0
IL_01D3: ldc.i4.m1
IL_01D4: ldc.r4 300
IL_01D9: ldc.i4.0
IL_01DA: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01DF: br => Label52
IL_01E4: Label8
IL_01E4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01E9: ldc.i4.0
IL_01EA: ldc.i4.0
IL_01EB: ldc.i4.m1
IL_01EC: ldc.r4 300
IL_01F1: ldc.i4.0
IL_01F2: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01F7: br => Label53
IL_01FC: Label6
IL_01FC: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0201: ldc.i4.0
IL_0202: ldc.i4.0
IL_0203: ldc.i4.m1
IL_0204: ldc.r4 300
IL_0209: ldc.i4.0
IL_020A: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_020F: br => Label54
IL_0214: Label7
IL_0214: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0219: ldc.i4.0
IL_021A: ldc.i4.0
IL_021B: ldc.i4.m1
IL_021C: ldc.r4 300
IL_0221: ldc.i4.0
IL_0222: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0227: br => Label55
IL_022C: Label9
IL_022C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0231: ldc.i4.0
IL_0232: ldc.i4.0
IL_0233: ldc.i4.m1
IL_0234: ldc.r4 300
IL_0239: ldc.i4.0
IL_023A: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_023F: br => Label56
IL_0244: Label10
IL_0244: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0249: ldc.i4.0
IL_024A: ldc.i4.0
IL_024B: ldc.i4.m1
IL_024C: ldc.r4 300
IL_0251: ldc.i4.0
IL_0252: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0257: br => Label57
IL_025C: Label11
IL_025C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0261: ldc.i4.0
IL_0262: ldc.i4.0
IL_0263: ldc.i4.m1
IL_0264: ldc.r4 300
IL_0269: ldc.i4.0
IL_026A: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_026F: br => Label58
IL_0274: Label14
IL_0274: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0279: ldc.i4.0
IL_027A: ldc.i4.0
IL_027B: ldc.i4.m1
IL_027C: ldc.r4 300
IL_0281: ldc.i4.0
IL_0282: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0287: br => Label59
IL_028C: Label17
IL_028C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0291: ldc.i4.s 18
IL_0293: ldc.i4.0
IL_0294: ldc.i4.0
IL_0295: ldc.r4 500
IL_029A: ldc.i4.0
IL_029B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02A0: br => Label60
IL_02A5: Label19
IL_02A5: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02AA: ldc.i4.0
IL_02AB: ldc.i4.0
IL_02AC: ldc.i4.m1
IL_02AD: ldc.r4 300
IL_02B2: ldc.i4.1
IL_02B3: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02B8: br => Label61
IL_02BD: Label18
IL_02BD: ldarg.2
IL_02BE: ldc.i4.1
IL_02BF: bne.un => Label62
IL_02C4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02C9: ldc.i4.s 16
IL_02CB: ldc.i4.0
IL_02CC: ldc.i4.1
IL_02CD: ldc.r4 500
IL_02D2: ldc.i4.1
IL_02D3: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02D8: br => Label63
IL_02DD: Label62
IL_02DD: ldarg.2
IL_02DE: ldc.i4.2
IL_02DF: bne.un => Label64
IL_02E4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02E9: ldc.i4.s 16
IL_02EB: ldc.i4.0
IL_02EC: ldc.i4.2
IL_02ED: ldc.r4 500
IL_02F2: ldc.i4.1
IL_02F3: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02F8: br => Label65
IL_02FD: Label64
IL_02FD: ldarg.2
IL_02FE: brtrue => Label66
IL_0303: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0308: ldc.i4.s 16
IL_030A: ldc.i4.0
IL_030B: ldc.i4.0
IL_030C: ldc.r4 500
IL_0311: ldc.i4.1
IL_0312: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0317: br => Label67
IL_031C: Label66
IL_031C: ldarg.2
IL_031D: ldc.i4.4
IL_031E: bne.un => Label68
IL_0323: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0328: ldc.i4.s 16
IL_032A: ldc.i4.0
IL_032B: ldc.i4.3
IL_032C: ldc.r4 500
IL_0331: ldc.i4.1
IL_0332: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0337: br => Label69
IL_033C: Label68
IL_033C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0341: ldc.i4.s 16
IL_0343: ldc.i4.0
IL_0344: ldc.i4.2
IL_0345: ldc.r4 500
IL_034A: ldc.i4.1
IL_034B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0350: Label63
IL_0350: Label65
IL_0350: Label67
IL_0350: Label69
IL_0350: br => Label70
IL_0355: Label16
IL_0355: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_035A: ldc.i4.0
IL_035B: ldc.i4.0
IL_035C: ldc.i4.m1
IL_035D: ldc.r4 300
IL_0362: ldc.i4.0
IL_0363: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0368: br => Label71
IL_036D: Label13
IL_036D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0372: ldc.i4.0
IL_0373: ldc.i4.0
IL_0374: ldc.i4.m1
IL_0375: ldc.r4 300
IL_037A: ldc.i4.0
IL_037B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0380: br => Label72
IL_0385: Label15
IL_0385: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_038A: ldc.i4.s 13
IL_038C: ldc.i4.0
IL_038D: ldc.i4.m1
IL_038E: ldc.r4 2000
IL_0393: ldc.i4.0
IL_0394: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0399: br => Label73
IL_039E: Label20
IL_039E: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03A3: ldc.i4.0
IL_03A4: ldc.i4.0
IL_03A5: ldc.i4.m1
IL_03A6: ldc.r4 300
IL_03AB: ldc.i4.0
IL_03AC: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03B1: br => Label74
IL_03B6: Label21
IL_03B6: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03BB: ldc.i4.0
IL_03BC: ldc.i4.0
IL_03BD: ldc.i4.m1
IL_03BE: ldc.r4 300
IL_03C3: ldc.i4.0
IL_03C4: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03C9: br => Label75
IL_03CE: Label22
IL_03CE: ldarg.2
IL_03CF: brtrue => Label76
IL_03D4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03D9: ldc.i4.s 9
IL_03DB: ldc.i4.0
IL_03DC: ldc.i4.1
IL_03DD: ldc.r4 2000
IL_03E2: ldc.i4.0
IL_03E3: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03E8: br => Label77
IL_03ED: Label76
IL_03ED: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03F2: ldc.i4.0
IL_03F3: ldc.i4.0
IL_03F4: ldc.i4.m1
IL_03F5: ldc.r4 300
IL_03FA: ldc.i4.0
IL_03FB: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0400: Label77
IL_0400: br => Label78
IL_0405: Label23
IL_0405: ldarg.2
IL_0406: brtrue => Label79
IL_040B: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0410: ldc.i4.s 9
IL_0412: ldc.i4.0
IL_0413: ldc.i4.3
IL_0414: ldc.r4 2000
IL_0419: ldc.i4.0
IL_041A: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_041F: br => Label80
IL_0424: Label79
IL_0424: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0429: ldc.i4.0
IL_042A: ldc.i4.0
IL_042B: ldc.i4.m1
IL_042C: ldc.r4 300
IL_0431: ldc.i4.0
IL_0432: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0437: Label80
IL_0437: br => Label81
IL_043C: Label24
IL_043C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0441: ldc.i4.s 20
IL_0443: ldc.i4.0
IL_0444: ldc.i4.3
IL_0445: ldc.r4 500
IL_044A: ldc.i4.1
IL_044B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0450: br => Label82
IL_0455: Label25
IL_0455: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_045A: ldc.i4.0
IL_045B: ldc.i4.0
IL_045C: ldc.i4.m1
IL_045D: ldc.r4 300
IL_0462: ldc.i4.0
IL_0463: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0468: br => Label83
IL_046D: Label26
IL_046D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0472: ldc.i4.s 20
IL_0474: ldc.i4.0
IL_0475: ldc.i4.1
IL_0476: ldc.r4 2000
IL_047B: ldc.i4.0
IL_047C: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0481: br => Label84
IL_0486: Label27
IL_0486: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_048B: ldc.i4.0
IL_048C: ldc.i4.0
IL_048D: ldc.i4.m1
IL_048E: ldc.r4 300
IL_0493: ldc.i4.0
IL_0494: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0499: br => Label85
IL_049E: Label28
IL_049E: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04A3: ldc.i4.0
IL_04A4: ldc.i4.0
IL_04A5: ldc.i4.m1
IL_04A6: ldc.r4 300
IL_04AB: ldc.i4.0
IL_04AC: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04B1: br => Label86
IL_04B6: Label29
IL_04B6: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04BB: ldc.i4.0
IL_04BC: ldc.i4.0
IL_04BD: ldc.i4.m1
IL_04BE: ldc.r4 300
IL_04C3: ldc.i4.0
IL_04C4: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04C9: br => Label87
IL_04CE: Label30
IL_04CE: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04D3: ldc.i4.0
IL_04D4: ldc.i4.0
IL_04D5: ldc.i4.m1
IL_04D6: ldc.r4 300
IL_04DB: ldc.i4.0
IL_04DC: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04E1: br => Label88
IL_04E6: Label31
IL_04E6: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04EB: ldc.i4.0
IL_04EC: ldc.i4.0
IL_04ED: ldc.i4.m1
IL_04EE: ldc.r4 300
IL_04F3: ldc.i4.0
IL_04F4: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04F9: br => Label89
IL_04FE: Label32
IL_04FE: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0503: ldc.i4.s 12
IL_0505: ldc.i4.s 17
IL_0507: ldc.i4.1
IL_0508: ldc.r4 2000
IL_050D: ldc.i4.0
IL_050E: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0513: br => Label90
IL_0518: Label33
IL_0518: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_051D: ldc.i4.0
IL_051E: ldc.i4.0
IL_051F: ldc.i4.m1
IL_0520: ldc.r4 300
IL_0525: ldc.i4.0
IL_0526: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_052B: br => Label91
IL_0530: Label34
IL_0530: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0535: ldc.i4.s 19
IL_0537: ldc.i4.s 28
IL_0539: ldc.i4.1
IL_053A: ldc.r4 500
IL_053F: ldc.i4.0
IL_0540: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0545: br => Label92
IL_054A: Label35
IL_054A: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_054F: ldc.i4.0
IL_0550: ldc.i4.0
IL_0551: ldc.i4.m1
IL_0552: ldc.r4 300
IL_0557: ldc.i4.0
IL_0558: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_055D: br => Label93
IL_0562: Label36
IL_0562: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0567: ldc.i4.0
IL_0568: ldc.i4.0
IL_0569: ldc.i4.m1
IL_056A: ldc.r4 300
IL_056F: ldc.i4.0
IL_0570: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0575: br => Label94
IL_057A: Label37
IL_057A: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_057F: ldc.i4.0
IL_0580: ldc.i4.0
IL_0581: ldc.i4.m1
IL_0582: ldc.r4 300
IL_0587: ldc.i4.0
IL_0588: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_058D: br => Label95
IL_0592: // end original
IL_0592: Label38
IL_0592: Label39
IL_0592: Label42
IL_0592: Label49
IL_0592: Label50
IL_0592: Label51
IL_0592: Label52
IL_0592: Label53
IL_0592: Label54
IL_0592: Label55
IL_0592: Label56
IL_0592: Label57
IL_0592: Label58
IL_0592: Label59
IL_0592: Label60
IL_0592: Label61
IL_0592: Label70
IL_0592: Label71
IL_0592: Label72
IL_0592: Label73
IL_0592: Label74
IL_0592: Label75
IL_0592: Label78
IL_0592: Label81
IL_0592: Label82
IL_0592: Label83
IL_0592: Label84
IL_0592: Label85
IL_0592: Label86
IL_0592: Label87
IL_0592: Label88
IL_0592: Label89
IL_0592: Label90
IL_0592: Label91
IL_0592: Label92
IL_0592: Label93
IL_0592: Label94
IL_0592: Label95
IL_0592: ret
DONE

### Patch: virtual System.Void DefaultTool::OnToolGUI(UnityEngine.Event e)


### Replacement: static System.Void 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<SimulationManager>::get_instance()
IL_0046: ldarg.0
IL_0047: ldftn System.Void DefaultTool::<OnToolGUI>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<InstanceManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<BuildingManager>::get_instance()
IL_017E: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0183: ldfld Building[] Array16`1<Building>::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<SimulationManager>::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<SimulationManager>::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::<OnToolGUI>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<SimulationManager>::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::<OnToolGUI>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<LogChannel>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<BuildingManager>::get_instance()
IL_04D2: stloc.s 13 (BuildingManager)
IL_04D4: ldloc.s 13 (BuildingManager)
IL_04D6: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_04DB: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_04FA: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0555: ldfld Building[] Array16`1<Building>::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<VehicleManager>::get_instance()
IL_0590: stloc.s 16 (VehicleManager)
IL_0592: ldloc.s 16 (VehicleManager)
IL_0594: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0599: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_05B8: ldfld Vehicle[] Array16`1<Vehicle>::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})"
IL_05DD: ldc.i4.2
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: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_0601: stloc.s 12 (System.String)
IL_0603: ldloc.s 17 (VehicleInfo)
IL_0605: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_060A: ldloc.s 8 (System.UInt16)
IL_060C: ldloc.s 16 (VehicleManager)
IL_060E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0613: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0618: ldloc.s 8 (System.UInt16)
IL_061A: ldelema Vehicle
IL_061F: callvirt virtual System.String VehicleAI::GetDebugString(System.UInt16
vehicleID, Vehicle& data)
IL_0624: stloc.s 18 (System.String)
IL_0626: ldloc.s 18 (System.String)
IL_0628: brfalse => Label68
IL_062D: ldloc.s 12 (System.String)
IL_062F: ldstr "\n"
IL_0634: ldloc.s 18 (System.String)
IL_0636: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_063B: stloc.s 12 (System.String)
IL_063D: Label66
IL_063D: Label67
IL_063D: Label68
IL_063D: br => Label69
IL_0642: Label65
IL_0642: ldloc.s 9 (System.UInt16)
IL_0644: brfalse => Label70
IL_0649: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_064E: stloc.s 19 (VehicleManager)
IL_0650: ldloc.s 19 (VehicleManager)
IL_0652: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_0657: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_065C: ldloc.s 9 (System.UInt16)
IL_065E: ldelema VehicleParked
IL_0663: ldfld System.UInt16 VehicleParked::m_flags
IL_0668: ldc.i4.1
IL_0669: and
IL_066A: brfalse => Label71
IL_066F: ldloc.s 19 (VehicleManager)
IL_0671: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_0676: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_067B: ldloc.s 9 (System.UInt16)
IL_067D: ldelema VehicleParked
IL_0682: call VehicleInfo VehicleParked::get_Info()
IL_0687: stloc.s 20 (VehicleInfo)
IL_0689: ldloc.s 20 (VehicleInfo)
IL_068B: ldnull
IL_068C: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0691: brfalse => Label72
IL_0696: ldstr "{0} ({1})"
IL_069B: ldc.i4.2
IL_069C: newarr System.Object
IL_06A1: dup
IL_06A2: ldc.i4.0
IL_06A3: ldloc.s 20 (VehicleInfo)
IL_06A5: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_06AA: callvirt System.String UnityEngine.Object::get_name()
IL_06AF: stelem.ref
IL_06B0: dup
IL_06B1: ldc.i4.1
IL_06B2: ldloc.s 9 (System.UInt16)
IL_06B4: box System.UInt16
IL_06B9: stelem.ref
IL_06BA: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_06BF: stloc.s 12 (System.String)
IL_06C1: ldloc.s 20 (VehicleInfo)
IL_06C3: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_06C8: ldloc.s 9 (System.UInt16)
IL_06CA: ldloc.s 19 (VehicleManager)
IL_06CC: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_06D1: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_06D6: ldloc.s 9 (System.UInt16)
IL_06D8: ldelema VehicleParked
IL_06DD: callvirt virtual System.String VehicleAI::GetDebugString(System.UInt16
parkedVehicleID, VehicleParked& data)
IL_06E2: stloc.s 21 (System.String)
IL_06E4: ldloc.s 21 (System.String)
IL_06E6: brfalse => Label73
IL_06EB: ldloc.s 12 (System.String)
IL_06ED: ldstr "\n"
IL_06F2: ldloc.s 21 (System.String)
IL_06F4: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_06F9: stloc.s 12 (System.String)
IL_06FB: Label71
IL_06FB: Label72
IL_06FB: Label73
IL_06FB: br => Label74
IL_0700: Label70
IL_0700: ldloc.s 10 (System.UInt16)
IL_0702: brfalse => Label75
IL_0707: call static CitizenManager
ColossalFramework.Singleton`1<CitizenManager>::get_instance()
IL_070C: stloc.s 22 (CitizenManager)
IL_070E: ldloc.s 22 (CitizenManager)
IL_0710: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0715: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_071A: ldloc.s 10 (System.UInt16)
IL_071C: ldelema CitizenInstance
IL_0721: ldfld Flags CitizenInstance::m_flags
IL_0726: ldc.i4.1
IL_0727: and
IL_0728: brfalse => Label76
IL_072D: ldloc.s 22 (CitizenManager)
IL_072F: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0734: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0739: ldloc.s 10 (System.UInt16)
IL_073B: ldelema CitizenInstance
IL_0740: call CitizenInfo CitizenInstance::get_Info()
IL_0745: stloc.s 23 (CitizenInfo)
IL_0747: ldloc.s 23 (CitizenInfo)
IL_0749: ldnull
IL_074A: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_074F: brfalse => Label77
IL_0754: ldstr "{0} ({1})"
IL_0759: ldc.i4.2
IL_075A: newarr System.Object
IL_075F: dup
IL_0760: ldc.i4.0
IL_0761: ldloc.s 23 (CitizenInfo)
IL_0763: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_0768: callvirt System.String UnityEngine.Object::get_name()
IL_076D: stelem.ref
IL_076E: dup
IL_076F: ldc.i4.1
IL_0770: ldloc.s 10 (System.UInt16)
IL_0772: box System.UInt16
IL_0777: stelem.ref
IL_0778: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_077D: stloc.s 12 (System.String)
IL_077F: ldloc.s 23 (CitizenInfo)
IL_0781: ldfld CitizenAI CitizenInfo::m_citizenAI
IL_0786: ldloc.s 10 (System.UInt16)
IL_0788: ldloc.s 22 (CitizenManager)
IL_078A: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_078F: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0794: ldloc.s 10 (System.UInt16)
IL_0796: ldelema CitizenInstance
IL_079B: callvirt virtual System.String CitizenAI::GetDebugString(System.UInt16
instanceID, CitizenInstance& data)
IL_07A0: stloc.s 24 (System.String)
IL_07A2: ldloc.s 24 (System.String)
IL_07A4: brfalse => Label78
IL_07A9: ldloc.s 12 (System.String)
IL_07AB: ldstr "\n"
IL_07B0: ldloc.s 24 (System.String)
IL_07B2: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_07B7: stloc.s 12 (System.String)
IL_07B9: Label76
IL_07B9: Label77
IL_07B9: Label78
IL_07B9: br => Label79
IL_07BE: Label75
IL_07BE: ldloc.s 11 (System.UInt16)
IL_07C0: brfalse => Label80
IL_07C5: call static TransportManager
ColossalFramework.Singleton`1<TransportManager>::get_instance()
IL_07CA: stloc.s 25 (TransportManager)
IL_07CC: ldloc.s 25 (TransportManager)
IL_07CE: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_07D3: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_07D8: ldloc.s 11 (System.UInt16)
IL_07DA: ldelema TransportLine
IL_07DF: ldfld Flags TransportLine::m_flags
IL_07E4: ldc.i4.1
IL_07E5: and
IL_07E6: brfalse => Label81
IL_07EB: ldloc.s 25 (TransportManager)
IL_07ED: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_07F2: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_07F7: ldloc.s 11 (System.UInt16)
IL_07F9: ldelema TransportLine
IL_07FE: call TransportInfo TransportLine::get_Info()
IL_0803: stloc.s 26 (TransportInfo)
IL_0805: ldloc.s 26 (TransportInfo)
IL_0807: ldnull
IL_0808: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_080D: brfalse => Label82
IL_0812: ldstr "{0} ({1})"
IL_0817: ldc.i4.2
IL_0818: newarr System.Object
IL_081D: dup
IL_081E: ldc.i4.0
IL_081F: ldloc.s 26 (TransportInfo)
IL_0821: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_0826: callvirt System.String UnityEngine.Object::get_name()
IL_082B: stelem.ref
IL_082C: dup
IL_082D: ldc.i4.1
IL_082E: ldloc.s 11 (System.UInt16)
IL_0830: box System.UInt16
IL_0835: stelem.ref
IL_0836: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_083B: stloc.s 12 (System.String)
IL_083D: ldloc.s 25 (TransportManager)
IL_083F: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_0844: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_0849: ldloc.s 11 (System.UInt16)
IL_084B: ldelema TransportLine
IL_0850: ldloc.s 11 (System.UInt16)
IL_0852: call System.String TransportLine::GetDebugString(System.UInt16
lineID)
IL_0857: stloc.s 27 (System.String)
IL_0859: ldloc.s 27 (System.String)
IL_085B: brfalse => Label83
IL_0860: ldloc.s 12 (System.String)
IL_0862: ldstr "\n"
IL_0867: ldloc.s 27 (System.String)
IL_0869: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_086E: stloc.s 12 (System.String)
IL_0870: Label64
IL_0870: Label69
IL_0870: Label74
IL_0870: Label79
IL_0870: Label80
IL_0870: Label81
IL_0870: Label82
IL_0870: Label83
IL_0870: ldloc.s 12 (System.String)
IL_0872: brfalse => Label84
IL_0877: ldloc.s 6 (InstanceID)
IL_0879: ldloca.s 28 (UnityEngine.Vector3)
IL_087B: ldloca.s 29 (UnityEngine.Quaternion)
IL_087D: ldloca.s 30 (UnityEngine.Vector3)
IL_087F: call static System.Boolean InstanceManager::GetPosition(InstanceID
id, UnityEngine.Vector3& position, UnityEngine.Quaternion& rotation,
UnityEngine.Vector3& size)
IL_0884: brtrue => Label85
IL_0889: ldarg.0
IL_088A: ldfld UnityEngine.Vector3 DefaultTool::m_mousePosition
IL_088F: stloc.s 28 (UnityEngine.Vector3)
IL_0891: Label85
IL_0891: call static UnityEngine.Camera UnityEngine.Camera::get_main()
IL_0896: ldloc.s 28 (UnityEngine.Vector3)
IL_0898: callvirt UnityEngine.Vector3
UnityEngine.Camera::WorldToScreenPoint(UnityEngine.Vector3 position)
IL_089D: stloc.s 31 (UnityEngine.Vector3)
IL_089F: ldloca.s 31 (UnityEngine.Vector3)
IL_08A1: call static System.Int32 UnityEngine.Screen::get_height()
IL_08A6: conv.r4
IL_08A7: ldloca.s 31 (UnityEngine.Vector3)
IL_08A9: ldfld System.Single UnityEngine.Vector3::y
IL_08AE: sub
IL_08AF: stfld System.Single UnityEngine.Vector3::y
IL_08B4: call static UnityEngine.Color UnityEngine.GUI::get_color()
IL_08B9: stloc.s 32 (UnityEngine.Color)
IL_08BB: call static UnityEngine.Color UnityEngine.Color::get_cyan()
IL_08C0: call static System.Void UnityEngine.GUI::set_color(UnityEngine.Color
value)
IL_08C5: ldloca.s 31 (UnityEngine.Vector3)
IL_08C7: ldfld System.Single UnityEngine.Vector3::x
IL_08CC: ldloca.s 31 (UnityEngine.Vector3)
IL_08CE: ldfld System.Single UnityEngine.Vector3::y
IL_08D3: ldc.r4 500
IL_08D8: ldc.r4 500
IL_08DD: newobj System.Void UnityEngine.Rect::.ctor(System.Single x,
System.Single y, System.Single width, System.Single height)
IL_08E2: ldloc.s 12 (System.String)
IL_08E4: call static UnityEngine.Color UnityEngine.Color::get_black()
IL_08E9: call static UnityEngine.Color UnityEngine.Color::get_cyan()
IL_08EE: call static UnityEngine.GUISkin UnityEngine.GUI::get_skin()
IL_08F3: callvirt UnityEngine.GUIStyle UnityEngine.GUISkin::get_label()
IL_08F8: ldc.r4 2
IL_08FD: 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_0902: ldloc.s 32 (UnityEngine.Color)
IL_0904: call static System.Void UnityEngine.GUI::set_color(UnityEngine.Color
value)
IL_0909: // end original
IL_0909: Label57
IL_0909: Label58
IL_0909: Label59
IL_0909: Label84
IL_0909: ldarg 1
IL_090D: call static System.Void
TrafficManager.Patch._DefaultTool.OnToolGUIPatch::Postfix(UnityEngine.Event e)
IL_0912: ret
DONE

### Patch: virtual System.Void DefaultTool::RenderOverlay(CameraInfo cameraInfo)


### Replacement: static System.Void 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<PropManager>::get_instance()
IL_0079: ldfld Array16`1<PropInstance> PropManager::m_props
IL_007E: ldfld PropInstance[] Array16`1<PropInstance>::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<TreeManager>::get_instance()
IL_012C: ldfld Array32`1<TreeInstance> TreeManager::m_trees
IL_0131: ldfld TreeInstance[] Array32`1<TreeInstance>::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<BuildingManager>::get_instance()
IL_01E6: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01EB: ldfld Building[] Array16`1<Building>::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<DisasterManager>::get_instance()
IL_03A3: ldfld FastList`1<DisasterData> DisasterManager::m_disasters
IL_03A8: ldfld DisasterData[] FastList`1<DisasterData>::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<NetManager>::get_instance()
IL_04A6: stloc.s 24 (NetManager)
IL_04A8: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_04AD: stloc.s 25 (BuildingManager)
IL_04AF: ldloc.s 25 (BuildingManager)
IL_04B1: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_04B6: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_04F6: ldfld Building[] Array16`1<Building>::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<NetNode> NetManager::m_nodes
IL_0520: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_0543: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0562: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0582: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_05AA: ldfld NetNode[] Array16`1<NetNode>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_05F6: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0618: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0637: ldfld Building[] Array16`1<Building>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_0693: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06AD: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06C7: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06F2: ldfld Building[] Array16`1<Building>::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<NetNode> NetManager::m_nodes
IL_071C: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_073F: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_075E: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_077F: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_07A9: ldfld NetNode[] Array16`1<NetNode>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_07F5: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0817: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0831: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_084B: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0865: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0890: ldfld Building[] Array16`1<Building>::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<LogChannel>::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<NetManager>::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<RenderManager>::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<NetSegment> NetManager::m_segments
IL_09A8: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_09CC: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_09D1: ldloc.s 45 (NetManager)
IL_09D3: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_09D8: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_0A01: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A06: ldloc.s 45 (NetManager)
IL_0A08: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0A0D: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0A73: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0A92: ldfld NetSegment[] Array16`1<NetSegment>::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<ToolManager>::get_instance()
IL_0C1C: ldflda DrawCallData SimulationManagerBase`2<ToolManager,
ToolController>::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<RenderManager>::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<NetSegment> NetManager::m_segments
IL_0C75: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0C96: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0CF4: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0D18: ldfld NetSegment[] Array16`1<NetSegment>::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<TreeManager>::get_instance()
IL_0D40: stloc.s 67 (TreeManager)
IL_0D42: ldloc.s 67 (TreeManager)
IL_0D44: ldfld Array32`1<TreeInstance> TreeManager::m_trees
IL_0D49: ldfld TreeInstance[] Array32`1<TreeInstance>::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<TreeInstance> TreeManager::m_trees
IL_0D64: ldfld TreeInstance[] Array32`1<TreeInstance>::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<PropManager>::get_instance()
IL_0E07: stloc.s 75 (PropManager)
IL_0E09: ldloc.s 75 (PropManager)
IL_0E0B: ldfld Array16`1<PropInstance> PropManager::m_props
IL_0E10: ldfld PropInstance[] Array16`1<PropInstance>::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<PropInstance> PropManager::m_props
IL_0E2A: ldfld PropInstance[] Array16`1<PropInstance>::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<PropInstance> PropManager::m_props
IL_0E44: ldfld PropInstance[] Array16`1<PropInstance>::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<VehicleManager>::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<Vehicle> VehicleManager::m_vehicles
IL_0F0E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0F38: ldfld Vehicle[] Array16`1<Vehicle>::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<VehicleManager>::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<VehicleParked> VehicleManager::m_parkedVehicles
IL_0F87: ldfld VehicleParked[] Array16`1<VehicleParked>::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<VehicleParked> VehicleManager::m_parkedVehicles
IL_0FB1: ldfld VehicleParked[] Array16`1<VehicleParked>::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<CitizenManager>::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<CitizenInstance> CitizenManager::m_instances
IL_1000: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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<CitizenInstance> CitizenManager::m_instances
IL_102A: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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<InfoManager>::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<DistrictManager>::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<InfoManager>::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<DistrictManager>::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<DisasterManager>::get_instance()
IL_1129: stloc.s 104 (DisasterManager)
IL_112B: ldloc.s 104 (DisasterManager)
IL_112D: ldfld FastList`1<DisasterData> DisasterManager::m_disasters
IL_1132: ldfld DisasterData[] FastList`1<DisasterData>::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<DisasterData> DisasterManager::m_disasters
IL_114C: ldfld DisasterData[] FastList`1<DisasterData>::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<DisasterData> DisasterManager::m_disasters
IL_1166: ldfld DisasterData[] FastList`1<DisasterData>::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::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<Citizen> CitizenManager::m_citizens
IL_0008: ldfld Citizen[] Array32`1<Citizen>::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::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<CitizenInstance> CitizenManager::m_instances
IL_0008: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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(CitizenMa
nager __instance, System.UInt16 instance)
IL_0022: ret
DONE

### Patch: static System.Void BuildingDecoration::LoadPaths(BuildingInfo info,


System.UInt16 buildingID, Building& data, System.Single elevation)
### Replacement: static System.Void
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<NetManager>::get_instance()
IL_0010: stloc.0
IL_0011: ldloc.0
IL_0012: ldfld FastList`1<System.UInt16> NetManager::m_tempNodeBuffer
IL_0017: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_001C: ldloc.0
IL_001D: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_0022: callvirt System.Void FastList`1<System.UInt16>::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<System.UInt16> 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<System.UInt16> 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<System.UInt16> 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<System.UInt16>::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<NodePosition> 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<NodePosition> 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<System.UInt16> NetManager::m_tempNodeBuffer
IL_022C: ldloc.s 9 (System.UInt16)
IL_022E: callvirt System.Void FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_0268: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_02AC: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16> 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<System.UInt16> 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<NodePosition> 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<NodePosition> 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<System.UInt16> NetManager::m_tempNodeBuffer
IL_056B: ldloc.s 20 (System.UInt16)
IL_056D: callvirt System.Void FastList`1<System.UInt16>::Add(System.UInt16 item)
IL_0572: ldloc.0
IL_0573: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_0578: ldloc.s 21 (System.UInt16)
IL_057A: callvirt System.Void FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_05B6: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_05FC: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_0646: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_067B: ldfld NetSegment[] Array16`1<NetSegment>::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<System.UInt16> NetManager::m_tempNodeBuffer
IL_06D4: ldfld System.UInt16[] FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_06E4: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_071D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_073E: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_075D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0788: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16> NetManager::m_tempNodeBuffer
IL_07C2: ldfld System.Int32 FastList`1<System.UInt16>::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<System.UInt16> NetManager::m_tempSegmentBuffer
IL_07DA: ldfld System.UInt16[] FastList`1<System.UInt16>::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<NetSegment> NetManager::m_segments
IL_07EA: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_080F: ldfld NetSegment[] Array16`1<NetSegment>::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<ToolManager>::get_instance()
IL_083B: ldfld ToolController SimulationManagerBase`2<ToolManager,
ToolController>::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<NetSegment> NetManager::m_segments
IL_0852: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0879: ldfld NetSegment[] Array16`1<NetSegment>::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<System.UInt16> NetManager::m_tempSegmentBuffer
IL_08A9: ldfld System.Int32 FastList`1<System.UInt16>::m_size
IL_08AE: blt => Label60
IL_08B3: ldarg.0
IL_08B4: call static System.Void
TrafficManager.Patches._BuildingDecoration.LoadPathsPatch::AfterIntersectionBuilt(B
uildingInfo info)
IL_08B9: ldloc.0
IL_08BA: ldfld FastList`1<System.UInt16> NetManager::m_tempNodeBuffer
IL_08BF: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_08C4: ldloc.0
IL_08C5: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_08CA: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_08CF: // end original
IL_08CF: Label0
IL_08CF: ret
DONE

### Harmony id=de.viathinksoft.tmpe, version=2.0.0.9, location=E:\Games\data-


0000000015990080
### Started from System.Void TrafficManager.Patcher::Uninstall(), location E:\
Games\data-0000000016967040
### At 2022-11-05 01.19.07
### 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::CreateVehicle_Patch1(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.s => Label1
IL_001D: ldarg.0
IL_001E: ldarg 1
IL_0022: ldarg 3
IL_0026: call static System.Boolean
TrafficManager.Patch._VehicleManager.CreateVehiclePatch::Prefix(VehicleManager
__instance, System.UInt16& vehicle, VehicleInfo info)
IL_002B: stloc 3 (System.Boolean)
IL_002F: nop
IL_0030: ldloc 3 (System.Boolean)
IL_0034: brfalse => Label0
IL_0039: // start original
IL_0039: ldarg.0
IL_003A: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_003F: ldloca.s 0 (System.UInt16)
IL_0041: ldarg.2
IL_0042: callvirt System.Boolean Array16`1<Vehicle>::CreateItem(System.UInt16&
item, ColossalFramework.Math.Randomizer& r)
IL_0047: brfalse => Label2
IL_004C: ldarg.1
IL_004D: ldloc.0
IL_004E: stind.i2
IL_004F: ldloca.s 1 (Vehicle+Frame)
IL_0051: ldarg.s 4
IL_0053: call static UnityEngine.Quaternion
UnityEngine.Quaternion::get_identity()
IL_0058: call System.Void Frame::.ctor(UnityEngine.Vector3 position,
UnityEngine.Quaternion rotation)
IL_005D: ldarg.0
IL_005E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0063: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0068: ldarg.1
IL_0069: ldind.u2
IL_006A: ldelema Vehicle
IL_006F: ldc.i4.1
IL_0070: stfld Flags Vehicle::m_flags
IL_0075: ldarg.0
IL_0076: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_007B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0080: ldarg.1
IL_0081: ldind.u2
IL_0082: ldelema Vehicle
IL_0087: ldc.i4.0
IL_0088: stfld Flags2 Vehicle::m_flags2
IL_008D: ldarg.s 6
IL_008F: brfalse => Label3
IL_0094: ldarg.0
IL_0095: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_009A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_009F: ldarg.1
IL_00A0: ldind.u2
IL_00A1: ldelema Vehicle
IL_00A6: dup
IL_00A7: ldfld Flags Vehicle::m_flags
IL_00AC: ldc.i4.s 32
IL_00AE: or
IL_00AF: stfld Flags Vehicle::m_flags
IL_00B4: Label3
IL_00B4: ldarg.s 7
IL_00B6: brfalse => Label4
IL_00BB: ldarg.0
IL_00BC: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00C1: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00C6: ldarg.1
IL_00C7: ldind.u2
IL_00C8: ldelema Vehicle
IL_00CD: dup
IL_00CE: ldfld Flags Vehicle::m_flags
IL_00D3: ldc.i4.s 16
IL_00D5: or
IL_00D6: stfld Flags Vehicle::m_flags
IL_00DB: Label4
IL_00DB: ldarg.0
IL_00DC: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00E1: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00E6: ldarg.1
IL_00E7: ldind.u2
IL_00E8: ldelema Vehicle
IL_00ED: ldarg.3
IL_00EE: call System.Void Vehicle::set_Info(VehicleInfo value)
IL_00F3: ldarg.0
IL_00F4: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00F9: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00FE: ldarg.1
IL_00FF: ldind.u2
IL_0100: ldelema Vehicle
IL_0105: ldloc.1
IL_0106: stfld Frame Vehicle::m_frame0
IL_010B: ldarg.0
IL_010C: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0111: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0116: ldarg.1
IL_0117: ldind.u2
IL_0118: ldelema Vehicle
IL_011D: ldloc.1
IL_011E: stfld Frame Vehicle::m_frame1
IL_0123: ldarg.0
IL_0124: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0129: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_012E: ldarg.1
IL_012F: ldind.u2
IL_0130: ldelema Vehicle
IL_0135: ldloc.1
IL_0136: stfld Frame Vehicle::m_frame2
IL_013B: ldarg.0
IL_013C: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0141: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0146: ldarg.1
IL_0147: ldind.u2
IL_0148: ldelema Vehicle
IL_014D: ldloc.1
IL_014E: stfld Frame Vehicle::m_frame3
IL_0153: ldarg.0
IL_0154: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0159: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_015E: ldarg.1
IL_015F: ldind.u2
IL_0160: ldelema Vehicle
IL_0165: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_016A: stfld UnityEngine.Vector4 Vehicle::m_targetPos0
IL_016F: ldarg.0
IL_0170: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0175: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_017A: ldarg.1
IL_017B: ldind.u2
IL_017C: ldelema Vehicle
IL_0181: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_0186: stfld UnityEngine.Vector4 Vehicle::m_targetPos1
IL_018B: ldarg.0
IL_018C: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0191: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0196: ldarg.1
IL_0197: ldind.u2
IL_0198: ldelema Vehicle
IL_019D: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_01A2: stfld UnityEngine.Vector4 Vehicle::m_targetPos2
IL_01A7: ldarg.0
IL_01A8: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01AD: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01B2: ldarg.1
IL_01B3: ldind.u2
IL_01B4: ldelema Vehicle
IL_01B9: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_01BE: stfld UnityEngine.Vector4 Vehicle::m_targetPos3
IL_01C3: ldarg.0
IL_01C4: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01C9: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01CE: ldarg.1
IL_01CF: ldind.u2
IL_01D0: ldelema Vehicle
IL_01D5: ldc.i4.0
IL_01D6: stfld System.UInt16 Vehicle::m_sourceBuilding
IL_01DB: ldarg.0
IL_01DC: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01E1: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01E6: ldarg.1
IL_01E7: ldind.u2
IL_01E8: ldelema Vehicle
IL_01ED: ldc.i4.0
IL_01EE: stfld System.UInt16 Vehicle::m_targetBuilding
IL_01F3: ldarg.0
IL_01F4: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01F9: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01FE: ldarg.1
IL_01FF: ldind.u2
IL_0200: ldelema Vehicle
IL_0205: ldarg.s 5
IL_0207: conv.u1
IL_0208: stfld System.Byte Vehicle::m_transferType
IL_020D: ldarg.0
IL_020E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0213: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0218: ldarg.1
IL_0219: ldind.u2
IL_021A: ldelema Vehicle
IL_021F: ldc.i4.0
IL_0220: stfld System.UInt16 Vehicle::m_transferSize
IL_0225: ldarg.0
IL_0226: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_022B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0230: ldarg.1
IL_0231: ldind.u2
IL_0232: ldelema Vehicle
IL_0237: ldc.i4.0
IL_0238: stfld System.Byte Vehicle::m_waitCounter
IL_023D: ldarg.0
IL_023E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0243: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0248: ldarg.1
IL_0249: ldind.u2
IL_024A: ldelema Vehicle
IL_024F: ldc.i4.0
IL_0250: stfld System.Byte Vehicle::m_blockCounter
IL_0255: ldarg.0
IL_0256: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_025B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0260: ldarg.1
IL_0261: ldind.u2
IL_0262: ldelema Vehicle
IL_0267: ldc.i4.0
IL_0268: stfld System.UInt16 Vehicle::m_nextGridVehicle
IL_026D: ldarg.0
IL_026E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0273: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0278: ldarg.1
IL_0279: ldind.u2
IL_027A: ldelema Vehicle
IL_027F: ldc.i4.0
IL_0280: stfld System.UInt16 Vehicle::m_nextOwnVehicle
IL_0285: ldarg.0
IL_0286: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_028B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0290: ldarg.1
IL_0291: ldind.u2
IL_0292: ldelema Vehicle
IL_0297: ldc.i4.0
IL_0298: stfld System.UInt16 Vehicle::m_nextGuestVehicle
IL_029D: ldarg.0
IL_029E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02A3: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02A8: ldarg.1
IL_02A9: ldind.u2
IL_02AA: ldelema Vehicle
IL_02AF: ldc.i4.0
IL_02B0: stfld System.UInt16 Vehicle::m_nextLineVehicle
IL_02B5: ldarg.0
IL_02B6: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02BB: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02C0: ldarg.1
IL_02C1: ldind.u2
IL_02C2: ldelema Vehicle
IL_02C7: ldc.i4.0
IL_02C8: stfld System.UInt16 Vehicle::m_transportLine
IL_02CD: ldarg.0
IL_02CE: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02D3: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02D8: ldarg.1
IL_02D9: ldind.u2
IL_02DA: ldelema Vehicle
IL_02DF: ldc.i4.0
IL_02E0: stfld System.UInt16 Vehicle::m_leadingVehicle
IL_02E5: ldarg.0
IL_02E6: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02EB: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02F0: ldarg.1
IL_02F1: ldind.u2
IL_02F2: ldelema Vehicle
IL_02F7: ldc.i4.0
IL_02F8: stfld System.UInt16 Vehicle::m_trailingVehicle
IL_02FD: ldarg.0
IL_02FE: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0303: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0308: ldarg.1
IL_0309: ldind.u2
IL_030A: ldelema Vehicle
IL_030F: ldc.i4.0
IL_0310: stfld System.UInt16 Vehicle::m_cargoParent
IL_0315: ldarg.0
IL_0316: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_031B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0320: ldarg.1
IL_0321: ldind.u2
IL_0322: ldelema Vehicle
IL_0327: ldc.i4.0
IL_0328: stfld System.UInt16 Vehicle::m_firstCargo
IL_032D: ldarg.0
IL_032E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0333: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0338: ldarg.1
IL_0339: ldind.u2
IL_033A: ldelema Vehicle
IL_033F: ldc.i4.0
IL_0340: stfld System.UInt16 Vehicle::m_nextCargo
IL_0345: ldarg.0
IL_0346: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_034B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0350: ldarg.1
IL_0351: ldind.u2
IL_0352: ldelema Vehicle
IL_0357: ldc.i4.0
IL_0358: stfld System.UInt32 Vehicle::m_citizenUnits
IL_035D: ldarg.0
IL_035E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0363: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0368: ldarg.1
IL_0369: ldind.u2
IL_036A: ldelema Vehicle
IL_036F: ldc.i4.0
IL_0370: stfld System.UInt32 Vehicle::m_path
IL_0375: ldarg.0
IL_0376: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_037B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0380: ldarg.1
IL_0381: ldind.u2
IL_0382: ldelema Vehicle
IL_0387: ldc.i4.0
IL_0388: stfld System.Byte Vehicle::m_lastFrame
IL_038D: ldarg.0
IL_038E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0393: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0398: ldarg.1
IL_0399: ldind.u2
IL_039A: ldelema Vehicle
IL_039F: ldc.i4.0
IL_03A0: stfld System.Byte Vehicle::m_pathPositionIndex
IL_03A5: ldarg.0
IL_03A6: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03AB: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03B0: ldarg.1
IL_03B1: ldind.u2
IL_03B2: ldelema Vehicle
IL_03B7: ldc.i4.0
IL_03B8: stfld System.Byte Vehicle::m_lastPathOffset
IL_03BD: ldarg.0
IL_03BE: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03C3: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03C8: ldarg.1
IL_03C9: ldind.u2
IL_03CA: ldelema Vehicle
IL_03CF: ldc.i4.0
IL_03D0: stfld System.Byte Vehicle::m_gateIndex
IL_03D5: ldarg.0
IL_03D6: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03DB: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03E0: ldarg.1
IL_03E1: ldind.u2
IL_03E2: ldelema Vehicle
IL_03E7: ldc.i4.0
IL_03E8: stfld System.UInt16 Vehicle::m_waterSource
IL_03ED: ldarg.0
IL_03EE: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03F3: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03F8: ldarg.1
IL_03F9: ldind.u2
IL_03FA: ldelema Vehicle
IL_03FF: ldc.i4.0
IL_0400: stfld System.UInt16 Vehicle::m_touristCount
IL_0405: ldarg.0
IL_0406: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_040B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0410: ldarg.1
IL_0411: ldind.u2
IL_0412: ldelema Vehicle
IL_0417: ldc.i4.0
IL_0418: stfld System.UInt16 Vehicle::m_custom
IL_041D: ldarg.3
IL_041E: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_0423: ldarg.1
IL_0424: ldind.u2
IL_0425: ldarg.0
IL_0426: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_042B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0430: ldarg.1
IL_0431: ldind.u2
IL_0432: ldelema Vehicle
IL_0437: callvirt virtual System.Void VehicleAI::CreateVehicle(System.UInt16
vehicleID, Vehicle& data)
IL_043C: ldarg.3
IL_043D: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_0442: ldarg.1
IL_0443: ldind.u2
IL_0444: ldarg.0
IL_0445: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_044A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_044F: ldarg.1
IL_0450: ldind.u2
IL_0451: ldelema Vehicle
IL_0456: ldarg.0
IL_0457: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_045C: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0461: ldarg.1
IL_0462: ldind.u2
IL_0463: ldelema Vehicle
IL_0468: ldflda Frame Vehicle::m_frame0
IL_046D: callvirt virtual System.Void VehicleAI::FrameDataUpdated(System.UInt16
vehicleID, Vehicle& vehicleData, Frame& frameData)
IL_0472: ldarg.0
IL_0473: ldarg.0
IL_0474: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0479: callvirt System.UInt32 Array16`1<Vehicle>::ItemCount()
IL_047E: ldc.i4.1
IL_047F: sub
IL_0480: stfld System.Int32 VehicleManager::m_vehicleCount
IL_0485: ldc.i4.1
IL_0486: br => Label5
IL_048B: Label2
IL_048B: ldarg.1
IL_048C: ldc.i4.0
IL_048D: stind.i2
IL_048E: ldc.i4.0
IL_048F: // end original
IL_048F: Label5
IL_048F: stloc 2 (System.Boolean)
IL_0493: Label0
IL_0493: ldloc 2 (System.Boolean)
IL_0497: 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::CreateVehicle_Patch0(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: // start original
IL_0000: ldarg.0
IL_0001: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0006: ldloca.s 0 (System.UInt16)
IL_0008: ldarg.2
IL_0009: callvirt System.Boolean Array16`1<Vehicle>::CreateItem(System.UInt16&
item, ColossalFramework.Math.Randomizer& r)
IL_000E: brfalse => Label0
IL_0013: ldarg.1
IL_0014: ldloc.0
IL_0015: stind.i2
IL_0016: ldloca.s 1 (Vehicle+Frame)
IL_0018: ldarg.s 4
IL_001A: call static UnityEngine.Quaternion
UnityEngine.Quaternion::get_identity()
IL_001F: call System.Void Frame::.ctor(UnityEngine.Vector3 position,
UnityEngine.Quaternion rotation)
IL_0024: ldarg.0
IL_0025: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_002A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_002F: ldarg.1
IL_0030: ldind.u2
IL_0031: ldelema Vehicle
IL_0036: ldc.i4.1
IL_0037: stfld Flags Vehicle::m_flags
IL_003C: ldarg.0
IL_003D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0042: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0047: ldarg.1
IL_0048: ldind.u2
IL_0049: ldelema Vehicle
IL_004E: ldc.i4.0
IL_004F: stfld Flags2 Vehicle::m_flags2
IL_0054: ldarg.s 6
IL_0056: brfalse => Label1
IL_005B: ldarg.0
IL_005C: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0061: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0066: ldarg.1
IL_0067: ldind.u2
IL_0068: ldelema Vehicle
IL_006D: dup
IL_006E: ldfld Flags Vehicle::m_flags
IL_0073: ldc.i4.s 32
IL_0075: or
IL_0076: stfld Flags Vehicle::m_flags
IL_007B: Label1
IL_007B: ldarg.s 7
IL_007D: brfalse => Label2
IL_0082: ldarg.0
IL_0083: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0088: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_008D: ldarg.1
IL_008E: ldind.u2
IL_008F: ldelema Vehicle
IL_0094: dup
IL_0095: ldfld Flags Vehicle::m_flags
IL_009A: ldc.i4.s 16
IL_009C: or
IL_009D: stfld Flags Vehicle::m_flags
IL_00A2: Label2
IL_00A2: ldarg.0
IL_00A3: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00A8: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00AD: ldarg.1
IL_00AE: ldind.u2
IL_00AF: ldelema Vehicle
IL_00B4: ldarg.3
IL_00B5: call System.Void Vehicle::set_Info(VehicleInfo value)
IL_00BA: ldarg.0
IL_00BB: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00C0: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00C5: ldarg.1
IL_00C6: ldind.u2
IL_00C7: ldelema Vehicle
IL_00CC: ldloc.1
IL_00CD: stfld Frame Vehicle::m_frame0
IL_00D2: ldarg.0
IL_00D3: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00D8: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00DD: ldarg.1
IL_00DE: ldind.u2
IL_00DF: ldelema Vehicle
IL_00E4: ldloc.1
IL_00E5: stfld Frame Vehicle::m_frame1
IL_00EA: ldarg.0
IL_00EB: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00F0: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00F5: ldarg.1
IL_00F6: ldind.u2
IL_00F7: ldelema Vehicle
IL_00FC: ldloc.1
IL_00FD: stfld Frame Vehicle::m_frame2
IL_0102: ldarg.0
IL_0103: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0108: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_010D: ldarg.1
IL_010E: ldind.u2
IL_010F: ldelema Vehicle
IL_0114: ldloc.1
IL_0115: stfld Frame Vehicle::m_frame3
IL_011A: ldarg.0
IL_011B: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0120: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0125: ldarg.1
IL_0126: ldind.u2
IL_0127: ldelema Vehicle
IL_012C: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_0131: stfld UnityEngine.Vector4 Vehicle::m_targetPos0
IL_0136: ldarg.0
IL_0137: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_013C: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0141: ldarg.1
IL_0142: ldind.u2
IL_0143: ldelema Vehicle
IL_0148: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_014D: stfld UnityEngine.Vector4 Vehicle::m_targetPos1
IL_0152: ldarg.0
IL_0153: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0158: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_015D: ldarg.1
IL_015E: ldind.u2
IL_015F: ldelema Vehicle
IL_0164: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_0169: stfld UnityEngine.Vector4 Vehicle::m_targetPos2
IL_016E: ldarg.0
IL_016F: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0174: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0179: ldarg.1
IL_017A: ldind.u2
IL_017B: ldelema Vehicle
IL_0180: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_0185: stfld UnityEngine.Vector4 Vehicle::m_targetPos3
IL_018A: ldarg.0
IL_018B: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0190: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0195: ldarg.1
IL_0196: ldind.u2
IL_0197: ldelema Vehicle
IL_019C: ldc.i4.0
IL_019D: stfld System.UInt16 Vehicle::m_sourceBuilding
IL_01A2: ldarg.0
IL_01A3: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01A8: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01AD: ldarg.1
IL_01AE: ldind.u2
IL_01AF: ldelema Vehicle
IL_01B4: ldc.i4.0
IL_01B5: stfld System.UInt16 Vehicle::m_targetBuilding
IL_01BA: ldarg.0
IL_01BB: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01C0: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01C5: ldarg.1
IL_01C6: ldind.u2
IL_01C7: ldelema Vehicle
IL_01CC: ldarg.s 5
IL_01CE: conv.u1
IL_01CF: stfld System.Byte Vehicle::m_transferType
IL_01D4: ldarg.0
IL_01D5: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01DA: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01DF: ldarg.1
IL_01E0: ldind.u2
IL_01E1: ldelema Vehicle
IL_01E6: ldc.i4.0
IL_01E7: stfld System.UInt16 Vehicle::m_transferSize
IL_01EC: ldarg.0
IL_01ED: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01F2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01F7: ldarg.1
IL_01F8: ldind.u2
IL_01F9: ldelema Vehicle
IL_01FE: ldc.i4.0
IL_01FF: stfld System.Byte Vehicle::m_waitCounter
IL_0204: ldarg.0
IL_0205: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_020A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_020F: ldarg.1
IL_0210: ldind.u2
IL_0211: ldelema Vehicle
IL_0216: ldc.i4.0
IL_0217: stfld System.Byte Vehicle::m_blockCounter
IL_021C: ldarg.0
IL_021D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0222: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0227: ldarg.1
IL_0228: ldind.u2
IL_0229: ldelema Vehicle
IL_022E: ldc.i4.0
IL_022F: stfld System.UInt16 Vehicle::m_nextGridVehicle
IL_0234: ldarg.0
IL_0235: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_023A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_023F: ldarg.1
IL_0240: ldind.u2
IL_0241: ldelema Vehicle
IL_0246: ldc.i4.0
IL_0247: stfld System.UInt16 Vehicle::m_nextOwnVehicle
IL_024C: ldarg.0
IL_024D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0252: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0257: ldarg.1
IL_0258: ldind.u2
IL_0259: ldelema Vehicle
IL_025E: ldc.i4.0
IL_025F: stfld System.UInt16 Vehicle::m_nextGuestVehicle
IL_0264: ldarg.0
IL_0265: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_026A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_026F: ldarg.1
IL_0270: ldind.u2
IL_0271: ldelema Vehicle
IL_0276: ldc.i4.0
IL_0277: stfld System.UInt16 Vehicle::m_nextLineVehicle
IL_027C: ldarg.0
IL_027D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0282: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0287: ldarg.1
IL_0288: ldind.u2
IL_0289: ldelema Vehicle
IL_028E: ldc.i4.0
IL_028F: stfld System.UInt16 Vehicle::m_transportLine
IL_0294: ldarg.0
IL_0295: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_029A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_029F: ldarg.1
IL_02A0: ldind.u2
IL_02A1: ldelema Vehicle
IL_02A6: ldc.i4.0
IL_02A7: stfld System.UInt16 Vehicle::m_leadingVehicle
IL_02AC: ldarg.0
IL_02AD: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02B2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02B7: ldarg.1
IL_02B8: ldind.u2
IL_02B9: ldelema Vehicle
IL_02BE: ldc.i4.0
IL_02BF: stfld System.UInt16 Vehicle::m_trailingVehicle
IL_02C4: ldarg.0
IL_02C5: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02CA: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02CF: ldarg.1
IL_02D0: ldind.u2
IL_02D1: ldelema Vehicle
IL_02D6: ldc.i4.0
IL_02D7: stfld System.UInt16 Vehicle::m_cargoParent
IL_02DC: ldarg.0
IL_02DD: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02E2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02E7: ldarg.1
IL_02E8: ldind.u2
IL_02E9: ldelema Vehicle
IL_02EE: ldc.i4.0
IL_02EF: stfld System.UInt16 Vehicle::m_firstCargo
IL_02F4: ldarg.0
IL_02F5: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02FA: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02FF: ldarg.1
IL_0300: ldind.u2
IL_0301: ldelema Vehicle
IL_0306: ldc.i4.0
IL_0307: stfld System.UInt16 Vehicle::m_nextCargo
IL_030C: ldarg.0
IL_030D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0312: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0317: ldarg.1
IL_0318: ldind.u2
IL_0319: ldelema Vehicle
IL_031E: ldc.i4.0
IL_031F: stfld System.UInt32 Vehicle::m_citizenUnits
IL_0324: ldarg.0
IL_0325: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_032A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_032F: ldarg.1
IL_0330: ldind.u2
IL_0331: ldelema Vehicle
IL_0336: ldc.i4.0
IL_0337: stfld System.UInt32 Vehicle::m_path
IL_033C: ldarg.0
IL_033D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0342: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0347: ldarg.1
IL_0348: ldind.u2
IL_0349: ldelema Vehicle
IL_034E: ldc.i4.0
IL_034F: stfld System.Byte Vehicle::m_lastFrame
IL_0354: ldarg.0
IL_0355: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_035A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_035F: ldarg.1
IL_0360: ldind.u2
IL_0361: ldelema Vehicle
IL_0366: ldc.i4.0
IL_0367: stfld System.Byte Vehicle::m_pathPositionIndex
IL_036C: ldarg.0
IL_036D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0372: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0377: ldarg.1
IL_0378: ldind.u2
IL_0379: ldelema Vehicle
IL_037E: ldc.i4.0
IL_037F: stfld System.Byte Vehicle::m_lastPathOffset
IL_0384: ldarg.0
IL_0385: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_038A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_038F: ldarg.1
IL_0390: ldind.u2
IL_0391: ldelema Vehicle
IL_0396: ldc.i4.0
IL_0397: stfld System.Byte Vehicle::m_gateIndex
IL_039C: ldarg.0
IL_039D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03A2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03A7: ldarg.1
IL_03A8: ldind.u2
IL_03A9: ldelema Vehicle
IL_03AE: ldc.i4.0
IL_03AF: stfld System.UInt16 Vehicle::m_waterSource
IL_03B4: ldarg.0
IL_03B5: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03BA: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03BF: ldarg.1
IL_03C0: ldind.u2
IL_03C1: ldelema Vehicle
IL_03C6: ldc.i4.0
IL_03C7: stfld System.UInt16 Vehicle::m_touristCount
IL_03CC: ldarg.0
IL_03CD: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03D2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03D7: ldarg.1
IL_03D8: ldind.u2
IL_03D9: ldelema Vehicle
IL_03DE: ldc.i4.0
IL_03DF: stfld System.UInt16 Vehicle::m_custom
IL_03E4: ldarg.3
IL_03E5: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_03EA: ldarg.1
IL_03EB: ldind.u2
IL_03EC: ldarg.0
IL_03ED: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03F2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03F7: ldarg.1
IL_03F8: ldind.u2
IL_03F9: ldelema Vehicle
IL_03FE: callvirt virtual System.Void VehicleAI::CreateVehicle(System.UInt16
vehicleID, Vehicle& data)
IL_0403: ldarg.3
IL_0404: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_0409: ldarg.1
IL_040A: ldind.u2
IL_040B: ldarg.0
IL_040C: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0411: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0416: ldarg.1
IL_0417: ldind.u2
IL_0418: ldelema Vehicle
IL_041D: ldarg.0
IL_041E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0423: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0428: ldarg.1
IL_0429: ldind.u2
IL_042A: ldelema Vehicle
IL_042F: ldflda Frame Vehicle::m_frame0
IL_0434: callvirt virtual System.Void VehicleAI::FrameDataUpdated(System.UInt16
vehicleID, Vehicle& vehicleData, Frame& frameData)
IL_0439: ldarg.0
IL_043A: ldarg.0
IL_043B: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0440: callvirt System.UInt32 Array16`1<Vehicle>::ItemCount()
IL_0445: ldc.i4.1
IL_0446: sub
IL_0447: stfld System.Int32 VehicleManager::m_vehicleCount
IL_044C: ldc.i4.1
IL_044D: br => Label3
IL_0452: Label0
IL_0452: ldarg.1
IL_0453: ldc.i4.0
IL_0454: stind.i2
IL_0455: ldc.i4.0
IL_0456: // end original
IL_0456: Label3
IL_0456: ret
DONE

### Patch: System.Void VehicleManager::ReleaseVehicle(System.UInt16 vehicle)


### Replacement: static System.Void
VehicleManager::ReleaseVehicle_Patch0(VehicleManager this, System.UInt16 vehicle)
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: ldarg.0
IL_0003: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0008: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_000D: ldarg.1
IL_000E: ldelema Vehicle
IL_0013: call System.Void
VehicleManager::ReleaseVehicleImplementation(System.UInt16 vehicle, Vehicle& data)
IL_0018: // end original
IL_0018: ret
DONE

### Patch: System.Void NetManager::UpdateSegment(System.UInt16 segment,


System.UInt16 fromNode, System.Int32 level)
### Replacement: static System.Void NetManager::UpdateSegment_Patch0(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<NetSegment> NetManager::m_segments
IL_0030: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0047: ldfld NetSegment[] Array16`1<NetSegment>::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: ret
DONE

### Patch: System.Void NetManager::FinalizeSegment(System.UInt16 segment,


NetSegment& data)
### Replacement: static System.Void NetManager::FinalizeSegment_Patch0(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<NetNode> NetManager::m_nodes
IL_0006: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0021: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_00CD: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_00F3: ldfld NetSegment[] Array16`1<NetSegment>::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<LogChannel>::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: ret
DONE

### Patch: static System.Void RoadBaseAI::TrafficLightSimulationStep(System.UInt16


nodeID, NetNode& data)
### Replacement: static System.Void
RoadBaseAI::TrafficLightSimulationStep_Patch0(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.Int32
IL_0000: Local var 38: System.UInt16
IL_0000: Local var 39: RoadBaseAI/TrafficLightState
IL_0000: Local var 40: RoadBaseAI/TrafficLightState
IL_0000: Local var 41: UnityEngine.Vector3
IL_0000: // start original
IL_0000: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0005: stloc.0
IL_0006: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_000B: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0010: stloc.1
IL_0011: ldarg.1
IL_0012: ldfld System.Byte NetNode::m_maxWaitTime
IL_0017: ldc.i4.3
IL_0018: and
IL_0019: stloc.2
IL_001A: ldarg.1
IL_001B: ldfld System.Byte NetNode::m_maxWaitTime
IL_0020: ldc.i4.2
IL_0021: shr
IL_0022: ldc.i4.7
IL_0023: and
IL_0024: stloc.3
IL_0025: ldarg.1
IL_0026: ldfld System.Byte NetNode::m_maxWaitTime
IL_002B: ldc.i4.5
IL_002C: shr
IL_002D: stloc.s 4 (System.Int32)
IL_002F: ldc.i4.m1
IL_0030: stloc.s 5 (System.Int32)
IL_0032: ldc.i4.m1
IL_0033: stloc.s 6 (System.Int32)
IL_0035: ldc.i4.m1
IL_0036: stloc.s 7 (System.Int32)
IL_0038: ldc.i4.m1
IL_0039: stloc.s 8 (System.Int32)
IL_003B: ldc.i4.m1
IL_003C: stloc.s 9 (System.Int32)
IL_003E: ldc.i4.m1
IL_003F: stloc.s 10 (System.Int32)
IL_0041: ldc.i4.0
IL_0042: stloc.s 11 (System.Int32)
IL_0044: ldc.i4.0
IL_0045: stloc.s 12 (System.Int32)
IL_0047: ldc.i4.0
IL_0048: stloc.s 13 (System.Int32)
IL_004A: ldc.i4.0
IL_004B: stloc.s 14 (System.Int32)
IL_004D: ldc.i4.0
IL_004E: stloc.s 15 (System.Int32)
IL_0050: ldc.i4.0
IL_0051: stloc.s 16 (System.Int32)
IL_0053: br => Label0
IL_0058: Label22
IL_0058: ldarg.1
IL_0059: ldloc.s 16 (System.Int32)
IL_005B: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0060: stloc.s 17 (System.UInt16)
IL_0062: ldloc.s 17 (System.UInt16)
IL_0064: brfalse => Label1
IL_0069: ldc.i4.0
IL_006A: stloc.s 18 (System.Int32)
IL_006C: ldc.i4.0
IL_006D: stloc.s 19 (System.Int32)
IL_006F: ldloc.0
IL_0070: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0075: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_007A: ldloc.s 17 (System.UInt16)
IL_007C: ldelema NetSegment
IL_0081: ldloc.s 17 (System.UInt16)
IL_0083: ldc.i4.s 33
IL_0085: ldc.i4 65601
IL_008A: ldloca.s 18 (System.Int32)
IL_008C: ldloca.s 19 (System.Int32)
IL_008E: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_0093: ldloc.0
IL_0094: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0099: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_009E: ldloc.s 17 (System.UInt16)
IL_00A0: ldelema NetSegment
IL_00A5: ldfld System.UInt16 NetSegment::m_startNode
IL_00AA: ldarg.0
IL_00AB: ceq
IL_00AD: stloc.s 20 (System.Boolean)
IL_00AF: ldloc.s 20 (System.Boolean)
IL_00B1: brfalse => Label2
IL_00B6: ldloc.s 19 (System.Int32)
IL_00B8: ldc.i4.0
IL_00B9: ceq
IL_00BB: ldc.i4.0
IL_00BC: ceq
IL_00BE: br => Label3
IL_00C3: Label2
IL_00C3: ldloc.s 18 (System.Int32)
IL_00C5: ldc.i4.0
IL_00C6: ceq
IL_00C8: ldc.i4.0
IL_00C9: ceq
IL_00CB: Label3
IL_00CB: stloc.s 21 (System.Boolean)
IL_00CD: ldloc.s 20 (System.Boolean)
IL_00CF: brfalse => Label4
IL_00D4: ldloc.s 18 (System.Int32)
IL_00D6: ldc.i4.0
IL_00D7: ceq
IL_00D9: ldc.i4.0
IL_00DA: ceq
IL_00DC: br => Label5
IL_00E1: Label4
IL_00E1: ldloc.s 19 (System.Int32)
IL_00E3: ldc.i4.0
IL_00E4: ceq
IL_00E6: ldc.i4.0
IL_00E7: ceq
IL_00E9: Label5
IL_00E9: stloc.s 22 (System.Boolean)
IL_00EB: ldloc.s 21 (System.Boolean)
IL_00ED: brfalse => Label6
IL_00F2: ldloc.s 11 (System.Int32)
IL_00F4: ldc.i4.1
IL_00F5: ldloc.s 16 (System.Int32)
IL_00F7: ldc.i4.s 31
IL_00F9: and
IL_00FA: shl
IL_00FB: or
IL_00FC: stloc.s 11 (System.Int32)
IL_00FE: Label6
IL_00FE: ldloc.s 22 (System.Boolean)
IL_0100: brfalse => Label7
IL_0105: ldloc.s 12 (System.Int32)
IL_0107: ldc.i4.1
IL_0108: ldloc.s 16 (System.Int32)
IL_010A: ldc.i4.s 31
IL_010C: and
IL_010D: shl
IL_010E: or
IL_010F: stloc.s 12 (System.Int32)
IL_0111: ldloc.s 14 (System.Int32)
IL_0113: ldc.i4.1
IL_0114: add
IL_0115: stloc.s 14 (System.Int32)
IL_0117: Label7
IL_0117: ldarg.0
IL_0118: ldloc.0
IL_0119: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_011E: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0123: ldloc.s 17 (System.UInt16)
IL_0125: ldelema NetSegment
IL_012A: ldloc.1
IL_012B: ldc.i4 256
IL_0130: sub
IL_0131: ldloca.s 23 (RoadBaseAI+TrafficLightState)
IL_0133: ldloca.s 24 (RoadBaseAI+TrafficLightState)
IL_0135: ldloca.s 25 (System.Boolean)
IL_0137: ldloca.s 26 (System.Boolean)
IL_0139: 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_013E: ldloc.s 24 (RoadBaseAI+TrafficLightState)
IL_0140: ldc.i4.2
IL_0141: and
IL_0142: brfalse => Label8
IL_0147: ldloc.s 26 (System.Boolean)
IL_0149: brfalse => Label9
IL_014E: ldloc.s 8 (System.Int32)
IL_0150: ldc.i4.m1
IL_0151: bne.un => Label10
IL_0156: ldloc.s 16 (System.Int32)
IL_0158: stloc.s 8 (System.Int32)
IL_015A: Label10
IL_015A: ldloc.s 10 (System.Int32)
IL_015C: ldc.i4.m1
IL_015D: bne.un => Label11
IL_0162: ldloc.s 15 (System.Int32)
IL_0164: ldloc.s 4 (System.Int32)
IL_0166: blt => Label12
IL_016B: ldloc.s 16 (System.Int32)
IL_016D: stloc.s 10 (System.Int32)
IL_016F: Label8
IL_016F: Label9
IL_016F: Label11
IL_016F: Label12
IL_016F: ldloc.s 15 (System.Int32)
IL_0171: ldc.i4.1
IL_0172: add
IL_0173: stloc.s 15 (System.Int32)
IL_0175: ldloc.s 21 (System.Boolean)
IL_0177: brtrue => Label13
IL_017C: ldloc.s 25 (System.Boolean)
IL_017E: brfalse => Label14
IL_0183: Label13
IL_0183: ldloc.s 23 (RoadBaseAI+TrafficLightState)
IL_0185: ldc.i4.2
IL_0186: and
IL_0187: brtrue => Label15
IL_018C: ldloc.s 16 (System.Int32)
IL_018E: stloc.s 6 (System.Int32)
IL_0190: ldloc.s 25 (System.Boolean)
IL_0192: brfalse => Label16
IL_0197: ldloc.s 16 (System.Int32)
IL_0199: stloc.s 5 (System.Int32)
IL_019B: Label16
IL_019B: br => Label17
IL_01A0: Label15
IL_01A0: ldloc.s 25 (System.Boolean)
IL_01A2: brfalse => Label18
IL_01A7: ldloc.s 7 (System.Int32)
IL_01A9: ldc.i4.m1
IL_01AA: bne.un => Label19
IL_01AF: ldloc.s 16 (System.Int32)
IL_01B1: stloc.s 7 (System.Int32)
IL_01B3: Label19
IL_01B3: ldloc.s 9 (System.Int32)
IL_01B5: ldc.i4.m1
IL_01B6: bne.un => Label20
IL_01BB: ldloc.s 13 (System.Int32)
IL_01BD: ldloc.3
IL_01BE: blt => Label21
IL_01C3: ldloc.s 16 (System.Int32)
IL_01C5: stloc.s 9 (System.Int32)
IL_01C7: Label17
IL_01C7: Label18
IL_01C7: Label20
IL_01C7: Label21
IL_01C7: ldloc.s 13 (System.Int32)
IL_01C9: ldc.i4.1
IL_01CA: add
IL_01CB: stloc.s 13 (System.Int32)
IL_01CD: Label1
IL_01CD: Label14
IL_01CD: ldloc.s 16 (System.Int32)
IL_01CF: ldc.i4.1
IL_01D0: add
IL_01D1: stloc.s 16 (System.Int32)
IL_01D3: Label0
IL_01D3: ldloc.s 16 (System.Int32)
IL_01D5: ldc.i4.8
IL_01D6: blt => Label22
IL_01DB: ldloc.s 9 (System.Int32)
IL_01DD: ldc.i4.m1
IL_01DE: bne.un => Label23
IL_01E3: ldloc.s 7 (System.Int32)
IL_01E5: stloc.s 9 (System.Int32)
IL_01E7: Label23
IL_01E7: ldloc.s 10 (System.Int32)
IL_01E9: ldc.i4.m1
IL_01EA: bne.un => Label24
IL_01EF: ldloc.s 8 (System.Int32)
IL_01F1: stloc.s 10 (System.Int32)
IL_01F3: Label24
IL_01F3: ldloc.s 6 (System.Int32)
IL_01F5: ldc.i4.m1
IL_01F6: beq => Label25
IL_01FB: ldloc.s 5 (System.Int32)
IL_01FD: ldc.i4.m1
IL_01FE: beq => Label26
IL_0203: ldloc.2
IL_0204: ldc.i4.1
IL_0205: bgt => Label27
IL_020A: ldc.i4.m1
IL_020B: stloc.s 9 (System.Int32)
IL_020D: ldc.i4.m1
IL_020E: stloc.s 10 (System.Int32)
IL_0210: ldloc.2
IL_0211: ldc.i4.1
IL_0212: add
IL_0213: stloc.2
IL_0214: Label25
IL_0214: Label26
IL_0214: Label27
IL_0214: ldloc.s 10 (System.Int32)
IL_0216: ldc.i4.m1
IL_0217: beq => Label28
IL_021C: ldloc.s 9 (System.Int32)
IL_021E: ldc.i4.m1
IL_021F: beq => Label29
IL_0224: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0229: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_022E: ldc.i4.3
IL_022F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0234: brfalse => Label30
IL_0239: ldc.i4.m1
IL_023A: stloc.s 10 (System.Int32)
IL_023C: Label28
IL_023C: Label29
IL_023C: Label30
IL_023C: ldloc.s 9 (System.Int32)
IL_023E: ldc.i4.m1
IL_023F: beq => Label31
IL_0244: ldloc.s 9 (System.Int32)
IL_0246: stloc.s 6 (System.Int32)
IL_0248: Label31
IL_0248: ldloc.s 10 (System.Int32)
IL_024A: ldloc.s 6 (System.Int32)
IL_024C: bne.un => Label32
IL_0251: ldc.i4.m1
IL_0252: stloc.s 6 (System.Int32)
IL_0254: Label32
IL_0254: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_0259: stloc.s 27 (UnityEngine.Vector3)
IL_025B: ldloc.s 10 (System.Int32)
IL_025D: ldc.i4.m1
IL_025E: beq => Label33
IL_0263: ldarg.1
IL_0264: ldloc.s 10 (System.Int32)
IL_0266: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_026B: stloc.s 28 (System.UInt16)
IL_026D: ldloc.0
IL_026E: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0273: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0278: ldloc.s 28 (System.UInt16)
IL_027A: ldelema NetSegment
IL_027F: ldarg.0
IL_0280: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0285: stloc.s 27 (UnityEngine.Vector3)
IL_0287: ldloc.s 6 (System.Int32)
IL_0289: ldc.i4.m1
IL_028A: beq => Label34
IL_028F: ldarg.1
IL_0290: ldloc.s 6 (System.Int32)
IL_0292: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0297: stloc.s 28 (System.UInt16)
IL_0299: ldloc.0
IL_029A: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_029F: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02A4: ldloc.s 28 (System.UInt16)
IL_02A6: ldelema NetSegment
IL_02AB: ldarg.0
IL_02AC: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_02B1: stloc.s 29 (UnityEngine.Vector3)
IL_02B3: ldloca.s 29 (UnityEngine.Vector3)
IL_02B5: ldfld System.Single UnityEngine.Vector3::x
IL_02BA: ldloca.s 27 (UnityEngine.Vector3)
IL_02BC: ldfld System.Single UnityEngine.Vector3::x
IL_02C1: mul
IL_02C2: ldloca.s 29 (UnityEngine.Vector3)
IL_02C4: ldfld System.Single UnityEngine.Vector3::z
IL_02C9: ldloca.s 27 (UnityEngine.Vector3)
IL_02CB: ldfld System.Single UnityEngine.Vector3::z
IL_02D0: mul
IL_02D1: add
IL_02D2: ldc.r4 -0.5
IL_02D7: bge.un => Label35
IL_02DC: ldc.i4.m1
IL_02DD: stloc.s 6 (System.Int32)
IL_02DF: Label34
IL_02DF: Label35
IL_02DF: ldloc.s 6 (System.Int32)
IL_02E1: ldc.i4.m1
IL_02E2: bne.un => Label36
IL_02E7: ldc.i4.0
IL_02E8: stloc.s 30 (System.Int32)
IL_02EA: br => Label37
IL_02EF: Label43
IL_02EF: ldloc.s 30 (System.Int32)
IL_02F1: ldloc.s 10 (System.Int32)
IL_02F3: beq => Label38
IL_02F8: ldloc.s 11 (System.Int32)
IL_02FA: ldc.i4.1
IL_02FB: ldloc.s 30 (System.Int32)
IL_02FD: ldc.i4.s 31
IL_02FF: and
IL_0300: shl
IL_0301: and
IL_0302: brfalse => Label39
IL_0307: ldarg.1
IL_0308: ldloc.s 30 (System.Int32)
IL_030A: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_030F: stloc.s 28 (System.UInt16)
IL_0311: ldloc.s 28 (System.UInt16)
IL_0313: brfalse => Label40
IL_0318: ldloc.0
IL_0319: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_031E: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0323: ldloc.s 28 (System.UInt16)
IL_0325: ldelema NetSegment
IL_032A: ldarg.0
IL_032B: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0330: stloc.s 31 (UnityEngine.Vector3)
IL_0332: ldloca.s 31 (UnityEngine.Vector3)
IL_0334: ldfld System.Single UnityEngine.Vector3::x
IL_0339: ldloca.s 27 (UnityEngine.Vector3)
IL_033B: ldfld System.Single UnityEngine.Vector3::x
IL_0340: mul
IL_0341: ldloca.s 31 (UnityEngine.Vector3)
IL_0343: ldfld System.Single UnityEngine.Vector3::z
IL_0348: ldloca.s 27 (UnityEngine.Vector3)
IL_034A: ldfld System.Single UnityEngine.Vector3::z
IL_034F: mul
IL_0350: add
IL_0351: ldc.r4 -0.5
IL_0356: blt.un => Label41
IL_035B: ldloc.s 30 (System.Int32)
IL_035D: stloc.s 6 (System.Int32)
IL_035F: br => Label42
IL_0364: Label38
IL_0364: Label39
IL_0364: Label40
IL_0364: Label41
IL_0364: ldloc.s 30 (System.Int32)
IL_0366: ldc.i4.1
IL_0367: add
IL_0368: stloc.s 30 (System.Int32)
IL_036A: Label37
IL_036A: ldloc.s 30 (System.Int32)
IL_036C: ldc.i4.8
IL_036D: blt => Label43
IL_0372: Label33
IL_0372: Label36
IL_0372: Label42
IL_0372: ldc.i4.m1
IL_0373: stloc.s 32 (System.Int32)
IL_0375: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_037A: stloc.s 33 (UnityEngine.Vector3)
IL_037C: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_0381: stloc.s 34 (UnityEngine.Vector3)
IL_0383: ldloc.s 6 (System.Int32)
IL_0385: ldc.i4.m1
IL_0386: beq => Label44
IL_038B: ldarg.1
IL_038C: ldloc.s 6 (System.Int32)
IL_038E: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0393: stloc.s 35 (System.UInt16)
IL_0395: ldloc.0
IL_0396: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_039B: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_03A0: ldloc.s 35 (System.UInt16)
IL_03A2: ldelema NetSegment
IL_03A7: ldarg.0
IL_03A8: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_03AD: stloc.s 33 (UnityEngine.Vector3)
IL_03AF: ldloc.s 11 (System.Int32)
IL_03B1: ldloc.s 12 (System.Int32)
IL_03B3: and
IL_03B4: ldc.i4.1
IL_03B5: ldloc.s 6 (System.Int32)
IL_03B7: ldc.i4.s 31
IL_03B9: and
IL_03BA: shl
IL_03BB: and
IL_03BC: brfalse => Label45
IL_03C1: ldc.i4.0
IL_03C2: stloc.s 36 (System.Int32)
IL_03C4: br => Label46
IL_03C9: Label57
IL_03C9: ldloc.s 36 (System.Int32)
IL_03CB: ldloc.s 6 (System.Int32)
IL_03CD: beq => Label47
IL_03D2: ldloc.s 36 (System.Int32)
IL_03D4: ldloc.s 10 (System.Int32)
IL_03D6: beq => Label48
IL_03DB: ldloc.s 11 (System.Int32)
IL_03DD: ldloc.s 12 (System.Int32)
IL_03DF: and
IL_03E0: ldc.i4.1
IL_03E1: ldloc.s 36 (System.Int32)
IL_03E3: ldc.i4.s 31
IL_03E5: and
IL_03E6: shl
IL_03E7: and
IL_03E8: brfalse => Label49
IL_03ED: ldarg.1
IL_03EE: ldloc.s 36 (System.Int32)
IL_03F0: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_03F5: stloc.s 35 (System.UInt16)
IL_03F7: ldloc.s 35 (System.UInt16)
IL_03F9: brfalse => Label50
IL_03FE: ldloc.0
IL_03FF: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0404: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0409: ldloc.s 35 (System.UInt16)
IL_040B: ldelema NetSegment
IL_0410: ldarg.0
IL_0411: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0416: stloc.s 34 (UnityEngine.Vector3)
IL_0418: ldloc.s 10 (System.Int32)
IL_041A: ldc.i4.m1
IL_041B: beq => Label51
IL_0420: ldloca.s 34 (UnityEngine.Vector3)
IL_0422: ldfld System.Single UnityEngine.Vector3::x
IL_0427: ldloca.s 27 (UnityEngine.Vector3)
IL_0429: ldfld System.Single UnityEngine.Vector3::x
IL_042E: mul
IL_042F: ldloca.s 34 (UnityEngine.Vector3)
IL_0431: ldfld System.Single UnityEngine.Vector3::z
IL_0436: ldloca.s 27 (UnityEngine.Vector3)
IL_0438: ldfld System.Single UnityEngine.Vector3::z
IL_043D: mul
IL_043E: add
IL_043F: ldc.r4 -0.5
IL_0444: blt.un => Label52
IL_0449: Label51
IL_0449: ldloc.s 14 (System.Int32)
IL_044B: ldc.i4.2
IL_044C: bne.un => Label53
IL_0451: ldloc.s 36 (System.Int32)
IL_0453: stloc.s 32 (System.Int32)
IL_0455: br => Label54
IL_045A: Label53
IL_045A: ldloca.s 34 (UnityEngine.Vector3)
IL_045C: ldfld System.Single UnityEngine.Vector3::x
IL_0461: ldloca.s 33 (UnityEngine.Vector3)
IL_0463: ldfld System.Single UnityEngine.Vector3::x
IL_0468: mul
IL_0469: ldloca.s 34 (UnityEngine.Vector3)
IL_046B: ldfld System.Single UnityEngine.Vector3::z
IL_0470: ldloca.s 33 (UnityEngine.Vector3)
IL_0472: ldfld System.Single UnityEngine.Vector3::z
IL_0477: mul
IL_0478: add
IL_0479: ldc.r4 -0.9396926
IL_047E: bge.un => Label55
IL_0483: ldloc.s 36 (System.Int32)
IL_0485: stloc.s 32 (System.Int32)
IL_0487: br => Label56
IL_048C: Label47
IL_048C: Label48
IL_048C: Label49
IL_048C: Label50
IL_048C: Label52
IL_048C: Label55
IL_048C: ldloc.s 36 (System.Int32)
IL_048E: ldc.i4.1
IL_048F: add
IL_0490: stloc.s 36 (System.Int32)
IL_0492: Label46
IL_0492: ldloc.s 36 (System.Int32)
IL_0494: ldc.i4.8
IL_0495: blt => Label57
IL_049A: Label44
IL_049A: Label45
IL_049A: Label54
IL_049A: Label56
IL_049A: ldc.i4.0
IL_049B: stloc.s 37 (System.Int32)
IL_049D: br => Label58
IL_04A2: Label77
IL_04A2: ldarg.1
IL_04A3: ldloc.s 37 (System.Int32)
IL_04A5: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_04AA: stloc.s 38 (System.UInt16)
IL_04AC: ldloc.s 38 (System.UInt16)
IL_04AE: brfalse => Label59
IL_04B3: ldarg.0
IL_04B4: ldloc.0
IL_04B5: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_04BA: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_04BF: ldloc.s 38 (System.UInt16)
IL_04C1: ldelema NetSegment
IL_04C6: ldloc.1
IL_04C7: ldc.i4 256
IL_04CC: sub
IL_04CD: ldloca.s 39 (RoadBaseAI+TrafficLightState)
IL_04CF: ldloca.s 40 (RoadBaseAI+TrafficLightState)
IL_04D1: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_04D6: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_04D8: ldc.i4.s -2
IL_04DA: and
IL_04DB: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_04DD: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_04DF: ldc.i4.s -2
IL_04E1: and
IL_04E2: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_04E4: ldloc.s 6 (System.Int32)
IL_04E6: ldloc.s 37 (System.Int32)
IL_04E8: beq => Label60
IL_04ED: ldloc.s 32 (System.Int32)
IL_04EF: ldloc.s 37 (System.Int32)
IL_04F1: bne.un => Label61
IL_04F6: Label60
IL_04F6: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_04F8: ldc.i4.2
IL_04F9: and
IL_04FA: brfalse => Label62
IL_04FF: ldc.i4.1
IL_0500: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0502: ldc.i4.0
IL_0503: stloc.2
IL_0504: ldloc.3
IL_0505: ldc.i4.1
IL_0506: add
IL_0507: dup
IL_0508: stloc.3
IL_0509: ldloc.s 13 (System.Int32)
IL_050B: blt => Label63
IL_0510: ldc.i4.0
IL_0511: stloc.3
IL_0512: Label62
IL_0512: Label63
IL_0512: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0514: ldc.i4.2
IL_0515: and
IL_0516: brtrue => Label64
IL_051B: ldc.i4.3
IL_051C: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_051E: Label64
IL_051E: br => Label65
IL_0523: Label61
IL_0523: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0525: ldc.i4.2
IL_0526: and
IL_0527: brtrue => Label66
IL_052C: ldc.i4.3
IL_052D: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_052F: Label66
IL_052F: ldloc.0
IL_0530: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0535: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_053A: ldloc.s 38 (System.UInt16)
IL_053C: ldelema NetSegment
IL_0541: ldarg.0
IL_0542: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0547: stloc.s 41 (UnityEngine.Vector3)
IL_0549: ldloc.s 12 (System.Int32)
IL_054B: ldc.i4.1
IL_054C: ldloc.s 37 (System.Int32)
IL_054E: ldc.i4.s 31
IL_0550: and
IL_0551: shl
IL_0552: and
IL_0553: brfalse => Label67
IL_0558: ldloc.s 10 (System.Int32)
IL_055A: ldloc.s 37 (System.Int32)
IL_055C: beq => Label68
IL_0561: ldloc.s 6 (System.Int32)
IL_0563: ldc.i4.m1
IL_0564: beq => Label69
IL_0569: ldloca.s 41 (UnityEngine.Vector3)
IL_056B: ldfld System.Single UnityEngine.Vector3::x
IL_0570: ldloca.s 33 (UnityEngine.Vector3)
IL_0572: ldfld System.Single UnityEngine.Vector3::x
IL_0577: mul
IL_0578: ldloca.s 41 (UnityEngine.Vector3)
IL_057A: ldfld System.Single UnityEngine.Vector3::z
IL_057F: ldloca.s 33 (UnityEngine.Vector3)
IL_0581: ldfld System.Single UnityEngine.Vector3::z
IL_0586: mul
IL_0587: add
IL_0588: ldc.r4 -0.5
IL_058D: blt => Label70
IL_0592: Label69
IL_0592: ldloc.s 32 (System.Int32)
IL_0594: ldc.i4.m1
IL_0595: beq => Label71
IL_059A: ldloca.s 41 (UnityEngine.Vector3)
IL_059C: ldfld System.Single UnityEngine.Vector3::x
IL_05A1: ldloca.s 34 (UnityEngine.Vector3)
IL_05A3: ldfld System.Single UnityEngine.Vector3::x
IL_05A8: mul
IL_05A9: ldloca.s 41 (UnityEngine.Vector3)
IL_05AB: ldfld System.Single UnityEngine.Vector3::z
IL_05B0: ldloca.s 34 (UnityEngine.Vector3)
IL_05B2: ldfld System.Single UnityEngine.Vector3::z
IL_05B7: mul
IL_05B8: add
IL_05B9: ldc.r4 -0.5
IL_05BE: bge.un => Label72
IL_05C3: Label70
IL_05C3: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05C5: ldc.i4.2
IL_05C6: and
IL_05C7: brtrue => Label73
IL_05CC: ldc.i4.3
IL_05CD: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05CF: Label73
IL_05CF: br => Label74
IL_05D4: Label67
IL_05D4: Label68
IL_05D4: Label71
IL_05D4: Label72
IL_05D4: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05D6: ldc.i4.2
IL_05D7: and
IL_05D8: brfalse => Label75
IL_05DD: ldc.i4.1
IL_05DE: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05E0: ldloc.s 4 (System.Int32)
IL_05E2: ldc.i4.1
IL_05E3: add
IL_05E4: dup
IL_05E5: stloc.s 4 (System.Int32)
IL_05E7: ldloc.s 15 (System.Int32)
IL_05E9: blt => Label76
IL_05EE: ldc.i4.0
IL_05EF: stloc.s 4 (System.Int32)
IL_05F1: Label65
IL_05F1: Label74
IL_05F1: Label75
IL_05F1: Label76
IL_05F1: ldarg.0
IL_05F2: ldloc.0
IL_05F3: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_05F8: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_05FD: ldloc.s 38 (System.UInt16)
IL_05FF: ldelema NetSegment
IL_0604: ldloc.1
IL_0605: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0607: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0609: ldc.i4.0
IL_060A: ldc.i4.0
IL_060B: 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_0610: Label59
IL_0610: ldloc.s 37 (System.Int32)
IL_0612: ldc.i4.1
IL_0613: add
IL_0614: stloc.s 37 (System.Int32)
IL_0616: Label58
IL_0616: ldloc.s 37 (System.Int32)
IL_0618: ldc.i4.8
IL_0619: blt => Label77
IL_061E: ldarg.1
IL_061F: ldloc.s 4 (System.Int32)
IL_0621: ldc.i4.5
IL_0622: shl
IL_0623: ldloc.3
IL_0624: ldc.i4.2
IL_0625: shl
IL_0626: or
IL_0627: ldloc.2
IL_0628: or
IL_0629: conv.u1
IL_062A: stfld System.Byte NetNode::m_maxWaitTime
IL_062F: // end original
IL_062F: ret
DONE

### Patch: static System.Void RoadBaseAI::GetTrafficLightNodeState(System.UInt16


nodeID, NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData, Flags&
flags, UnityEngine.Color& color)
### Replacement: static System.Void
RoadBaseAI::GetTrafficLightNodeState_Patch0(System.UInt16 nodeID, NetNode&
nodeData, System.UInt16 segmentID, NetSegment& segmentData, Flags& 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: // start original
IL_0000: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0005: ldfld System.UInt32 SimulationManager::m_referenceFrameIndex
IL_000A: ldc.i4.s 15
IL_000C: sub
IL_000D: stloc.2
IL_000E: ldarg.0
IL_000F: ldc.i4.8
IL_0010: shl
IL_0011: ldc.i4 32768
IL_0016: div.un
IL_0017: stloc.3
IL_0018: ldloc.2
IL_0019: ldloc.3
IL_001A: sub
IL_001B: ldc.i4 255
IL_0020: and
IL_0021: stloc.s 4 (System.UInt32)
IL_0023: ldarg.0
IL_0024: ldarg.3
IL_0025: ldloc.2
IL_0026: ldloc.3
IL_0027: sub
IL_0028: ldloca.s 0 (RoadBaseAI+TrafficLightState)
IL_002A: ldloca.s 1 (RoadBaseAI+TrafficLightState)
IL_002C: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_0031: ldarg.s 5
IL_0033: ldc.r4 0.5
IL_0038: stfld System.Single UnityEngine.Color::a
IL_003D: ldloc.0
IL_003E: switch => Labels0,1,2,3
IL_0053: br => Label4
IL_0058: Label0
IL_0058: ldarg.s 5
IL_005A: ldc.r4 1
IL_005F: stfld System.Single UnityEngine.Color::g
IL_0064: br => Label5
IL_0069: Label1
IL_0069: ldloc.s 4 (System.UInt32)
IL_006B: ldc.i4.s 45
IL_006D: bge.un => Label6
IL_0072: ldarg.s 5
IL_0074: ldc.r4 0
IL_0079: stfld System.Single UnityEngine.Color::g
IL_007E: br => Label7
IL_0083: Label6
IL_0083: ldloc.s 4 (System.UInt32)
IL_0085: ldc.i4.s 60
IL_0087: bge.un => Label8
IL_008C: ldarg.s 5
IL_008E: ldc.r4 1
IL_0093: stfld System.Single UnityEngine.Color::r
IL_0098: br => Label9
IL_009D: Label8
IL_009D: ldarg.s 5
IL_009F: ldc.r4 1
IL_00A4: stfld System.Single UnityEngine.Color::g
IL_00A9: Label7
IL_00A9: Label9
IL_00A9: br => Label10
IL_00AE: Label2
IL_00AE: ldarg.s 5
IL_00B0: ldc.r4 0
IL_00B5: stfld System.Single UnityEngine.Color::g
IL_00BA: br => Label11
IL_00BF: Label3
IL_00BF: ldloc.s 4 (System.UInt32)
IL_00C1: ldc.i4.s 45
IL_00C3: bge.un => Label12
IL_00C8: ldarg.s 5
IL_00CA: ldc.r4 1
IL_00CF: stfld System.Single UnityEngine.Color::r
IL_00D4: br => Label13
IL_00D9: Label12
IL_00D9: ldarg.s 5
IL_00DB: ldc.r4 0
IL_00E0: stfld System.Single UnityEngine.Color::g
IL_00E5: Label13
IL_00E5: br => Label14
IL_00EA: Label4
IL_00EA: Label5
IL_00EA: Label10
IL_00EA: Label11
IL_00EA: Label14
IL_00EA: ldloc.1
IL_00EB: switch => Labels15,16,17,18
IL_0100: br => Label19
IL_0105: Label15
IL_0105: ldarg.s 5
IL_0107: ldc.r4 1
IL_010C: stfld System.Single UnityEngine.Color::b
IL_0111: br => Label20
IL_0116: Label16
IL_0116: ldloc.s 4 (System.UInt32)
IL_0118: ldc.i4.s 45
IL_011A: bge.un => Label21
IL_011F: ldarg.s 5
IL_0121: ldc.r4 0
IL_0126: stfld System.Single UnityEngine.Color::b
IL_012B: br => Label22
IL_0130: Label21
IL_0130: ldarg.s 5
IL_0132: ldc.r4 1
IL_0137: stfld System.Single UnityEngine.Color::b
IL_013C: Label22
IL_013C: br => Label23
IL_0141: Label17
IL_0141: ldarg.s 5
IL_0143: ldc.r4 0
IL_0148: stfld System.Single UnityEngine.Color::b
IL_014D: br => Label24
IL_0152: Label18
IL_0152: ldloc.s 4 (System.UInt32)
IL_0154: ldc.i4.s 45
IL_0156: bge.un => Label25
IL_015B: ldloc.s 4 (System.UInt32)
IL_015D: ldc.i4.8
IL_015E: div.un
IL_015F: ldc.i4.1
IL_0160: and
IL_0161: ldc.i4.1
IL_0162: bne.un => Label26
IL_0167: ldarg.s 5
IL_0169: ldc.r4 1
IL_016E: stfld System.Single UnityEngine.Color::b
IL_0173: Label26
IL_0173: br => Label27
IL_0178: Label25
IL_0178: ldarg.s 5
IL_017A: ldc.r4 0
IL_017F: stfld System.Single UnityEngine.Color::b
IL_0184: Label27
IL_0184: br => Label28
IL_0189: // end original
IL_0189: Label19
IL_0189: Label20
IL_0189: Label23
IL_0189: Label24
IL_0189: Label28
IL_0189: ret
DONE

### Patch: virtual System.Void RoadBaseAI::UpdateNode(System.UInt16 nodeID,


NetNode& data)
### Replacement: static System.Void RoadBaseAI::UpdateNode_Patch0(RoadBaseAI this,
System.UInt16 nodeID, NetNode& data)
IL_0000: Local var 0: Notification/Problem
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 Problem NetNode::m_problems
IL_000E: ldc.i8 72057602627866624
IL_0017: call static Problem Notification::RemoveProblems(Problem problems1,
Problem problems2)
IL_001C: stloc.0
IL_001D: ldc.i4.0
IL_001E: stloc.1
IL_001F: ldc.i4.0
IL_0020: stloc.2
IL_0021: ldarg.2
IL_0022: ldarg.1
IL_0023: ldc.i4.0
IL_0024: ldc.i4.s 33
IL_0026: ldc.i4.1
IL_0027: ldc.i4.1
IL_0028: ldloca.s 1 (System.Int32)
IL_002A: ldloca.s 2 (System.Int32)
IL_002C: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, LaneType laneTypes, VehicleType vehicleTypes,
System.Boolean onePerSegment, System.Int32& forward, System.Int32& backward)
IL_0031: ldarg.2
IL_0032: ldfld Flags NetNode::m_flags
IL_0037: ldc.i4 1024
IL_003C: and
IL_003D: brfalse => Label0
IL_0042: ldarg.2
IL_0043: ldfld System.UInt16 NetNode::m_building
IL_0048: brfalse => Label1
IL_004D: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0052: stloc.3
IL_0053: ldloc.1
IL_0054: brfalse => Label2
IL_0059: ldloc.3
IL_005A: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_005F: ldfld Building[] Array16`1<Building>::m_buffer
IL_0064: ldarg.2
IL_0065: ldfld System.UInt16 NetNode::m_building
IL_006A: ldelema Building
IL_006F: dup
IL_0070: ldfld Flags Building::m_flags
IL_0075: ldc.i4 128
IL_007A: or
IL_007B: stfld Flags Building::m_flags
IL_0080: br => Label3
IL_0085: Label2
IL_0085: ldloc.3
IL_0086: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008B: ldfld Building[] Array16`1<Building>::m_buffer
IL_0090: ldarg.2
IL_0091: ldfld System.UInt16 NetNode::m_building
IL_0096: ldelema Building
IL_009B: dup
IL_009C: ldfld Flags Building::m_flags
IL_00A1: ldc.i4 -129
IL_00A6: and
IL_00A7: stfld Flags Building::m_flags
IL_00AC: Label3
IL_00AC: ldloc.2
IL_00AD: brfalse => Label4
IL_00B2: ldloc.3
IL_00B3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00B8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00BD: ldarg.2
IL_00BE: ldfld System.UInt16 NetNode::m_building
IL_00C3: ldelema Building
IL_00C8: dup
IL_00C9: ldfld Flags Building::m_flags
IL_00CE: ldc.i4.s 64
IL_00D0: or
IL_00D1: stfld Flags Building::m_flags
IL_00D6: br => Label5
IL_00DB: Label4
IL_00DB: ldloc.3
IL_00DC: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00E1: ldfld Building[] Array16`1<Building>::m_buffer
IL_00E6: ldarg.2
IL_00E7: ldfld System.UInt16 NetNode::m_building
IL_00EC: ldelema Building
IL_00F1: dup
IL_00F2: ldfld Flags Building::m_flags
IL_00F7: ldc.i4.s -65
IL_00F9: and
IL_00FA: stfld Flags Building::m_flags
IL_00FF: Label5
IL_00FF: br => Label6
IL_0104: Label0
IL_0104: Label1
IL_0104: ldloc.1
IL_0105: brfalse => Label7
IL_010A: ldloc.2
IL_010B: brfalse => Label8
IL_0110: Label7
IL_0110: ldloc.1
IL_0111: brtrue => Label9
IL_0116: ldloc.2
IL_0117: brfalse => Label10
IL_011C: Label8
IL_011C: ldloc.0
IL_011D: ldc.i4 4096
IL_0122: conv.i8
IL_0123: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0128: stloc.0
IL_0129: Label6
IL_0129: Label9
IL_0129: Label10
IL_0129: ldloc.1
IL_012A: ldc.i4.1
IL_012B: bne.un => Label11
IL_0130: ldarg.2
IL_0131: dup
IL_0132: ldfld Flags NetNode::m_flags
IL_0137: ldc.i4 4194304
IL_013C: or
IL_013D: stfld Flags NetNode::m_flags
IL_0142: br => Label12
IL_0147: Label11
IL_0147: ldarg.2
IL_0148: dup
IL_0149: ldfld Flags NetNode::m_flags
IL_014E: ldc.i4 -4194305
IL_0153: and
IL_0154: stfld Flags NetNode::m_flags
IL_0159: Label12
IL_0159: ldloc.2
IL_015A: ldc.i4.1
IL_015B: bne.un => Label13
IL_0160: ldarg.2
IL_0161: dup
IL_0162: ldfld Flags NetNode::m_flags
IL_0167: ldc.i4 16777216
IL_016C: or
IL_016D: stfld Flags NetNode::m_flags
IL_0172: br => Label14
IL_0177: Label13
IL_0177: ldarg.2
IL_0178: dup
IL_0179: ldfld Flags NetNode::m_flags
IL_017E: ldc.i4 -16777217
IL_0183: and
IL_0184: stfld Flags NetNode::m_flags
IL_0189: Label14
IL_0189: ldarg.2
IL_018A: ldfld Flags NetNode::m_flags
IL_018F: ldc.i4 262144
IL_0194: and
IL_0195: brtrue => Label15
IL_019A: ldc.i4.0
IL_019B: stloc.s 4 (System.Int32)
IL_019D: ldc.i4.0
IL_019E: stloc.1
IL_019F: ldc.i4.0
IL_01A0: stloc.2
IL_01A1: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_01A6: stloc.s 5 (NetManager)
IL_01A8: ldc.i4.0
IL_01A9: stloc.s 6 (System.Int32)
IL_01AB: br => Label16
IL_01B0: Label24
IL_01B0: ldarg.2
IL_01B1: ldloc.s 6 (System.Int32)
IL_01B3: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_01B8: stloc.s 7 (System.UInt16)
IL_01BA: ldloc.s 7 (System.UInt16)
IL_01BC: brfalse => Label17
IL_01C1: ldc.i4.0
IL_01C2: stloc.s 8 (System.Int32)
IL_01C4: ldc.i4.0
IL_01C5: stloc.s 9 (System.Int32)
IL_01C7: ldloc.s 5 (NetManager)
IL_01C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01D3: ldloc.s 7 (System.UInt16)
IL_01D5: ldelema NetSegment
IL_01DA: ldloc.s 7 (System.UInt16)
IL_01DC: ldc.i4.s 33
IL_01DE: ldc.i4.s 64
IL_01E0: ldloca.s 8 (System.Int32)
IL_01E2: ldloca.s 9 (System.Int32)
IL_01E4: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_01E9: ldloc.s 8 (System.Int32)
IL_01EB: brtrue => Label18
IL_01F0: ldloc.s 9 (System.Int32)
IL_01F2: brfalse => Label19
IL_01F7: Label18
IL_01F7: ldloc.s 4 (System.Int32)
IL_01F9: ldc.i4.1
IL_01FA: add
IL_01FB: stloc.s 4 (System.Int32)
IL_01FD: ldloc.s 8 (System.Int32)
IL_01FF: brfalse => Label20
IL_0204: ldc.i4.1
IL_0205: stloc.s 8 (System.Int32)
IL_0207: Label20
IL_0207: ldloc.s 9 (System.Int32)
IL_0209: brfalse => Label21
IL_020E: ldc.i4.1
IL_020F: stloc.s 9 (System.Int32)
IL_0211: Label21
IL_0211: ldloc.s 5 (NetManager)
IL_0213: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0218: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_021D: ldloc.s 7 (System.UInt16)
IL_021F: ldelema NetSegment
IL_0224: ldfld System.UInt16 NetSegment::m_endNode
IL_0229: ldarg.1
IL_022A: bne.un => Label22
IL_022F: ldloc.1
IL_0230: ldloc.s 9 (System.Int32)
IL_0232: add
IL_0233: stloc.1
IL_0234: ldloc.2
IL_0235: ldloc.s 8 (System.Int32)
IL_0237: add
IL_0238: stloc.2
IL_0239: br => Label23
IL_023E: Label22
IL_023E: ldloc.1
IL_023F: ldloc.s 8 (System.Int32)
IL_0241: add
IL_0242: stloc.1
IL_0243: ldloc.2
IL_0244: ldloc.s 9 (System.Int32)
IL_0246: add
IL_0247: stloc.2
IL_0248: Label17
IL_0248: Label19
IL_0248: Label23
IL_0248: ldloc.s 6 (System.Int32)
IL_024A: ldc.i4.1
IL_024B: add
IL_024C: stloc.s 6 (System.Int32)
IL_024E: Label16
IL_024E: ldloc.s 6 (System.Int32)
IL_0250: ldc.i4.8
IL_0251: blt => Label24
IL_0256: ldloc.1
IL_0257: brfalse => Label25
IL_025C: ldloc.2
IL_025D: brfalse => Label26
IL_0262: Label25
IL_0262: ldloc.1
IL_0263: brtrue => Label27
IL_0268: ldloc.2
IL_0269: brtrue => Label28
IL_026E: Label27
IL_026E: ldloc.s 4 (System.Int32)
IL_0270: ldc.i4.1
IL_0271: bne.un => Label29
IL_0276: Label26
IL_0276: Label28
IL_0276: ldloc.0
IL_0277: ldc.i8 8589934592
IL_0280: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0285: stloc.0
IL_0286: Label29
IL_0286: ldc.i4.0
IL_0287: stloc.s 4 (System.Int32)
IL_0289: ldc.i4.0
IL_028A: stloc.1
IL_028B: ldc.i4.0
IL_028C: stloc.2
IL_028D: ldc.i4.0
IL_028E: stloc.s 10 (System.Int32)
IL_0290: br => Label30
IL_0295: Label38
IL_0295: ldarg.2
IL_0296: ldloc.s 10 (System.Int32)
IL_0298: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_029D: stloc.s 11 (System.UInt16)
IL_029F: ldloc.s 11 (System.UInt16)
IL_02A1: brfalse => Label31
IL_02A6: ldc.i4.0
IL_02A7: stloc.s 12 (System.Int32)
IL_02A9: ldc.i4.0
IL_02AA: stloc.s 13 (System.Int32)
IL_02AC: ldloc.s 5 (NetManager)
IL_02AE: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02B3: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02B8: ldloc.s 11 (System.UInt16)
IL_02BA: ldelema NetSegment
IL_02BF: ldloc.s 11 (System.UInt16)
IL_02C1: ldc.i4.s 33
IL_02C3: ldc.i4 65536
IL_02C8: ldloca.s 12 (System.Int32)
IL_02CA: ldloca.s 13 (System.Int32)
IL_02CC: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_02D1: ldloc.s 12 (System.Int32)
IL_02D3: brtrue => Label32
IL_02D8: ldloc.s 13 (System.Int32)
IL_02DA: brfalse => Label33
IL_02DF: Label32
IL_02DF: ldloc.s 4 (System.Int32)
IL_02E1: ldc.i4.1
IL_02E2: add
IL_02E3: stloc.s 4 (System.Int32)
IL_02E5: ldloc.s 12 (System.Int32)
IL_02E7: brfalse => Label34
IL_02EC: ldc.i4.1
IL_02ED: stloc.s 12 (System.Int32)
IL_02EF: Label34
IL_02EF: ldloc.s 13 (System.Int32)
IL_02F1: brfalse => Label35
IL_02F6: ldc.i4.1
IL_02F7: stloc.s 13 (System.Int32)
IL_02F9: Label35
IL_02F9: ldloc.s 5 (NetManager)
IL_02FB: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0300: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0305: ldloc.s 11 (System.UInt16)
IL_0307: ldelema NetSegment
IL_030C: ldfld System.UInt16 NetSegment::m_endNode
IL_0311: ldarg.1
IL_0312: bne.un => Label36
IL_0317: ldloc.1
IL_0318: ldloc.s 13 (System.Int32)
IL_031A: add
IL_031B: stloc.1
IL_031C: ldloc.2
IL_031D: ldloc.s 12 (System.Int32)
IL_031F: add
IL_0320: stloc.2
IL_0321: br => Label37
IL_0326: Label36
IL_0326: ldloc.1
IL_0327: ldloc.s 12 (System.Int32)
IL_0329: add
IL_032A: stloc.1
IL_032B: ldloc.2
IL_032C: ldloc.s 13 (System.Int32)
IL_032E: add
IL_032F: stloc.2
IL_0330: Label31
IL_0330: Label33
IL_0330: Label37
IL_0330: ldloc.s 10 (System.Int32)
IL_0332: ldc.i4.1
IL_0333: add
IL_0334: stloc.s 10 (System.Int32)
IL_0336: Label30
IL_0336: ldloc.s 10 (System.Int32)
IL_0338: ldc.i4.8
IL_0339: blt => Label38
IL_033E: ldloc.1
IL_033F: brfalse => Label39
IL_0344: ldloc.2
IL_0345: brfalse => Label40
IL_034A: Label39
IL_034A: ldloc.1
IL_034B: brtrue => Label41
IL_0350: ldloc.2
IL_0351: brtrue => Label42
IL_0356: Label41
IL_0356: ldloc.s 4 (System.Int32)
IL_0358: ldc.i4.1
IL_0359: bne.un => Label43
IL_035E: Label40
IL_035E: Label42
IL_035E: ldloc.0
IL_035F: ldc.i8 72057594037927936
IL_0368: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_036D: stloc.0
IL_036E: Label15
IL_036E: Label43
IL_036E: ldarg.2
IL_036F: ldloc.0
IL_0370: stfld Problem NetNode::m_problems
IL_0375: // end original
IL_0375: ret
DONE

### Patch: virtual System.Void RoadBaseAI::UpdateLanes(System.UInt16 segmentID,


NetSegment& data, System.Boolean loading)
### Replacement: static System.Void RoadBaseAI::UpdateLanes_Patch0(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<NetManager>::get_instance()
IL_0005: stloc.0
IL_0006: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::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<NetNode> NetManager::m_nodes
IL_0176: ldfld NetNode[] Array16`1<NetNode>::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: ldarg.2
IL_0192: ldfld UnityEngine.Vector3 NetSegment::m_endDirection
IL_0197: call static UnityEngine.Vector3
UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a)
IL_019C: ldloca.s 12 (System.Int32)
IL_019E: ldloca.s 13 (System.Int32)
IL_01A0: ldloca.s 14 (System.Int32)
IL_01A2: ldloca.s 15 (System.Int32)
IL_01A4: ldloca.s 16 (System.Int32)
IL_01A6: ldloca.s 17 (System.Int32)
IL_01A8: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, Direction directions, LaneType laneTypes, VehicleType
vehicleTypes, UnityEngine.Vector3 direction, System.Int32& left, System.Int32&
forward, System.Int32& right, System.Int32& left2, System.Int32& forward2,
System.Int32& right2)
IL_01AD: ldloc.0
IL_01AE: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_01B3: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_01B8: ldarg.2
IL_01B9: ldfld System.UInt16 NetSegment::m_endNode
IL_01BE: ldelema NetNode
IL_01C3: ldfld Flags NetNode::m_flags
IL_01C8: ldc.i4 1136
IL_01CD: and
IL_01CE: brfalse => Label2
IL_01D3: ldloc.s 12 (System.Int32)
IL_01D5: ldloc.s 13 (System.Int32)
IL_01D7: add
IL_01D8: ldloc.s 14 (System.Int32)
IL_01DA: add
IL_01DB: brtrue => Label3
IL_01E0: ldc.i4.1
IL_01E1: stloc.s 19 (System.Boolean)
IL_01E3: br => Label4
IL_01E8: Label3
IL_01E8: ldc.i4.1
IL_01E9: stloc.s 18 (System.Boolean)
IL_01EB: Label2
IL_01EB: Label4
IL_01EB: ldc.i4.0
IL_01EC: stloc.s 20 (System.Int32)
IL_01EE: ldc.i4.0
IL_01EF: stloc.s 21 (System.Int32)
IL_01F1: ldc.i4.0
IL_01F2: stloc.s 22 (System.Int32)
IL_01F4: ldc.i4.0
IL_01F5: stloc.s 23 (System.Int32)
IL_01F7: ldc.i4.0
IL_01F8: stloc.s 24 (System.Int32)
IL_01FA: ldc.i4.0
IL_01FB: stloc.s 25 (System.Int32)
IL_01FD: ldc.i4.0
IL_01FE: stloc.s 26 (System.Boolean)
IL_0200: ldc.i4.0
IL_0201: stloc.s 27 (System.Boolean)
IL_0203: ldloc.0
IL_0204: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0209: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_020E: ldarg.2
IL_020F: ldfld System.UInt16 NetSegment::m_startNode
IL_0214: ldelema NetNode
IL_0219: ldarg.2
IL_021A: ldfld System.UInt16 NetSegment::m_startNode
IL_021F: ldarg.1
IL_0220: ldc.i4.1
IL_0221: ldc.i4.s 33
IL_0223: ldc.i4.1
IL_0224: ldarg.2
IL_0225: ldfld UnityEngine.Vector3 NetSegment::m_startDirection
IL_022A: call static UnityEngine.Vector3
UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a)
IL_022F: ldloca.s 20 (System.Int32)
IL_0231: ldloca.s 21 (System.Int32)
IL_0233: ldloca.s 22 (System.Int32)
IL_0235: ldloca.s 23 (System.Int32)
IL_0237: ldloca.s 24 (System.Int32)
IL_0239: ldloca.s 25 (System.Int32)
IL_023B: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, Direction directions, LaneType laneTypes, VehicleType
vehicleTypes, UnityEngine.Vector3 direction, System.Int32& left, System.Int32&
forward, System.Int32& right, System.Int32& left2, System.Int32& forward2,
System.Int32& right2)
IL_0240: ldloc.0
IL_0241: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0246: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_024B: ldarg.2
IL_024C: ldfld System.UInt16 NetSegment::m_startNode
IL_0251: ldelema NetNode
IL_0256: ldfld Flags NetNode::m_flags
IL_025B: ldc.i4 1136
IL_0260: and
IL_0261: brfalse => Label5
IL_0266: ldloc.s 20 (System.Int32)
IL_0268: ldloc.s 21 (System.Int32)
IL_026A: add
IL_026B: ldloc.s 22 (System.Int32)
IL_026D: add
IL_026E: brtrue => Label6
IL_0273: ldc.i4.1
IL_0274: stloc.s 27 (System.Boolean)
IL_0276: br => Label7
IL_027B: Label6
IL_027B: ldc.i4.1
IL_027C: stloc.s 26 (System.Boolean)
IL_027E: Label5
IL_027E: Label7
IL_027E: ldc.i4.0
IL_027F: stloc.s 28 (NetLane+Flags)
IL_0281: ldloc.s 15 (System.Int32)
IL_0283: brfalse => Label8
IL_0288: ldloc.s 12 (System.Int32)
IL_028A: brtrue => Label9
IL_028F: ldloc.s 28 (NetLane+Flags)
IL_0291: ldarg.2
IL_0292: ldfld Flags NetSegment::m_flags
IL_0297: ldc.i4.s 16
IL_0299: and
IL_029A: brfalse => Label10
IL_029F: ldc.i4 4096
IL_02A4: br => Label11
IL_02A9: Label10
IL_02A9: ldc.i4 16384
IL_02AE: Label11
IL_02AE: or
IL_02AF: stloc.s 28 (NetLane+Flags)
IL_02B1: Label8
IL_02B1: Label9
IL_02B1: ldloc.s 17 (System.Int32)
IL_02B3: brfalse => Label12
IL_02B8: ldloc.s 14 (System.Int32)
IL_02BA: brtrue => Label13
IL_02BF: ldloc.s 28 (NetLane+Flags)
IL_02C1: ldarg.2
IL_02C2: ldfld Flags NetSegment::m_flags
IL_02C7: ldc.i4.s 16
IL_02C9: and
IL_02CA: brfalse => Label14
IL_02CF: ldc.i4 8192
IL_02D4: br => Label15
IL_02D9: Label14
IL_02D9: ldc.i4 32768
IL_02DE: Label15
IL_02DE: or
IL_02DF: stloc.s 28 (NetLane+Flags)
IL_02E1: Label12
IL_02E1: Label13
IL_02E1: ldloc.s 23 (System.Int32)
IL_02E3: brfalse => Label16
IL_02E8: ldloc.s 20 (System.Int32)
IL_02EA: brtrue => Label17
IL_02EF: ldloc.s 28 (NetLane+Flags)
IL_02F1: ldarg.2
IL_02F2: ldfld Flags NetSegment::m_flags
IL_02F7: ldc.i4.s 16
IL_02F9: and
IL_02FA: brfalse => Label18
IL_02FF: ldc.i4 16384
IL_0304: br => Label19
IL_0309: Label18
IL_0309: ldc.i4 4096
IL_030E: Label19
IL_030E: or
IL_030F: stloc.s 28 (NetLane+Flags)
IL_0311: Label16
IL_0311: Label17
IL_0311: ldloc.s 25 (System.Int32)
IL_0313: brfalse => Label20
IL_0318: ldloc.s 22 (System.Int32)
IL_031A: brtrue => Label21
IL_031F: ldloc.s 28 (NetLane+Flags)
IL_0321: ldarg.2
IL_0322: ldfld Flags NetSegment::m_flags
IL_0327: ldc.i4.s 16
IL_0329: and
IL_032A: brfalse => Label22
IL_032F: ldc.i4 32768
IL_0334: br => Label23
IL_0339: Label22
IL_0339: ldc.i4 8192
IL_033E: Label23
IL_033E: or
IL_033F: stloc.s 28 (NetLane+Flags)
IL_0341: Label20
IL_0341: Label21
IL_0341: ldarg.2
IL_0342: ldfld Flags NetSegment::m_flags
IL_0347: ldc.i4 1073741824
IL_034C: and
IL_034D: brfalse => Label24
IL_0352: ldloc.s 28 (NetLane+Flags)
IL_0354: ldarg.2
IL_0355: ldfld Flags NetSegment::m_flags
IL_035A: ldc.i4.s 16
IL_035C: and
IL_035D: brfalse => Label25
IL_0362: ldc.i4 2048
IL_0367: br => Label26
IL_036C: Label25
IL_036C: ldc.i4 1024
IL_0371: Label26
IL_0371: or
IL_0372: stloc.s 28 (NetLane+Flags)
IL_0374: Label24
IL_0374: ldarg.2
IL_0375: ldfld Flags NetSegment::m_flags
IL_037A: ldc.i4 -2147483648
IL_037F: and
IL_0380: brfalse => Label27
IL_0385: ldloc.s 28 (NetLane+Flags)
IL_0387: ldarg.2
IL_0388: ldfld Flags NetSegment::m_flags
IL_038D: ldc.i4.s 16
IL_038F: and
IL_0390: brfalse => Label28
IL_0395: ldc.i4 1024
IL_039A: br => Label29
IL_039F: Label28
IL_039F: ldc.i4 2048
IL_03A4: Label29
IL_03A4: or
IL_03A5: stloc.s 28 (NetLane+Flags)
IL_03A7: Label27
IL_03A7: ldc.r4 0
IL_03AC: stloc.s 29 (System.Single)
IL_03AE: ldc.r4 0
IL_03B3: stloc.s 30 (System.Single)
IL_03B5: ldc.i4.0
IL_03B6: stloc.s 31 (System.UInt32)
IL_03B8: ldarg.2
IL_03B9: ldfld System.UInt32 NetSegment::m_lanes
IL_03BE: stloc.s 32 (System.UInt32)
IL_03C0: ldc.i4.0
IL_03C1: stloc.s 33 (System.Int32)
IL_03C3: br => Label30
IL_03C8: Label89
IL_03C8: ldloc.s 32 (System.UInt32)
IL_03CA: brtrue => Label31
IL_03CF: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_03D4: ldloca.s 32 (System.UInt32)
IL_03D6: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_03DB: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_03E0: ldarg.1
IL_03E1: ldc.i4.1
IL_03E2: callvirt System.Boolean NetManager::CreateLanes(System.UInt32&
firstLane, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segment,
System.Int32 count)
IL_03E7: brfalse => Label32
IL_03EC: ldloc.s 31 (System.UInt32)
IL_03EE: brfalse => Label33
IL_03F3: ldloc.0
IL_03F4: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_03F9: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_03FE: ldloc.s 31 (System.UInt32)
IL_0400: conv.u
IL_0401: ldelema NetLane
IL_0406: ldloc.s 32 (System.UInt32)
IL_0408: stfld System.UInt32 NetLane::m_nextLane
IL_040D: br => Label34
IL_0412: Label33
IL_0412: ldarg.2
IL_0413: ldloc.s 32 (System.UInt32)
IL_0415: stfld System.UInt32 NetSegment::m_lanes
IL_041A: Label34
IL_041A: br => Label35
IL_041F: Label32
IL_041F: br => Label36
IL_0424: Label31
IL_0424: Label35
IL_0424: ldarg.0
IL_0425: ldfld NetInfo NetAI::m_info
IL_042A: ldfld Lane[] NetInfo::m_lanes
IL_042F: ldloc.s 33 (System.Int32)
IL_0431: ldelem.ref
IL_0432: stloc.s 34 (NetInfo+Lane)
IL_0434: ldloc.s 34 (NetInfo+Lane)
IL_0436: ldfld System.Single Lane::m_position
IL_043B: ldarg.0
IL_043C: ldfld NetInfo NetAI::m_info
IL_0441: ldfld System.Single NetInfo::m_halfWidth
IL_0446: ldc.r4 2
IL_044B: mul
IL_044C: div
IL_044D: ldc.r4 0.5
IL_0452: add
IL_0453: stloc.s 35 (System.Single)
IL_0455: ldarg.2
IL_0456: ldfld Flags NetSegment::m_flags
IL_045B: ldc.i4.s 16
IL_045D: and
IL_045E: brfalse => Label37
IL_0463: ldc.r4 1
IL_0468: ldloc.s 35 (System.Single)
IL_046A: sub
IL_046B: stloc.s 35 (System.Single)
IL_046D: Label37
IL_046D: ldloc.2
IL_046E: ldloc.3
IL_046F: ldloc.2
IL_0470: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0475: ldloc.s 35 (System.Single)
IL_0477: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_047C: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0481: stloc.s 36 (UnityEngine.Vector3)
IL_0483: ldloc.s 6 (UnityEngine.Vector3)
IL_0485: ldloc.s 7 (UnityEngine.Vector3)
IL_0487: ldloc.s 35 (System.Single)
IL_0489: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_048E: stloc.s 37 (UnityEngine.Vector3)
IL_0490: ldloc.s 4 (UnityEngine.Vector3)
IL_0492: ldloc.s 5 (UnityEngine.Vector3)
IL_0494: ldloc.s 4 (UnityEngine.Vector3)
IL_0496: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_049B: ldloc.s 35 (System.Single)
IL_049D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_04A2: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_04A7: stloc.s 38 (UnityEngine.Vector3)
IL_04A9: ldloc.s 8 (UnityEngine.Vector3)
IL_04AB: ldloc.s 9 (UnityEngine.Vector3)
IL_04AD: ldloc.s 35 (System.Single)
IL_04AF: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_04B4: stloc.s 39 (UnityEngine.Vector3)
IL_04B6: ldloca.s 36 (UnityEngine.Vector3)
IL_04B8: dup
IL_04B9: ldfld System.Single UnityEngine.Vector3::y
IL_04BE: ldloc.s 34 (NetInfo+Lane)
IL_04C0: ldfld System.Single Lane::m_verticalOffset
IL_04C5: add
IL_04C6: stfld System.Single UnityEngine.Vector3::y
IL_04CB: ldloca.s 38 (UnityEngine.Vector3)
IL_04CD: dup
IL_04CE: ldfld System.Single UnityEngine.Vector3::y
IL_04D3: ldloc.s 34 (NetInfo+Lane)
IL_04D5: ldfld System.Single Lane::m_verticalOffset
IL_04DA: add
IL_04DB: stfld System.Single UnityEngine.Vector3::y
IL_04E0: ldloc.s 36 (UnityEngine.Vector3)
IL_04E2: ldloc.s 37 (UnityEngine.Vector3)
IL_04E4: ldloc.s 38 (UnityEngine.Vector3)
IL_04E6: ldloc.s 39 (UnityEngine.Vector3)
IL_04E8: ldloc.s 10 (System.Boolean)
IL_04EA: ldloc.s 11 (System.Boolean)
IL_04EC: ldloca.s 40 (UnityEngine.Vector3)
IL_04EE: ldloca.s 41 (UnityEngine.Vector3)
IL_04F0: 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_04F5: ldloc.0
IL_04F6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_04FB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0500: ldloc.s 32 (System.UInt32)
IL_0502: conv.u
IL_0503: ldelema NetLane
IL_0508: ldfld System.UInt16 NetLane::m_flags
IL_050D: stloc.s 42 (NetLane+Flags)
IL_050F: ldloc.s 28 (NetLane+Flags)
IL_0511: stloc.s 43 (NetLane+Flags)
IL_0513: ldloc.s 42 (NetLane+Flags)
IL_0515: ldc.i4 -64753
IL_051A: and
IL_051B: stloc.s 42 (NetLane+Flags)
IL_051D: ldloc.s 34 (NetInfo+Lane)
IL_051F: ldfld Direction Lane::m_finalDirection
IL_0524: ldc.i4.3
IL_0525: and
IL_0526: conv.u1
IL_0527: ldc.i4.2
IL_0528: bne.un => Label38
IL_052D: ldloc.s 43 (NetLane+Flags)
IL_052F: ldc.i4 -2049
IL_0534: and
IL_0535: stloc.s 43 (NetLane+Flags)
IL_0537: Label38
IL_0537: ldloc.s 34 (NetInfo+Lane)
IL_0539: ldfld Direction Lane::m_finalDirection
IL_053E: ldc.i4.3
IL_053F: and
IL_0540: conv.u1
IL_0541: ldc.i4.1
IL_0542: bne.un => Label39
IL_0547: ldloc.s 43 (NetLane+Flags)
IL_0549: ldc.i4 -1025
IL_054E: and
IL_054F: stloc.s 43 (NetLane+Flags)
IL_0551: Label39
IL_0551: ldloc.s 34 (NetInfo+Lane)
IL_0553: ldfld VehicleType Lane::m_vehicleType
IL_0558: ldc.i4 2048
IL_055D: and
IL_055E: brfalse => Label40
IL_0563: ldloc.s 43 (NetLane+Flags)
IL_0565: ldc.i4 -3073
IL_056A: and
IL_056B: stloc.s 43 (NetLane+Flags)
IL_056D: Label40
IL_056D: ldloc.s 42 (NetLane+Flags)
IL_056F: ldloc.s 43 (NetLane+Flags)
IL_0571: or
IL_0572: stloc.s 42 (NetLane+Flags)
IL_0574: ldloc.1
IL_0575: brfalse => Label41
IL_057A: ldloc.s 42 (NetLane+Flags)
IL_057C: ldc.i4.4
IL_057D: or
IL_057E: stloc.s 42 (NetLane+Flags)
IL_0580: br => Label42
IL_0585: Label41
IL_0585: ldloc.s 42 (NetLane+Flags)
IL_0587: ldc.i4.s -5
IL_0589: and
IL_058A: stloc.s 42 (NetLane+Flags)
IL_058C: Label42
IL_058C: ldc.i4.0
IL_058D: stloc.s 44 (System.Int32)
IL_058F: ldc.i4 255
IL_0594: stloc.s 45 (System.Int32)
IL_0596: ldloc.s 34 (NetInfo+Lane)
IL_0598: ldfld LaneType Lane::m_laneType
IL_059D: ldc.i4.s 33
IL_059F: and
IL_05A0: conv.u1
IL_05A1: brfalse => Label43
IL_05A6: ldloc.s 34 (NetInfo+Lane)
IL_05A8: ldfld Direction Lane::m_finalDirection
IL_05AD: ldc.i4.1
IL_05AE: and
IL_05AF: conv.u1
IL_05B0: ldc.i4.0
IL_05B1: ceq
IL_05B3: ldc.i4.0
IL_05B4: ceq
IL_05B6: ldarg.2
IL_05B7: ldfld Flags NetSegment::m_flags
IL_05BC: ldc.i4.s 16
IL_05BE: and
IL_05BF: ldc.i4.0
IL_05C0: ceq
IL_05C2: ceq
IL_05C4: stloc.s 46 (System.Boolean)
IL_05C6: ldloc.s 46 (System.Boolean)
IL_05C8: brfalse => Label44
IL_05CD: ldloc.s 12 (System.Int32)
IL_05CF: stloc.s 47 (System.Int32)
IL_05D1: ldloc.s 13 (System.Int32)
IL_05D3: stloc.s 48 (System.Int32)
IL_05D5: ldloc.s 14 (System.Int32)
IL_05D7: stloc.s 49 (System.Int32)
IL_05D9: br => Label45
IL_05DE: Label44
IL_05DE: ldloc.s 20 (System.Int32)
IL_05E0: stloc.s 47 (System.Int32)
IL_05E2: ldloc.s 21 (System.Int32)
IL_05E4: stloc.s 48 (System.Int32)
IL_05E6: ldloc.s 22 (System.Int32)
IL_05E8: stloc.s 49 (System.Int32)
IL_05EA: Label45
IL_05EA: ldloc.s 34 (NetInfo+Lane)
IL_05EC: ldfld Direction Lane::m_finalDirection
IL_05F1: ldc.i4.1
IL_05F2: and
IL_05F3: conv.u1
IL_05F4: brfalse => Label46
IL_05F9: ldloc.s 34 (NetInfo+Lane)
IL_05FB: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0600: stloc.s 50 (System.Int32)
IL_0602: ldloc.s 34 (NetInfo+Lane)
IL_0604: ldfld System.Int32 Lane::m_similarLaneCount
IL_0609: ldloc.s 34 (NetInfo+Lane)
IL_060B: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0610: sub
IL_0611: ldc.i4.1
IL_0612: sub
IL_0613: stloc.s 51 (System.Int32)
IL_0615: br => Label47
IL_061A: Label46
IL_061A: ldloc.s 34 (NetInfo+Lane)
IL_061C: ldfld System.Int32 Lane::m_similarLaneCount
IL_0621: ldloc.s 34 (NetInfo+Lane)
IL_0623: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0628: sub
IL_0629: ldc.i4.1
IL_062A: sub
IL_062B: stloc.s 50 (System.Int32)
IL_062D: ldloc.s 34 (NetInfo+Lane)
IL_062F: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0634: stloc.s 51 (System.Int32)
IL_0636: Label47
IL_0636: ldloc.s 47 (System.Int32)
IL_0638: ldloc.s 48 (System.Int32)
IL_063A: add
IL_063B: ldloc.s 49 (System.Int32)
IL_063D: add
IL_063E: stloc.s 52 (System.Int32)
IL_0640: ldc.i4 255
IL_0645: stloc.s 44 (System.Int32)
IL_0647: ldc.i4.0
IL_0648: stloc.s 45 (System.Int32)
IL_064A: ldloc.s 52 (System.Int32)
IL_064C: brfalse => Label48
IL_0651: ldloc.s 34 (NetInfo+Lane)
IL_0653: ldfld System.Int32 Lane::m_similarLaneCount
IL_0658: ldloc.s 52 (System.Int32)
IL_065A: ble => Label49
IL_065F: ldloc.s 52 (System.Int32)
IL_0661: ldc.i4.0
IL_0662: ble => Label50
IL_0667: ldloc.s 52 (System.Int32)
IL_0669: ldloc.s 50 (System.Int32)
IL_066B: mul
IL_066C: ldloc.s 34 (NetInfo+Lane)
IL_066E: ldfld System.Int32 Lane::m_similarLaneCount
IL_0673: div
IL_0674: stloc.s 44 (System.Int32)
IL_0676: ldloc.s 52 (System.Int32)
IL_0678: ldloc.s 52 (System.Int32)
IL_067A: ldloc.s 51 (System.Int32)
IL_067C: mul
IL_067D: ldloc.s 34 (NetInfo+Lane)
IL_067F: ldfld System.Int32 Lane::m_similarLaneCount
IL_0684: div
IL_0685: sub
IL_0686: stloc.s 45 (System.Int32)
IL_0688: ldloc.s 42 (NetLane+Flags)
IL_068A: ldc.i4 128
IL_068F: or
IL_0690: stloc.s 42 (NetLane+Flags)
IL_0692: ldloc.s 44 (System.Int32)
IL_0694: ldloc.s 47 (System.Int32)
IL_0696: bge => Label51
IL_069B: ldloc.s 42 (NetLane+Flags)
IL_069D: ldc.i4.s 32
IL_069F: or
IL_06A0: stloc.s 42 (NetLane+Flags)
IL_06A2: Label51
IL_06A2: ldloc.s 52 (System.Int32)
IL_06A4: ldloc.s 45 (System.Int32)
IL_06A6: sub
IL_06A7: ldloc.s 49 (System.Int32)
IL_06A9: bge => Label52
IL_06AE: ldloc.s 42 (NetLane+Flags)
IL_06B0: ldc.i4.s 64
IL_06B2: or
IL_06B3: stloc.s 42 (NetLane+Flags)
IL_06B5: Label52
IL_06B5: ldloc.s 48 (System.Int32)
IL_06B7: brfalse => Label53
IL_06BC: ldloc.s 44 (System.Int32)
IL_06BE: ldloc.s 47 (System.Int32)
IL_06C0: ldloc.s 48 (System.Int32)
IL_06C2: add
IL_06C3: bge => Label54
IL_06C8: ldloc.s 45 (System.Int32)
IL_06CA: ldloc.s 47 (System.Int32)
IL_06CC: ble => Label55
IL_06D1: ldloc.s 42 (NetLane+Flags)
IL_06D3: ldc.i4.s 16
IL_06D5: or
IL_06D6: stloc.s 42 (NetLane+Flags)
IL_06D8: Label53
IL_06D8: Label54
IL_06D8: Label55
IL_06D8: br => Label56
IL_06DD: Label49
IL_06DD: Label50
IL_06DD: ldloc.s 34 (NetInfo+Lane)
IL_06DF: ldfld System.Int32 Lane::m_similarLaneCount
IL_06E4: ldloc.s 52 (System.Int32)
IL_06E6: blt => Label57
IL_06EB: ldloc.s 47 (System.Int32)
IL_06ED: stloc.s 53 (System.Int32)
IL_06EF: ldloc.s 49 (System.Int32)
IL_06F1: stloc.s 54 (System.Int32)
IL_06F3: br => Label58
IL_06F8: Label57
IL_06F8: ldloc.s 47 (System.Int32)
IL_06FA: ldloc.s 34 (NetInfo+Lane)
IL_06FC: ldfld System.Int32 Lane::m_similarLaneCount
IL_0701: mul
IL_0702: ldloc.s 52 (System.Int32)
IL_0704: ldloc.s 48 (System.Int32)
IL_0706: ldc.i4.1
IL_0707: shr
IL_0708: add
IL_0709: div
IL_070A: stloc.s 53 (System.Int32)
IL_070C: ldloc.s 49 (System.Int32)
IL_070E: ldloc.s 34 (NetInfo+Lane)
IL_0710: ldfld System.Int32 Lane::m_similarLaneCount
IL_0715: mul
IL_0716: ldloc.s 52 (System.Int32)
IL_0718: ldloc.s 48 (System.Int32)
IL_071A: ldc.i4.1
IL_071B: shr
IL_071C: add
IL_071D: div
IL_071E: stloc.s 54 (System.Int32)
IL_0720: Label58
IL_0720: ldloc.s 53 (System.Int32)
IL_0722: stloc.s 55 (System.Int32)
IL_0724: ldloc.s 34 (NetInfo+Lane)
IL_0726: ldfld System.Int32 Lane::m_similarLaneCount
IL_072B: ldloc.s 53 (System.Int32)
IL_072D: sub
IL_072E: ldloc.s 54 (System.Int32)
IL_0730: sub
IL_0731: stloc.s 56 (System.Int32)
IL_0733: ldloc.s 54 (System.Int32)
IL_0735: stloc.s 57 (System.Int32)
IL_0737: ldloc.s 56 (System.Int32)
IL_0739: ldc.i4.0
IL_073A: ble => Label59
IL_073F: ldloc.s 47 (System.Int32)
IL_0741: ldloc.s 53 (System.Int32)
IL_0743: ble => Label60
IL_0748: ldloc.s 55 (System.Int32)
IL_074A: ldc.i4.1
IL_074B: add
IL_074C: stloc.s 55 (System.Int32)
IL_074E: Label60
IL_074E: ldloc.s 49 (System.Int32)
IL_0750: ldloc.s 54 (System.Int32)
IL_0752: ble => Label61
IL_0757: ldloc.s 57 (System.Int32)
IL_0759: ldc.i4.1
IL_075A: add
IL_075B: stloc.s 57 (System.Int32)
IL_075D: Label59
IL_075D: Label61
IL_075D: ldloc.s 50 (System.Int32)
IL_075F: ldloc.s 55 (System.Int32)
IL_0761: bge => Label62
IL_0766: ldloc.s 50 (System.Int32)
IL_0768: ldloc.s 47 (System.Int32)
IL_076A: mul
IL_076B: ldloc.s 55 (System.Int32)
IL_076D: add
IL_076E: ldc.i4.1
IL_076F: sub
IL_0770: ldloc.s 55 (System.Int32)
IL_0772: div
IL_0773: stloc.s 58 (System.Int32)
IL_0775: ldloc.s 50 (System.Int32)
IL_0777: ldc.i4.1
IL_0778: add
IL_0779: ldloc.s 47 (System.Int32)
IL_077B: mul
IL_077C: ldloc.s 55 (System.Int32)
IL_077E: add
IL_077F: ldc.i4.1
IL_0780: sub
IL_0781: ldloc.s 55 (System.Int32)
IL_0783: div
IL_0784: stloc.s 59 (System.Int32)
IL_0786: ldloc.s 59 (System.Int32)
IL_0788: ldloc.s 58 (System.Int32)
IL_078A: ble => Label63
IL_078F: ldloc.s 42 (NetLane+Flags)
IL_0791: ldc.i4.s 32
IL_0793: or
IL_0794: stloc.s 42 (NetLane+Flags)
IL_0796: ldloc.s 44 (System.Int32)
IL_0798: ldloc.s 58 (System.Int32)
IL_079A: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_079F: stloc.s 44 (System.Int32)
IL_07A1: ldloc.s 45 (System.Int32)
IL_07A3: ldloc.s 59 (System.Int32)
IL_07A5: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_07AA: stloc.s 45 (System.Int32)
IL_07AC: Label62
IL_07AC: Label63
IL_07AC: ldloc.s 50 (System.Int32)
IL_07AE: ldloc.s 53 (System.Int32)
IL_07B0: blt => Label64
IL_07B5: ldloc.s 51 (System.Int32)
IL_07B7: ldloc.s 54 (System.Int32)
IL_07B9: blt => Label65
IL_07BE: ldloc.s 48 (System.Int32)
IL_07C0: brfalse => Label66
IL_07C5: ldloc.s 34 (NetInfo+Lane)
IL_07C7: ldfld System.Int32 Lane::m_similarLaneCount
IL_07CC: ldloc.s 52 (System.Int32)
IL_07CE: ble => Label67
IL_07D3: ldloc.s 53 (System.Int32)
IL_07D5: ldc.i4.1
IL_07D6: add
IL_07D7: stloc.s 53 (System.Int32)
IL_07D9: Label67
IL_07D9: ldloc.s 47 (System.Int32)
IL_07DB: ldloc.s 50 (System.Int32)
IL_07DD: ldloc.s 53 (System.Int32)
IL_07DF: sub
IL_07E0: ldloc.s 48 (System.Int32)
IL_07E2: mul
IL_07E3: ldloc.s 56 (System.Int32)
IL_07E5: add
IL_07E6: ldc.i4.1
IL_07E7: sub
IL_07E8: ldloc.s 56 (System.Int32)
IL_07EA: div
IL_07EB: add
IL_07EC: stloc.s 60 (System.Int32)
IL_07EE: ldloc.s 47 (System.Int32)
IL_07F0: ldloc.s 50 (System.Int32)
IL_07F2: ldc.i4.1
IL_07F3: add
IL_07F4: ldloc.s 53 (System.Int32)
IL_07F6: sub
IL_07F7: ldloc.s 48 (System.Int32)
IL_07F9: mul
IL_07FA: ldloc.s 56 (System.Int32)
IL_07FC: add
IL_07FD: ldc.i4.1
IL_07FE: sub
IL_07FF: ldloc.s 56 (System.Int32)
IL_0801: div
IL_0802: add
IL_0803: stloc.s 61 (System.Int32)
IL_0805: ldloc.s 61 (System.Int32)
IL_0807: ldloc.s 60 (System.Int32)
IL_0809: ble => Label68
IL_080E: ldloc.s 42 (NetLane+Flags)
IL_0810: ldc.i4.s 16
IL_0812: or
IL_0813: stloc.s 42 (NetLane+Flags)
IL_0815: ldloc.s 44 (System.Int32)
IL_0817: ldloc.s 60 (System.Int32)
IL_0819: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_081E: stloc.s 44 (System.Int32)
IL_0820: ldloc.s 45 (System.Int32)
IL_0822: ldloc.s 61 (System.Int32)
IL_0824: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0829: stloc.s 45 (System.Int32)
IL_082B: Label64
IL_082B: Label65
IL_082B: Label66
IL_082B: Label68
IL_082B: ldloc.s 51 (System.Int32)
IL_082D: ldloc.s 57 (System.Int32)
IL_082F: bge => Label69
IL_0834: ldloc.s 52 (System.Int32)
IL_0836: ldloc.s 51 (System.Int32)
IL_0838: ldc.i4.1
IL_0839: add
IL_083A: ldloc.s 49 (System.Int32)
IL_083C: mul
IL_083D: ldloc.s 57 (System.Int32)
IL_083F: add
IL_0840: ldc.i4.1
IL_0841: sub
IL_0842: ldloc.s 57 (System.Int32)
IL_0844: div
IL_0845: sub
IL_0846: stloc.s 62 (System.Int32)
IL_0848: ldloc.s 52 (System.Int32)
IL_084A: ldloc.s 51 (System.Int32)
IL_084C: ldloc.s 49 (System.Int32)
IL_084E: mul
IL_084F: ldloc.s 57 (System.Int32)
IL_0851: add
IL_0852: ldc.i4.1
IL_0853: sub
IL_0854: ldloc.s 57 (System.Int32)
IL_0856: div
IL_0857: sub
IL_0858: stloc.s 63 (System.Int32)
IL_085A: ldloc.s 63 (System.Int32)
IL_085C: ldloc.s 62 (System.Int32)
IL_085E: ble => Label70
IL_0863: ldloc.s 42 (NetLane+Flags)
IL_0865: ldc.i4.s 64
IL_0867: or
IL_0868: stloc.s 42 (NetLane+Flags)
IL_086A: ldloc.s 44 (System.Int32)
IL_086C: ldloc.s 62 (System.Int32)
IL_086E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0873: stloc.s 44 (System.Int32)
IL_0875: ldloc.s 45 (System.Int32)
IL_0877: ldloc.s 63 (System.Int32)
IL_0879: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_087E: stloc.s 45 (System.Int32)
IL_0880: Label69
IL_0880: Label70
IL_0880: ldarg.0
IL_0881: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_0886: brfalse => Label71
IL_088B: ldloc.s 42 (NetLane+Flags)
IL_088D: ldc.i4.s 96
IL_088F: and
IL_0890: ldc.i4.s 32
IL_0892: bne.un => Label72
IL_0897: ldloc.s 42 (NetLane+Flags)
IL_0899: ldc.i4.s 16
IL_089B: and
IL_089C: brfalse => Label73
IL_08A1: ldloc.s 48 (System.Int32)
IL_08A3: ldc.i4.2
IL_08A4: blt => Label74
IL_08A9: ldloc.s 47 (System.Int32)
IL_08AB: ldc.i4.1
IL_08AC: bne.un => Label75
IL_08B1: Label73
IL_08B1: ldloc.s 45 (System.Int32)
IL_08B3: ldloc.s 44 (System.Int32)
IL_08B5: ldc.i4.1
IL_08B6: add
IL_08B7: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_08BC: stloc.s 45 (System.Int32)
IL_08BE: Label74
IL_08BE: Label75
IL_08BE: br => Label76
IL_08C3: Label72
IL_08C3: ldloc.s 42 (NetLane+Flags)
IL_08C5: ldc.i4.s 96
IL_08C7: and
IL_08C8: ldc.i4.s 64
IL_08CA: bne.un => Label77
IL_08CF: ldloc.s 42 (NetLane+Flags)
IL_08D1: ldc.i4.s 16
IL_08D3: and
IL_08D4: brfalse => Label78
IL_08D9: ldloc.s 48 (System.Int32)
IL_08DB: ldc.i4.2
IL_08DC: blt => Label79
IL_08E1: ldloc.s 49 (System.Int32)
IL_08E3: ldc.i4.1
IL_08E4: bne.un => Label80
IL_08E9: Label78
IL_08E9: ldloc.s 44 (System.Int32)
IL_08EB: ldloc.s 45 (System.Int32)
IL_08ED: ldc.i4.1
IL_08EE: sub
IL_08EF: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_08F4: stloc.s 44 (System.Int32)
IL_08F6: Label48
IL_08F6: Label56
IL_08F6: Label71
IL_08F6: Label76
IL_08F6: Label77
IL_08F6: Label79
IL_08F6: Label80
IL_08F6: ldloc.s 46 (System.Boolean)
IL_08F8: brfalse => Label81
IL_08FD: ldloc.s 18 (System.Boolean)
IL_08FF: brfalse => Label82
IL_0904: ldloc.s 42 (NetLane+Flags)
IL_0906: ldc.i4.s -113
IL_0908: and
IL_0909: stloc.s 42 (NetLane+Flags)
IL_090B: br => Label83
IL_0910: Label82
IL_0910: ldloc.s 19 (System.Boolean)
IL_0912: brfalse => Label84
IL_0917: ldloc.s 42 (NetLane+Flags)
IL_0919: ldc.i4.s 16
IL_091B: or
IL_091C: stloc.s 42 (NetLane+Flags)
IL_091E: Label83
IL_091E: Label84
IL_091E: br => Label85
IL_0923: Label81
IL_0923: ldloc.s 26 (System.Boolean)
IL_0925: brfalse => Label86
IL_092A: ldloc.s 42 (NetLane+Flags)
IL_092C: ldc.i4.s -113
IL_092E: and
IL_092F: stloc.s 42 (NetLane+Flags)
IL_0931: br => Label87
IL_0936: Label86
IL_0936: ldloc.s 27 (System.Boolean)
IL_0938: brfalse => Label88
IL_093D: ldloc.s 42 (NetLane+Flags)
IL_093F: ldc.i4.s 16
IL_0941: or
IL_0942: stloc.s 42 (NetLane+Flags)
IL_0944: Label43
IL_0944: Label85
IL_0944: Label87
IL_0944: Label88
IL_0944: ldloc.0
IL_0945: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_094A: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_094F: ldloc.s 32 (System.UInt32)
IL_0951: conv.u
IL_0952: ldelema NetLane
IL_0957: ldloc.s 36 (UnityEngine.Vector3)
IL_0959: ldloc.s 40 (UnityEngine.Vector3)
IL_095B: ldloc.s 41 (UnityEngine.Vector3)
IL_095D: ldloc.s 38 (UnityEngine.Vector3)
IL_095F: newobj System.Void
ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3
_b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d)
IL_0964: stfld ColossalFramework.Math.Bezier3 NetLane::m_bezier
IL_0969: ldloc.0
IL_096A: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_096F: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0974: ldloc.s 32 (System.UInt32)
IL_0976: conv.u
IL_0977: ldelema NetLane
IL_097C: ldarg.1
IL_097D: stfld System.UInt16 NetLane::m_segment
IL_0982: ldloc.0
IL_0983: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0988: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_098D: ldloc.s 32 (System.UInt32)
IL_098F: conv.u
IL_0990: ldelema NetLane
IL_0995: ldloc.s 42 (NetLane+Flags)
IL_0997: conv.u2
IL_0998: stfld System.UInt16 NetLane::m_flags
IL_099D: ldloc.0
IL_099E: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09A3: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09A8: ldloc.s 32 (System.UInt32)
IL_09AA: conv.u
IL_09AB: ldelema NetLane
IL_09B0: ldloc.s 44 (System.Int32)
IL_09B2: conv.u1
IL_09B3: stfld System.Byte NetLane::m_firstTarget
IL_09B8: ldloc.0
IL_09B9: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09BE: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09C3: ldloc.s 32 (System.UInt32)
IL_09C5: conv.u
IL_09C6: ldelema NetLane
IL_09CB: ldloc.s 45 (System.Int32)
IL_09CD: conv.u1
IL_09CE: stfld System.Byte NetLane::m_lastTarget
IL_09D3: ldloc.s 29 (System.Single)
IL_09D5: ldloc.0
IL_09D6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09DB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09E0: ldloc.s 32 (System.UInt32)
IL_09E2: conv.u
IL_09E3: ldelema NetLane
IL_09E8: call System.Single NetLane::UpdateLength()
IL_09ED: add
IL_09EE: stloc.s 29 (System.Single)
IL_09F0: ldloc.s 30 (System.Single)
IL_09F2: ldc.r4 1
IL_09F7: add
IL_09F8: stloc.s 30 (System.Single)
IL_09FA: ldloc.s 32 (System.UInt32)
IL_09FC: stloc.s 31 (System.UInt32)
IL_09FE: ldloc.0
IL_09FF: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0A04: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0A09: ldloc.s 32 (System.UInt32)
IL_0A0B: conv.u
IL_0A0C: ldelema NetLane
IL_0A11: ldfld System.UInt32 NetLane::m_nextLane
IL_0A16: stloc.s 32 (System.UInt32)
IL_0A18: ldloc.s 33 (System.Int32)
IL_0A1A: ldc.i4.1
IL_0A1B: add
IL_0A1C: stloc.s 33 (System.Int32)
IL_0A1E: Label30
IL_0A1E: ldloc.s 33 (System.Int32)
IL_0A20: ldarg.0
IL_0A21: ldfld NetInfo NetAI::m_info
IL_0A26: ldfld Lane[] NetInfo::m_lanes
IL_0A2B: ldlen
IL_0A2C: conv.i4
IL_0A2D: blt => Label89
IL_0A32: Label36
IL_0A32: ldloc.s 30 (System.Single)
IL_0A34: ldc.r4 0
IL_0A39: beq => Label90
IL_0A3E: ldarg.2
IL_0A3F: ldloc.s 29 (System.Single)
IL_0A41: ldloc.s 30 (System.Single)
IL_0A43: div
IL_0A44: stfld System.Single NetSegment::m_averageLength
IL_0A49: br => Label91
IL_0A4E: Label90
IL_0A4E: ldarg.2
IL_0A4F: ldc.r4 0
IL_0A54: stfld System.Single NetSegment::m_averageLength
IL_0A59: Label91
IL_0A59: ldc.i4.0
IL_0A5A: stloc.s 64 (System.Boolean)
IL_0A5C: ldarg.2
IL_0A5D: ldfld System.Single NetSegment::m_averageLength
IL_0A62: ldc.r4 11
IL_0A67: bge.un => Label92
IL_0A6C: ldloc.0
IL_0A6D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0A72: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A77: ldarg.2
IL_0A78: ldfld System.UInt16 NetSegment::m_startNode
IL_0A7D: ldelema NetNode
IL_0A82: ldfld Flags NetNode::m_flags
IL_0A87: ldc.i4 128
IL_0A8C: and
IL_0A8D: brfalse => Label93
IL_0A92: ldloc.0
IL_0A93: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0A98: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A9D: ldarg.2
IL_0A9E: ldfld System.UInt16 NetSegment::m_endNode
IL_0AA3: ldelema NetNode
IL_0AA8: ldfld Flags NetNode::m_flags
IL_0AAD: ldc.i4 128
IL_0AB2: and
IL_0AB3: brfalse => Label94
IL_0AB8: ldc.i4.1
IL_0AB9: stloc.s 64 (System.Boolean)
IL_0ABB: Label92
IL_0ABB: Label93
IL_0ABB: Label94
IL_0ABB: ldarg.2
IL_0ABC: ldfld System.UInt32 NetSegment::m_lanes
IL_0AC1: stloc.s 32 (System.UInt32)
IL_0AC3: ldc.i4.0
IL_0AC4: stloc.s 65 (System.Int32)
IL_0AC6: br => Label95
IL_0ACB: Label98
IL_0ACB: ldloc.0
IL_0ACC: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0AD1: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0AD6: ldloc.s 32 (System.UInt32)
IL_0AD8: conv.u
IL_0AD9: ldelema NetLane
IL_0ADE: ldfld System.UInt16 NetLane::m_flags
IL_0AE3: ldc.i4.s -9
IL_0AE5: and
IL_0AE6: stloc.s 66 (NetLane+Flags)
IL_0AE8: ldloc.s 64 (System.Boolean)
IL_0AEA: brfalse => Label96
IL_0AEF: ldloc.s 66 (NetLane+Flags)
IL_0AF1: ldc.i4.8
IL_0AF2: or
IL_0AF3: stloc.s 66 (NetLane+Flags)
IL_0AF5: Label96
IL_0AF5: ldloc.0
IL_0AF6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0AFB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0B00: ldloc.s 32 (System.UInt32)
IL_0B02: conv.u
IL_0B03: ldelema NetLane
IL_0B08: ldloc.s 66 (NetLane+Flags)
IL_0B0A: conv.u2
IL_0B0B: stfld System.UInt16 NetLane::m_flags
IL_0B10: ldloc.0
IL_0B11: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0B16: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0B1B: ldloc.s 32 (System.UInt32)
IL_0B1D: conv.u
IL_0B1E: ldelema NetLane
IL_0B23: ldfld System.UInt32 NetLane::m_nextLane
IL_0B28: stloc.s 32 (System.UInt32)
IL_0B2A: ldloc.s 65 (System.Int32)
IL_0B2C: ldc.i4.1
IL_0B2D: add
IL_0B2E: stloc.s 65 (System.Int32)
IL_0B30: Label95
IL_0B30: ldloc.s 65 (System.Int32)
IL_0B32: ldarg.0
IL_0B33: ldfld NetInfo NetAI::m_info
IL_0B38: ldfld Lane[] NetInfo::m_lanes
IL_0B3D: ldlen
IL_0B3E: conv.i4
IL_0B3F: bge => Label97
IL_0B44: ldloc.s 32 (System.UInt32)
IL_0B46: brtrue => Label98
IL_0B4B: Label97
IL_0B4B: ldarg.3
IL_0B4C: brtrue => Label99
IL_0B51: ldarg.2
IL_0B52: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0B57: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0B5C: stloc.s 68 (UnityEngine.Vector3)
IL_0B5E: ldloca.s 68 (UnityEngine.Vector3)
IL_0B60: ldfld System.Single UnityEngine.Vector3::x
IL_0B65: ldc.r4 16
IL_0B6A: sub
IL_0B6B: ldc.r4 64
IL_0B70: div
IL_0B71: ldc.r4 135
IL_0B76: add
IL_0B77: conv.i4
IL_0B78: ldc.i4.0
IL_0B79: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0B7E: stloc.s 67 (System.Int32)
IL_0B80: ldarg.2
IL_0B81: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0B86: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0B8B: stloc.s 70 (UnityEngine.Vector3)
IL_0B8D: ldloca.s 70 (UnityEngine.Vector3)
IL_0B8F: ldfld System.Single UnityEngine.Vector3::z
IL_0B94: ldc.r4 16
IL_0B99: sub
IL_0B9A: ldc.r4 64
IL_0B9F: div
IL_0BA0: ldc.r4 135
IL_0BA5: add
IL_0BA6: conv.i4
IL_0BA7: ldc.i4.0
IL_0BA8: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0BAD: stloc.s 69 (System.Int32)
IL_0BAF: ldarg.2
IL_0BB0: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0BB5: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0BBA: stloc.s 72 (UnityEngine.Vector3)
IL_0BBC: ldloca.s 72 (UnityEngine.Vector3)
IL_0BBE: ldfld System.Single UnityEngine.Vector3::x
IL_0BC3: ldc.r4 16
IL_0BC8: add
IL_0BC9: ldc.r4 64
IL_0BCE: div
IL_0BCF: ldc.r4 135
IL_0BD4: add
IL_0BD5: conv.i4
IL_0BD6: ldc.i4 269
IL_0BDB: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0BE0: stloc.s 71 (System.Int32)
IL_0BE2: ldarg.2
IL_0BE3: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0BE8: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0BED: stloc.s 74 (UnityEngine.Vector3)
IL_0BEF: ldloca.s 74 (UnityEngine.Vector3)
IL_0BF1: ldfld System.Single UnityEngine.Vector3::z
IL_0BF6: ldc.r4 16
IL_0BFB: add
IL_0BFC: ldc.r4 64
IL_0C01: div
IL_0C02: ldc.r4 135
IL_0C07: add
IL_0C08: conv.i4
IL_0C09: ldc.i4 269
IL_0C0E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0C13: stloc.s 73 (System.Int32)
IL_0C15: ldloc.s 69 (System.Int32)
IL_0C17: stloc.s 75 (System.Int32)
IL_0C19: br => Label100
IL_0C1E: Label108
IL_0C1E: ldloc.s 67 (System.Int32)
IL_0C20: stloc.s 76 (System.Int32)
IL_0C22: br => Label101
IL_0C27: Label107
IL_0C27: ldloc.0
IL_0C28: ldfld System.UInt16[] NetManager::m_nodeGrid
IL_0C2D: ldloc.s 75 (System.Int32)
IL_0C2F: ldc.i4 270
IL_0C34: mul
IL_0C35: ldloc.s 76 (System.Int32)
IL_0C37: add
IL_0C38: ldelem.u2
IL_0C39: stloc.s 77 (System.UInt16)
IL_0C3B: ldc.i4.0
IL_0C3C: stloc.s 78 (System.Int32)
IL_0C3E: br => Label102
IL_0C43: Label106
IL_0C43: ldloc.0
IL_0C44: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0C49: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0C4E: ldloc.s 77 (System.UInt16)
IL_0C50: ldelema NetNode
IL_0C55: call NetInfo NetNode::get_Info()
IL_0C5A: stloc.s 79 (NetInfo)
IL_0C5C: ldloc.0
IL_0C5D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0C62: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0C67: ldloc.s 77 (System.UInt16)
IL_0C69: ldelema NetNode
IL_0C6E: ldfld UnityEngine.Vector3 NetNode::m_position
IL_0C73: stloc.s 80 (UnityEngine.Vector3)
IL_0C75: ldarg.2
IL_0C76: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0C7B: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0C80: stloc.s 82 (UnityEngine.Vector3)
IL_0C82: ldloca.s 82 (UnityEngine.Vector3)
IL_0C84: ldfld System.Single UnityEngine.Vector3::x
IL_0C89: ldc.r4 16
IL_0C8E: sub
IL_0C8F: ldloca.s 80 (UnityEngine.Vector3)
IL_0C91: ldfld System.Single UnityEngine.Vector3::x
IL_0C96: sub
IL_0C97: ldarg.2
IL_0C98: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0C9D: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0CA2: stloc.s 83 (UnityEngine.Vector3)
IL_0CA4: ldloca.s 83 (UnityEngine.Vector3)
IL_0CA6: ldfld System.Single UnityEngine.Vector3::z
IL_0CAB: ldc.r4 16
IL_0CB0: sub
IL_0CB1: ldloca.s 80 (UnityEngine.Vector3)
IL_0CB3: ldfld System.Single UnityEngine.Vector3::z
IL_0CB8: sub
IL_0CB9: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0CBE: ldloca.s 80 (UnityEngine.Vector3)
IL_0CC0: ldfld System.Single UnityEngine.Vector3::x
IL_0CC5: ldarg.2
IL_0CC6: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0CCB: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0CD0: stloc.s 84 (UnityEngine.Vector3)
IL_0CD2: ldloca.s 84 (UnityEngine.Vector3)
IL_0CD4: ldfld System.Single UnityEngine.Vector3::x
IL_0CD9: sub
IL_0CDA: ldc.r4 16
IL_0CDF: sub
IL_0CE0: ldloca.s 80 (UnityEngine.Vector3)
IL_0CE2: ldfld System.Single UnityEngine.Vector3::z
IL_0CE7: ldarg.2
IL_0CE8: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0CED: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0CF2: stloc.s 85 (UnityEngine.Vector3)
IL_0CF4: ldloca.s 85 (UnityEngine.Vector3)
IL_0CF6: ldfld System.Single UnityEngine.Vector3::z
IL_0CFB: sub
IL_0CFC: ldc.r4 16
IL_0D01: sub
IL_0D02: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0D07: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0D0C: stloc.s 81 (System.Single)
IL_0D0E: ldloc.s 81 (System.Single)
IL_0D10: ldc.r4 0
IL_0D15: bge.un => Label103
IL_0D1A: ldloc.s 79 (NetInfo)
IL_0D1C: ldfld NetAI NetInfo::m_netAI
IL_0D21: ldloc.s 77 (System.UInt16)
IL_0D23: ldloc.0
IL_0D24: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0D29: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0D2E: ldloc.s 77 (System.UInt16)
IL_0D30: ldelema NetNode
IL_0D35: callvirt virtual System.Void NetAI::NearbyLanesUpdated(System.UInt16
nodeID, NetNode& data)
IL_0D3A: Label103
IL_0D3A: ldloc.0
IL_0D3B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0D40: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0D45: ldloc.s 77 (System.UInt16)
IL_0D47: ldelema NetNode
IL_0D4C: ldfld System.UInt16 NetNode::m_nextGridNode
IL_0D51: stloc.s 77 (System.UInt16)
IL_0D53: ldloc.s 78 (System.Int32)
IL_0D55: ldc.i4.1
IL_0D56: add
IL_0D57: dup
IL_0D58: stloc.s 78 (System.Int32)
IL_0D5A: ldc.i4 32768
IL_0D5F: blt => Label104
IL_0D64: ldc.i4.1
IL_0D65: ldstr "Invalid list detected!\n"
IL_0D6A: call static System.String System.Environment::get_StackTrace()
IL_0D6F: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_0D74: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Error(LogChannel ll, System.String
msg)
IL_0D79: br => Label105
IL_0D7E: Label102
IL_0D7E: Label104
IL_0D7E: ldloc.s 77 (System.UInt16)
IL_0D80: brtrue => Label106
IL_0D85: Label105
IL_0D85: ldloc.s 76 (System.Int32)
IL_0D87: ldc.i4.1
IL_0D88: add
IL_0D89: stloc.s 76 (System.Int32)
IL_0D8B: Label101
IL_0D8B: ldloc.s 76 (System.Int32)
IL_0D8D: ldloc.s 71 (System.Int32)
IL_0D8F: ble => Label107
IL_0D94: ldloc.s 75 (System.Int32)
IL_0D96: ldc.i4.1
IL_0D97: add
IL_0D98: stloc.s 75 (System.Int32)
IL_0D9A: Label100
IL_0D9A: ldloc.s 75 (System.Int32)
IL_0D9C: ldloc.s 73 (System.Int32)
IL_0D9E: ble => Label108
IL_0DA3: ldarg.0
IL_0DA4: ldfld NetInfo NetAI::m_info
IL_0DA9: ldfld System.Boolean NetInfo::m_hasPedestrianLanes
IL_0DAE: brfalse => Label109
IL_0DB3: ldarg.0
IL_0DB4: ldfld NetInfo NetAI::m_info
IL_0DB9: ldfld System.Boolean NetInfo::m_hasForwardVehicleLanes
IL_0DBE: brtrue => Label110
IL_0DC3: ldarg.0
IL_0DC4: ldfld NetInfo NetAI::m_info
IL_0DC9: ldfld System.Boolean NetInfo::m_hasBackwardVehicleLanes
IL_0DCE: brfalse => Label111
IL_0DD3: Label110
IL_0DD3: ldarg.1
IL_0DD4: ldarg.2
IL_0DD5: call static System.Void RoadBaseAI::CheckBuildings(System.UInt16
segmentID, NetSegment& data)
IL_0DDA: // end original
IL_0DDA: Label99
IL_0DDA: Label109
IL_0DDA: Label111
IL_0DDA: 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::SetTrafficLightState_Patch0(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: // start original
IL_0000: ldarg.s 4
IL_0002: ldc.i4.2
IL_0003: shl
IL_0004: ldarg.3
IL_0005: or
IL_0006: stloc.0
IL_0007: ldarg.1
IL_0008: ldfld System.UInt16 NetSegment::m_startNode
IL_000D: ldarg.0
IL_000E: bne.un => Label0
IL_0013: ldarg.2
IL_0014: ldc.i4.8
IL_0015: shr.un
IL_0016: ldc.i4.1
IL_0017: and
IL_0018: brtrue => Label1
IL_001D: ldarg.1
IL_001E: ldarg.1
IL_001F: ldfld System.Byte NetSegment::m_trafficLightState0
IL_0024: ldc.i4 240
IL_0029: and
IL_002A: ldloc.0
IL_002B: or
IL_002C: conv.u1
IL_002D: stfld System.Byte NetSegment::m_trafficLightState0
IL_0032: br => Label2
IL_0037: Label1
IL_0037: ldarg.1
IL_0038: ldarg.1
IL_0039: ldfld System.Byte NetSegment::m_trafficLightState1
IL_003E: ldc.i4 240
IL_0043: and
IL_0044: ldloc.0
IL_0045: or
IL_0046: conv.u1
IL_0047: stfld System.Byte NetSegment::m_trafficLightState1
IL_004C: Label2
IL_004C: ldarg.s 5
IL_004E: brfalse => Label3
IL_0053: ldarg.1
IL_0054: dup
IL_0055: ldfld Flags NetSegment::m_flags
IL_005A: ldc.i4 4096
IL_005F: or
IL_0060: stfld Flags NetSegment::m_flags
IL_0065: br => Label4
IL_006A: Label3
IL_006A: ldarg.1
IL_006B: dup
IL_006C: ldfld Flags NetSegment::m_flags
IL_0071: ldc.i4 -4097
IL_0076: and
IL_0077: stfld Flags NetSegment::m_flags
IL_007C: Label4
IL_007C: ldarg.s 6
IL_007E: brfalse => Label5
IL_0083: ldarg.1
IL_0084: dup
IL_0085: ldfld Flags NetSegment::m_flags
IL_008A: ldc.i4 16384
IL_008F: or
IL_0090: stfld Flags NetSegment::m_flags
IL_0095: br => Label6
IL_009A: Label5
IL_009A: ldarg.1
IL_009B: dup
IL_009C: ldfld Flags NetSegment::m_flags
IL_00A1: ldc.i4 -16385
IL_00A6: and
IL_00A7: stfld Flags NetSegment::m_flags
IL_00AC: Label6
IL_00AC: br => Label7
IL_00B1: Label0
IL_00B1: ldarg.2
IL_00B2: ldc.i4.8
IL_00B3: shr.un
IL_00B4: ldc.i4.1
IL_00B5: and
IL_00B6: brtrue => Label8
IL_00BB: ldarg.1
IL_00BC: ldarg.1
IL_00BD: ldfld System.Byte NetSegment::m_trafficLightState0
IL_00C2: ldc.i4.s 15
IL_00C4: and
IL_00C5: ldloc.0
IL_00C6: ldc.i4.4
IL_00C7: shl
IL_00C8: or
IL_00C9: conv.u1
IL_00CA: stfld System.Byte NetSegment::m_trafficLightState0
IL_00CF: br => Label9
IL_00D4: Label8
IL_00D4: ldarg.1
IL_00D5: ldarg.1
IL_00D6: ldfld System.Byte NetSegment::m_trafficLightState1
IL_00DB: ldc.i4.s 15
IL_00DD: and
IL_00DE: ldloc.0
IL_00DF: ldc.i4.4
IL_00E0: shl
IL_00E1: or
IL_00E2: conv.u1
IL_00E3: stfld System.Byte NetSegment::m_trafficLightState1
IL_00E8: Label9
IL_00E8: ldarg.s 5
IL_00EA: brfalse => Label10
IL_00EF: ldarg.1
IL_00F0: dup
IL_00F1: ldfld Flags NetSegment::m_flags
IL_00F6: ldc.i4 8192
IL_00FB: or
IL_00FC: stfld Flags NetSegment::m_flags
IL_0101: br => Label11
IL_0106: Label10
IL_0106: ldarg.1
IL_0107: dup
IL_0108: ldfld Flags NetSegment::m_flags
IL_010D: ldc.i4 -8193
IL_0112: and
IL_0113: stfld Flags NetSegment::m_flags
IL_0118: Label11
IL_0118: ldarg.s 6
IL_011A: brfalse => Label12
IL_011F: ldarg.1
IL_0120: dup
IL_0121: ldfld Flags NetSegment::m_flags
IL_0126: ldc.i4 32768
IL_012B: or
IL_012C: stfld Flags NetSegment::m_flags
IL_0131: br => Label13
IL_0136: Label12
IL_0136: ldarg.1
IL_0137: dup
IL_0138: ldfld Flags NetSegment::m_flags
IL_013D: ldc.i4 -32769
IL_0142: and
IL_0143: stfld Flags NetSegment::m_flags
IL_0148: // end original
IL_0148: Label7
IL_0148: Label13
IL_0148: ret
DONE

### Patch: virtual System.Void RoadBaseAI::SimulationStep(System.UInt16 segmentID,


NetSegment& data)
### Replacement: static System.Void RoadBaseAI::SimulationStep_Patch0(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/Problem
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: // start original
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: ldarg.2
IL_0003: call virtual System.Void PlayerNetAI::SimulationStep(System.UInt16
segmentID, NetSegment& data)
IL_0008: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_000D: stloc.0
IL_000E: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0013: stloc.1
IL_0014: ldarg.2
IL_0015: ldfld Problem NetSegment::m_problems
IL_001A: ldc.i4 805306368
IL_001F: conv.i8
IL_0020: call static Problem Notification::RemoveProblems(Problem problems1,
Problem problems2)
IL_0025: stloc.2
IL_0026: ldarg.2
IL_0027: ldfld Flags NetSegment::m_flags
IL_002C: ldc.i4 2048
IL_0031: and
IL_0032: brfalse => Label0
IL_0037: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_003C: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0041: ldc.i4.s 16
IL_0043: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0048: brtrue => Label1
IL_004D: ldarg.2
IL_004E: dup
IL_004F: ldfld Flags NetSegment::m_flags
IL_0054: ldc.i4 -2049
IL_0059: and
IL_005A: stfld Flags NetSegment::m_flags
IL_005F: Label0
IL_005F: Label1
IL_005F: ldc.r4 0
IL_0064: stloc.3
IL_0065: ldarg.2
IL_0066: ldfld System.UInt32 NetSegment::m_lanes
IL_006B: stloc.s 4 (System.UInt32)
IL_006D: ldc.i4.0
IL_006E: stloc.s 5 (System.Int32)
IL_0070: br => Label2
IL_0075: Label6
IL_0075: ldarg.0
IL_0076: ldfld NetInfo NetAI::m_info
IL_007B: ldfld Lane[] NetInfo::m_lanes
IL_0080: ldloc.s 5 (System.Int32)
IL_0082: ldelem.ref
IL_0083: stloc.s 6 (NetInfo+Lane)
IL_0085: ldloc.s 6 (NetInfo+Lane)
IL_0087: ldfld LaneType Lane::m_laneType
IL_008C: ldc.i4.s 33
IL_008E: and
IL_008F: conv.u1
IL_0090: brfalse => Label3
IL_0095: ldloc.s 6 (NetInfo+Lane)
IL_0097: ldfld VehicleType Lane::m_vehicleType
IL_009C: ldc.i4.s -33
IL_009E: and
IL_009F: brfalse => Label4
IL_00A4: ldloc.3
IL_00A5: ldloc.1
IL_00A6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00AB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00B0: ldloc.s 4 (System.UInt32)
IL_00B2: conv.u
IL_00B3: ldelema NetLane
IL_00B8: ldfld System.Single NetLane::m_length
IL_00BD: add
IL_00BE: stloc.3
IL_00BF: Label3
IL_00BF: Label4
IL_00BF: ldloc.1
IL_00C0: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00C5: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00CA: ldloc.s 4 (System.UInt32)
IL_00CC: conv.u
IL_00CD: ldelema NetLane
IL_00D2: ldfld System.UInt32 NetLane::m_nextLane
IL_00D7: stloc.s 4 (System.UInt32)
IL_00D9: ldloc.s 5 (System.Int32)
IL_00DB: ldc.i4.1
IL_00DC: add
IL_00DD: stloc.s 5 (System.Int32)
IL_00DF: Label2
IL_00DF: ldloc.s 5 (System.Int32)
IL_00E1: ldarg.0
IL_00E2: ldfld NetInfo NetAI::m_info
IL_00E7: ldfld Lane[] NetInfo::m_lanes
IL_00EC: ldlen
IL_00ED: conv.i4
IL_00EE: bge => Label5
IL_00F3: ldloc.s 4 (System.UInt32)
IL_00F5: brtrue => Label6
IL_00FA: Label5
IL_00FA: ldc.i4.0
IL_00FB: stloc.s 7 (System.Int32)
IL_00FD: ldc.i4.0
IL_00FE: stloc.s 8 (System.Int32)
IL_0100: ldarg.2
IL_0101: ldfld System.UInt16 NetSegment::m_trafficBuffer
IL_0106: ldc.i4 65535
IL_010B: bne.un => Label7
IL_0110: ldarg.2
IL_0111: ldfld Flags NetSegment::m_flags
IL_0116: ldc.i4 2097152
IL_011B: and
IL_011C: brtrue => Label8
IL_0121: ldarg.2
IL_0122: dup
IL_0123: ldfld Flags NetSegment::m_flags
IL_0128: ldc.i4 2097152
IL_012D: or
IL_012E: stfld Flags NetSegment::m_flags
IL_0133: ldarg.2
IL_0134: ldloc.0
IL_0135: dup
IL_0136: ldfld System.UInt32 SimulationManager::m_currentBuildIndex
IL_013B: dup
IL_013C: stloc.s 9 (System.UInt32)
IL_013E: ldc.i4.1
IL_013F: add
IL_0140: stfld System.UInt32 SimulationManager::m_currentBuildIndex
IL_0145: ldloc.s 9 (System.UInt32)
IL_0147: stfld System.UInt32 NetSegment::m_modifiedIndex
IL_014C: Label8
IL_014C: br => Label9
IL_0151: Label7
IL_0151: ldarg.2
IL_0152: dup
IL_0153: ldfld Flags NetSegment::m_flags
IL_0158: ldc.i4 -2097153
IL_015D: and
IL_015E: stfld Flags NetSegment::m_flags
IL_0163: ldloc.3
IL_0164: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_0169: ldc.i4.4
IL_016A: shl
IL_016B: stloc.s 10 (System.Int32)
IL_016D: ldloc.s 10 (System.Int32)
IL_016F: brfalse => Label10
IL_0174: ldarg.2
IL_0175: ldfld System.UInt16 NetSegment::m_trafficBuffer
IL_017A: ldc.i4.s 100
IL_017C: mul
IL_017D: ldloc.s 10 (System.Int32)
IL_017F: div
IL_0180: ldc.i4.s 100
IL_0182: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0187: conv.u1
IL_0188: stloc.s 7 (System.Int32)
IL_018A: ldarg.2
IL_018B: ldfld System.UInt16 NetSegment::m_noiseBuffer
IL_0190: ldc.i4 250
IL_0195: mul
IL_0196: ldloc.s 10 (System.Int32)
IL_0198: div
IL_0199: ldc.i4.s 100
IL_019B: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01A0: conv.u1
IL_01A1: stloc.s 8 (System.Int32)
IL_01A3: Label9
IL_01A3: Label10
IL_01A3: ldarg.2
IL_01A4: ldc.i4.0
IL_01A5: stfld System.UInt16 NetSegment::m_trafficBuffer
IL_01AA: ldarg.2
IL_01AB: ldc.i4.0
IL_01AC: stfld System.UInt16 NetSegment::m_noiseBuffer
IL_01B1: ldloc.s 7 (System.Int32)
IL_01B3: ldarg.2
IL_01B4: ldfld System.Byte NetSegment::m_trafficDensity
IL_01B9: ble => Label11
IL_01BE: ldarg.2
IL_01BF: ldarg.2
IL_01C0: ldfld System.Byte NetSegment::m_trafficDensity
IL_01C5: ldc.i4.5
IL_01C6: add
IL_01C7: ldloc.s 7 (System.Int32)
IL_01C9: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01CE: conv.u1
IL_01CF: stfld System.Byte NetSegment::m_trafficDensity
IL_01D4: br => Label12
IL_01D9: Label11
IL_01D9: ldloc.s 7 (System.Int32)
IL_01DB: ldarg.2
IL_01DC: ldfld System.Byte NetSegment::m_trafficDensity
IL_01E1: bge => Label13
IL_01E6: ldarg.2
IL_01E7: ldarg.2
IL_01E8: ldfld System.Byte NetSegment::m_trafficDensity
IL_01ED: ldc.i4.5
IL_01EE: sub
IL_01EF: ldloc.s 7 (System.Int32)
IL_01F1: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_01F6: conv.u1
IL_01F7: stfld System.Byte NetSegment::m_trafficDensity
IL_01FC: Label12
IL_01FC: Label13
IL_01FC: ldloc.s 8 (System.Int32)
IL_01FE: ldarg.2
IL_01FF: ldfld System.Byte NetSegment::m_noiseDensity
IL_0204: ble => Label14
IL_0209: ldarg.2
IL_020A: ldarg.2
IL_020B: ldfld System.Byte NetSegment::m_noiseDensity
IL_0210: ldc.i4.2
IL_0211: add
IL_0212: ldloc.s 8 (System.Int32)
IL_0214: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0219: conv.u1
IL_021A: stfld System.Byte NetSegment::m_noiseDensity
IL_021F: br => Label15
IL_0224: Label14
IL_0224: ldloc.s 8 (System.Int32)
IL_0226: ldarg.2
IL_0227: ldfld System.Byte NetSegment::m_noiseDensity
IL_022C: bge => Label16
IL_0231: ldarg.2
IL_0232: ldarg.2
IL_0233: ldfld System.Byte NetSegment::m_noiseDensity
IL_0238: ldc.i4.2
IL_0239: sub
IL_023A: ldloc.s 8 (System.Int32)
IL_023C: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0241: conv.u1
IL_0242: stfld System.Byte NetSegment::m_noiseDensity
IL_0247: Label15
IL_0247: Label16
IL_0247: ldloc.1
IL_0248: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_024D: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0252: ldarg.2
IL_0253: ldfld System.UInt16 NetSegment::m_startNode
IL_0258: ldelema NetNode
IL_025D: ldfld UnityEngine.Vector3 NetNode::m_position
IL_0262: stloc.s 11 (UnityEngine.Vector3)
IL_0264: ldloc.1
IL_0265: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_026A: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_026F: ldarg.2
IL_0270: ldfld System.UInt16 NetSegment::m_endNode
IL_0275: ldelema NetNode
IL_027A: ldfld UnityEngine.Vector3 NetNode::m_position
IL_027F: stloc.s 12 (UnityEngine.Vector3)
IL_0281: ldloc.s 11 (UnityEngine.Vector3)
IL_0283: ldloc.s 12 (UnityEngine.Vector3)
IL_0285: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_028A: ldc.r4 0.5
IL_028F: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_0294: stloc.s 13 (UnityEngine.Vector3)
IL_0296: ldc.i4.0
IL_0297: stloc.s 14 (System.Boolean)
IL_0299: ldarg.0
IL_029A: ldfld NetInfo NetAI::m_info
IL_029F: ldfld Flags NetInfo::m_setVehicleFlags
IL_02A4: ldc.i4 268435456
IL_02A9: and
IL_02AA: brtrue => Label17
IL_02AF: call static TerrainManager
ColossalFramework.Singleton`1<TerrainManager>::get_instance()
IL_02B4: ldloc.s 13 (UnityEngine.Vector3)
IL_02B6: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_02BB: callvirt System.Single TerrainManager::WaterLevel(UnityEngine.Vector2
position)
IL_02C0: stloc.s 15 (System.Single)
IL_02C2: ldloc.s 15 (System.Single)
IL_02C4: ldloca.s 13 (UnityEngine.Vector3)
IL_02C6: ldfld System.Single UnityEngine.Vector3::y
IL_02CB: ldc.r4 1
IL_02D0: add
IL_02D1: ble.un => Label18
IL_02D6: ldloc.s 15 (System.Single)
IL_02D8: ldc.r4 0
IL_02DD: ble.un => Label19
IL_02E2: ldc.i4.1
IL_02E3: stloc.s 14 (System.Boolean)
IL_02E5: ldarg.2
IL_02E6: dup
IL_02E7: ldfld Flags NetSegment::m_flags
IL_02EC: ldc.i4 4194304
IL_02F1: or
IL_02F2: stfld Flags NetSegment::m_flags
IL_02F7: ldloc.2
IL_02F8: ldc.i8 4611686018695823360
IL_0301: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0306: stloc.2
IL_0307: ldarg.2
IL_0308: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_030D: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0312: stloc.s 16 (UnityEngine.Vector3)
IL_0314: ldarg.2
IL_0315: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_031A: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_031F: stloc.s 17 (UnityEngine.Vector3)
IL_0321: ldloca.s 16 (UnityEngine.Vector3)
IL_0323: ldfld System.Single UnityEngine.Vector3::x
IL_0328: ldloca.s 16 (UnityEngine.Vector3)
IL_032A: ldfld System.Single UnityEngine.Vector3::z
IL_032F: ldloca.s 17 (UnityEngine.Vector3)
IL_0331: ldfld System.Single UnityEngine.Vector3::x
IL_0336: ldloca.s 17 (UnityEngine.Vector3)
IL_0338: ldfld System.Single UnityEngine.Vector3::z
IL_033D: call static System.Void RoadBaseAI::FloodParkedCars(System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0342: br => Label20
IL_0347: Label18
IL_0347: Label19
IL_0347: ldarg.2
IL_0348: dup
IL_0349: ldfld Flags NetSegment::m_flags
IL_034E: ldc.i4 -4194305
IL_0353: and
IL_0354: stfld Flags NetSegment::m_flags
IL_0359: ldloc.s 15 (System.Single)
IL_035B: ldloca.s 13 (UnityEngine.Vector3)
IL_035D: ldfld System.Single UnityEngine.Vector3::y
IL_0362: ble.un => Label21
IL_0367: ldloc.s 15 (System.Single)
IL_0369: ldc.r4 0
IL_036E: ble.un => Label22
IL_0373: ldc.i4.1
IL_0374: stloc.s 14 (System.Boolean)
IL_0376: ldloc.2
IL_0377: ldc.i4 268435456
IL_037C: conv.i8
IL_037D: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0382: stloc.2
IL_0383: Label17
IL_0383: Label20
IL_0383: Label21
IL_0383: Label22
IL_0383: call static DistrictManager
ColossalFramework.Singleton`1<DistrictManager>::get_instance()
IL_0388: stloc.s 18 (DistrictManager)
IL_038A: ldloc.s 18 (DistrictManager)
IL_038C: ldloc.s 13 (UnityEngine.Vector3)
IL_038E: callvirt System.Byte DistrictManager::GetDistrict(UnityEngine.Vector3
worldPos)
IL_0393: stloc.s 19 (System.Byte)
IL_0395: ldloc.s 18 (DistrictManager)
IL_0397: ldfld Array8`1<District> DistrictManager::m_districts
IL_039C: ldfld District[] Array8`1<District>::m_buffer
IL_03A1: ldloc.s 19 (System.Byte)
IL_03A3: ldelema District
IL_03A8: ldfld CityPlanning District::m_cityPlanningPolicies
IL_03AD: stloc.s 20 (DistrictPolicies+CityPlanning)
IL_03AF: ldc.i4.s 100
IL_03B1: ldarg.2
IL_03B2: ldfld System.Byte NetSegment::m_noiseDensity
IL_03B7: ldc.i4.s 100
IL_03B9: sub
IL_03BA: ldarg.2
IL_03BB: ldfld System.Byte NetSegment::m_noiseDensity
IL_03C0: ldc.i4.s 100
IL_03C2: sub
IL_03C3: mul
IL_03C4: ldc.i4.s 100
IL_03C6: div
IL_03C7: sub
IL_03C8: stloc.s 21 (System.Int32)
IL_03CA: ldarg.0
IL_03CB: ldfld NetInfo NetAI::m_info
IL_03D0: ldfld VehicleType NetInfo::m_vehicleTypes
IL_03D5: ldc.i4.1
IL_03D6: and
IL_03D7: brfalse => Label23
IL_03DC: ldarg.0
IL_03DD: ldfld NetInfo NetAI::m_info
IL_03E2: ldfld Flags NetInfo::m_setVehicleFlags
IL_03E7: ldc.i4 268435456
IL_03EC: and
IL_03ED: brtrue => Label24
IL_03F2: ldloc.s 14 (System.Boolean)
IL_03F4: brfalse => Label25
IL_03F9: ldarg.2
IL_03FA: ldfld Flags NetSegment::m_flags
IL_03FF: ldc.i4 2099200
IL_0404: and
IL_0405: brtrue => Label26
IL_040A: ldloc.0
IL_040B: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0410: ldc.i4.s 10
IL_0412: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0417: brtrue => Label27
IL_041C: ldloca.s 22 (TransferManager+TransferOffer)
IL_041E: initobj TransferManager+TransferOffer
IL_0424: ldloca.s 22 (TransferManager+TransferOffer)
IL_0426: ldc.i4.4
IL_0427: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_042C: ldloca.s 22 (TransferManager+TransferOffer)
IL_042E: ldarg.1
IL_042F: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_0434: ldloca.s 22 (TransferManager+TransferOffer)
IL_0436: ldloc.s 13 (UnityEngine.Vector3)
IL_0438: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_043D: ldloca.s 22 (TransferManager+TransferOffer)
IL_043F: ldc.i4.1
IL_0440: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_0445: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_044A: ldc.i4.s 73
IL_044C: ldloc.s 22 (TransferManager+TransferOffer)
IL_044E: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason
material, TransferOffer offer)
IL_0453: Label25
IL_0453: Label26
IL_0453: Label27
IL_0453: ldarg.2
IL_0454: ldfld System.Byte NetSegment::m_wetness
IL_0459: stloc.s 23 (System.Int32)
IL_045B: ldloc.1
IL_045C: ldfld System.Boolean NetManager::m_treatWetAsSnow
IL_0461: brtrue => Label28
IL_0466: ldloc.s 14 (System.Boolean)
IL_0468: brfalse => Label29
IL_046D: ldc.i4 255
IL_0472: stloc.s 23 (System.Int32)
IL_0474: br => Label30
IL_0479: Label29
IL_0479: ldloc.s 23 (System.Int32)
IL_047B: ldc.i4.s 63
IL_047D: add
IL_047E: ldc.i4.5
IL_047F: shr
IL_0480: neg
IL_0481: stloc.s 24 (System.Int32)
IL_0483: call static WeatherManager
ColossalFramework.Singleton`1<WeatherManager>::get_instance()
IL_0488: ldloc.s 13 (UnityEngine.Vector3)
IL_048A: ldc.i4.0
IL_048B: callvirt System.Single
WeatherManager::SampleRainIntensity(UnityEngine.Vector3 pos, System.Boolean
ignoreWeather)
IL_0490: stloc.s 25 (System.Single)
IL_0492: ldloc.s 25 (System.Single)
IL_0494: ldc.r4 0
IL_0499: beq => Label31
IL_049E: ldloc.s 25 (System.Single)
IL_04A0: ldc.r4 4000
IL_04A5: mul
IL_04A6: ldc.r4 1000
IL_04AB: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_04B0: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_04B5: stloc.s 26 (System.Int32)
IL_04B7: ldloc.s 24 (System.Int32)
IL_04B9: ldloc.0
IL_04BA: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_04BF: ldloc.s 26 (System.Int32)
IL_04C1: ldloc.s 26 (System.Int32)
IL_04C3: ldc.i4.s 99
IL_04C5: add
IL_04C6: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_04CB: ldc.i4.s 100
IL_04CD: div
IL_04CE: add
IL_04CF: stloc.s 24 (System.Int32)
IL_04D1: Label31
IL_04D1: ldloc.s 23 (System.Int32)
IL_04D3: ldloc.s 24 (System.Int32)
IL_04D5: add
IL_04D6: ldc.i4.0
IL_04D7: ldc.i4 255
IL_04DC: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_04E1: stloc.s 23 (System.Int32)
IL_04E3: Label30
IL_04E3: br => Label32
IL_04E8: Label28
IL_04E8: ldarg.0
IL_04E9: ldfld System.Boolean RoadBaseAI::m_accumulateSnow
IL_04EE: brfalse => Label33
IL_04F3: ldloc.s 14 (System.Boolean)
IL_04F5: brfalse => Label34
IL_04FA: ldc.i4 128
IL_04FF: stloc.s 23 (System.Int32)
IL_0501: br => Label35
IL_0506: Label34
IL_0506: call static WeatherManager
ColossalFramework.Singleton`1<WeatherManager>::get_instance()
IL_050B: ldloc.s 13 (UnityEngine.Vector3)
IL_050D: ldc.i4.0
IL_050E: callvirt System.Single
WeatherManager::SampleRainIntensity(UnityEngine.Vector3 pos, System.Boolean
ignoreWeather)
IL_0513: stloc.s 27 (System.Single)
IL_0515: ldloc.s 27 (System.Single)
IL_0517: ldc.r4 0
IL_051C: beq => Label36
IL_0521: ldloc.s 27 (System.Single)
IL_0523: ldc.r4 400
IL_0528: mul
IL_0529: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_052E: stloc.s 28 (System.Int32)
IL_0530: ldloc.0
IL_0531: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0536: ldloc.s 28 (System.Int32)
IL_0538: ldloc.s 28 (System.Int32)
IL_053A: ldc.i4.s 99
IL_053C: add
IL_053D: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_0542: ldc.i4.s 100
IL_0544: div
IL_0545: stloc.s 29 (System.Int32)
IL_0547: call static UnlockManager
ColossalFramework.Singleton`1<UnlockManager>::get_instance()
IL_054C: ldc.i4.s 24
IL_054E: callvirt System.Boolean UnlockManager::Unlocked(Feature feature)
IL_0553: brfalse => Label37
IL_0558: ldloc.s 23 (System.Int32)
IL_055A: ldloc.s 29 (System.Int32)
IL_055C: add
IL_055D: ldc.i4 255
IL_0562: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0567: stloc.s 23 (System.Int32)
IL_0569: br => Label38
IL_056E: Label37
IL_056E: ldloc.s 23 (System.Int32)
IL_0570: ldloc.s 29 (System.Int32)
IL_0572: add
IL_0573: ldc.i4 128
IL_0578: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_057D: stloc.s 23 (System.Int32)
IL_057F: Label38
IL_057F: br => Label39
IL_0584: Label36
IL_0584: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0589: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_058E: ldc.i4.4
IL_058F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0594: brtrue => Label40
IL_0599: ldloc.s 23 (System.Int32)
IL_059B: ldc.i4.1
IL_059C: sub
IL_059D: ldc.i4.0
IL_059E: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_05A3: stloc.s 23 (System.Int32)
IL_05A5: Label39
IL_05A5: Label40
IL_05A5: ldloc.s 23 (System.Int32)
IL_05A7: ldc.i4.s 64
IL_05A9: blt => Label41
IL_05AE: ldarg.2
IL_05AF: ldfld Flags NetSegment::m_flags
IL_05B4: ldc.i4 6293504
IL_05B9: and
IL_05BA: brtrue => Label42
IL_05BF: ldloc.0
IL_05C0: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_05C5: ldc.i4.s 10
IL_05C7: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_05CC: brtrue => Label43
IL_05D1: ldloca.s 30 (TransferManager+TransferOffer)
IL_05D3: initobj TransferManager+TransferOffer
IL_05D9: ldloca.s 30 (TransferManager+TransferOffer)
IL_05DB: ldloc.s 23 (System.Int32)
IL_05DD: ldc.i4.s 50
IL_05DF: div
IL_05E0: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_05E5: ldloca.s 30 (TransferManager+TransferOffer)
IL_05E7: ldarg.1
IL_05E8: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_05ED: ldloca.s 30 (TransferManager+TransferOffer)
IL_05EF: ldloc.s 13 (UnityEngine.Vector3)
IL_05F1: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_05F6: ldloca.s 30 (TransferManager+TransferOffer)
IL_05F8: ldc.i4.1
IL_05F9: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_05FE: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_0603: ldc.i4.s 64
IL_0605: ldloc.s 30 (TransferManager+TransferOffer)
IL_0607: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason
material, TransferOffer offer)
IL_060C: Label41
IL_060C: Label42
IL_060C: Label43
IL_060C: ldloc.s 23 (System.Int32)
IL_060E: ldc.i4 192
IL_0613: blt => Label44
IL_0618: ldloc.2
IL_0619: ldc.i4 536870912
IL_061E: conv.i8
IL_061F: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0624: stloc.2
IL_0625: Label44
IL_0625: ldloc.s 18 (DistrictManager)
IL_0627: ldfld Array8`1<District> DistrictManager::m_districts
IL_062C: ldfld District[] Array8`1<District>::m_buffer
IL_0631: ldloc.s 19 (System.Byte)
IL_0633: ldelema District
IL_0638: ldflda DistrictProductionData District::m_productionData
IL_063D: dup
IL_063E: ldfld System.UInt32 DistrictProductionData::m_tempSnowCover
IL_0643: ldloc.s 23 (System.Int32)
IL_0645: add
IL_0646: stfld System.UInt32 DistrictProductionData::m_tempSnowCover
IL_064B: Label32
IL_064B: Label33
IL_064B: Label35
IL_064B: ldloc.s 23 (System.Int32)
IL_064D: ldarg.2
IL_064E: ldfld System.Byte NetSegment::m_wetness
IL_0653: beq => Label45
IL_0658: ldarg.2
IL_0659: ldfld System.Byte NetSegment::m_wetness
IL_065E: ldloc.s 23 (System.Int32)
IL_0660: sub
IL_0661: call static System.Int32 UnityEngine.Mathf::Abs(System.Int32 value)
IL_0666: ldc.i4.s 10
IL_0668: ble => Label46
IL_066D: ldarg.2
IL_066E: ldloc.s 23 (System.Int32)
IL_0670: conv.u1
IL_0671: stfld System.Byte NetSegment::m_wetness
IL_0676: ldsfld InstanceID InstanceID::Empty
IL_067B: stloc.s 31 (InstanceID)
IL_067D: ldloca.s 31 (InstanceID)
IL_067F: ldarg.1
IL_0680: call System.Void InstanceID::set_NetSegment(System.UInt16 value)
IL_0685: ldloc.1
IL_0686: ldloc.s 31 (InstanceID)
IL_0688: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_068D: ldloca.s 31 (InstanceID)
IL_068F: ldarg.2
IL_0690: ldfld System.UInt16 NetSegment::m_startNode
IL_0695: call System.Void InstanceID::set_NetNode(System.UInt16 value)
IL_069A: ldloc.1
IL_069B: ldloc.s 31 (InstanceID)
IL_069D: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06A2: ldloca.s 31 (InstanceID)
IL_06A4: ldarg.2
IL_06A5: ldfld System.UInt16 NetSegment::m_endNode
IL_06AA: call System.Void InstanceID::set_NetNode(System.UInt16 value)
IL_06AF: ldloc.1
IL_06B0: ldloc.s 31 (InstanceID)
IL_06B2: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06B7: br => Label47
IL_06BC: Label46
IL_06BC: ldarg.2
IL_06BD: ldloc.s 23 (System.Int32)
IL_06BF: conv.u1
IL_06C0: stfld System.Byte NetSegment::m_wetness
IL_06C5: ldloc.1
IL_06C6: ldc.i4 256
IL_06CB: stfld System.Int32 NetManager::m_wetnessChanged
IL_06D0: Label24
IL_06D0: Label45
IL_06D0: Label47
IL_06D0: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_06D2: ldc.i4 1024
IL_06D7: and
IL_06D8: brfalse => Label48
IL_06DD: ldloc.s 21 (System.Int32)
IL_06DF: ldc.i4.3
IL_06E0: mul
IL_06E1: ldc.i4.1
IL_06E2: add
IL_06E3: ldc.i4.1
IL_06E4: shr
IL_06E5: stloc.s 21 (System.Int32)
IL_06E7: ldc.i4 700
IL_06EC: ldc.i4.s 50
IL_06EE: ldarg.2
IL_06EF: ldfld System.Byte NetSegment::m_trafficDensity
IL_06F4: ldc.i4.6
IL_06F5: mul
IL_06F6: add
IL_06F7: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_06FC: stloc.s 32 (System.Int32)
IL_06FE: br => Label49
IL_0703: Label48
IL_0703: ldc.i4 500
IL_0708: ldc.i4.s 50
IL_070A: ldarg.2
IL_070B: ldfld System.Byte NetSegment::m_trafficDensity
IL_0710: ldc.i4.4
IL_0711: mul
IL_0712: add
IL_0713: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0718: stloc.s 32 (System.Int32)
IL_071A: Label49
IL_071A: ldarg.0
IL_071B: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_0720: brtrue => Label50
IL_0725: ldloc.0
IL_0726: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_072B: ldloc.s 32 (System.Int32)
IL_072D: ldloc.s 32 (System.Int32)
IL_072F: ldc.i4.s 99
IL_0731: add
IL_0732: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_0737: ldc.i4.s 100
IL_0739: div
IL_073A: stloc.s 33 (System.Int32)
IL_073C: ldarg.2
IL_073D: ldarg.2
IL_073E: ldfld System.Byte NetSegment::m_condition
IL_0743: ldloc.s 33 (System.Int32)
IL_0745: sub
IL_0746: ldc.i4.0
IL_0747: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_074C: conv.u1
IL_074D: stfld System.Byte NetSegment::m_condition
IL_0752: ldarg.2
IL_0753: ldfld System.Byte NetSegment::m_condition
IL_0758: ldc.i4 192
IL_075D: bge => Label51
IL_0762: ldarg.2
IL_0763: ldfld Flags NetSegment::m_flags
IL_0768: ldc.i4 6293504
IL_076D: and
IL_076E: brtrue => Label52
IL_0773: ldloc.0
IL_0774: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0779: ldc.i4.s 20
IL_077B: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0780: brtrue => Label53
IL_0785: ldloca.s 34 (TransferManager+TransferOffer)
IL_0787: initobj TransferManager+TransferOffer
IL_078D: ldloca.s 34 (TransferManager+TransferOffer)
IL_078F: ldc.i4 255
IL_0794: ldarg.2
IL_0795: ldfld System.Byte NetSegment::m_condition
IL_079A: sub
IL_079B: ldc.i4.s 50
IL_079D: div
IL_079E: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_07A3: ldloca.s 34 (TransferManager+TransferOffer)
IL_07A5: ldarg.1
IL_07A6: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_07AB: ldloca.s 34 (TransferManager+TransferOffer)
IL_07AD: ldloc.s 13 (UnityEngine.Vector3)
IL_07AF: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_07B4: ldloca.s 34 (TransferManager+TransferOffer)
IL_07B6: ldc.i4.1
IL_07B7: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_07BC: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_07C1: ldc.i4.s 66
IL_07C3: ldloc.s 34 (TransferManager+TransferOffer)
IL_07C5: callvirt System.Void TransferManager::AddIncomingOffer(TransferReason
material, TransferOffer offer)
IL_07CA: Label23
IL_07CA: Label50
IL_07CA: Label51
IL_07CA: Label52
IL_07CA: Label53
IL_07CA: ldarg.0
IL_07CB: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_07D0: brtrue => Label54
IL_07D5: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_07D7: ldc.i4.s 32
IL_07D9: and
IL_07DA: brfalse => Label55
IL_07DF: ldarg.2
IL_07E0: dup
IL_07E1: ldfld Flags NetSegment::m_flags
IL_07E6: ldc.i4 1048576
IL_07EB: or
IL_07EC: stfld Flags NetSegment::m_flags
IL_07F1: br => Label56
IL_07F6: Label55
IL_07F6: ldarg.2
IL_07F7: dup
IL_07F8: ldfld Flags NetSegment::m_flags
IL_07FD: ldc.i4 -1048577
IL_0802: and
IL_0803: stfld Flags NetSegment::m_flags
IL_0808: Label56
IL_0808: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_080A: ldc.i4 128
IL_080F: and
IL_0810: brfalse => Label57
IL_0815: ldarg.2
IL_0816: dup
IL_0817: ldfld Flags NetSegment::m_flags
IL_081C: ldc.i4 8388608
IL_0821: or
IL_0822: stfld Flags NetSegment::m_flags
IL_0827: br => Label58
IL_082C: Label57
IL_082C: ldarg.2
IL_082D: dup
IL_082E: ldfld Flags NetSegment::m_flags
IL_0833: ldc.i4 -8388609
IL_0838: and
IL_0839: stfld Flags NetSegment::m_flags
IL_083E: Label58
IL_083E: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_0840: ldc.i4 512
IL_0845: and
IL_0846: brfalse => Label59
IL_084B: ldarg.2
IL_084C: dup
IL_084D: ldfld Flags NetSegment::m_flags
IL_0852: ldc.i4 16777216
IL_0857: or
IL_0858: stfld Flags NetSegment::m_flags
IL_085D: br => Label60
IL_0862: Label59
IL_0862: ldarg.2
IL_0863: dup
IL_0864: ldfld Flags NetSegment::m_flags
IL_0869: ldc.i4 -16777217
IL_086E: and
IL_086F: stfld Flags NetSegment::m_flags
IL_0874: Label60
IL_0874: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_0876: ldc.i4 65536
IL_087B: and
IL_087C: brfalse => Label61
IL_0881: ldarg.2
IL_0882: dup
IL_0883: ldfld Flags NetSegment::m_flags
IL_0888: ldc.i4 256
IL_088D: or
IL_088E: stfld Flags NetSegment::m_flags
IL_0893: br => Label62
IL_0898: Label61
IL_0898: ldarg.2
IL_0899: dup
IL_089A: ldfld Flags NetSegment::m_flags
IL_089F: ldc.i4 -257
IL_08A4: and
IL_08A5: stfld Flags NetSegment::m_flags
IL_08AA: Label54
IL_08AA: Label62
IL_08AA: ldarg.0
IL_08AB: ldfld System.Int32 RoadBaseAI::m_noiseAccumulation
IL_08B0: ldloc.s 21 (System.Int32)
IL_08B2: mul
IL_08B3: ldc.i4.s 100
IL_08B5: div
IL_08B6: stloc.s 35 (System.Int32)
IL_08B8: ldloc.s 35 (System.Int32)
IL_08BA: brfalse => Label63
IL_08BF: ldloc.s 11 (UnityEngine.Vector3)
IL_08C1: ldloc.s 12 (UnityEngine.Vector3)
IL_08C3: call static System.Single
UnityEngine.Vector3::Distance(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_08C8: stloc.s 36 (System.Single)
IL_08CA: ldloc.s 36 (System.Single)
IL_08CC: ldarg.0
IL_08CD: ldfld System.Single RoadBaseAI::m_noiseRadius
IL_08D2: div
IL_08D3: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single
f)
IL_08D8: stloc.s 37 (System.Int32)
IL_08DA: ldc.i4.0
IL_08DB: stloc.s 38 (System.Int32)
IL_08DD: br => Label64
IL_08E2: Label65
IL_08E2: ldloc.s 11 (UnityEngine.Vector3)
IL_08E4: ldloc.s 12 (UnityEngine.Vector3)
IL_08E6: ldloc.s 38 (System.Int32)
IL_08E8: ldc.i4.1
IL_08E9: add
IL_08EA: conv.r4
IL_08EB: ldloc.s 37 (System.Int32)
IL_08ED: ldc.i4.1
IL_08EE: add
IL_08EF: conv.r4
IL_08F0: div
IL_08F1: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_08F6: stloc.s 39 (UnityEngine.Vector3)
IL_08F8: call static ImmaterialResourceManager
ColossalFramework.Singleton`1<ImmaterialResourceManager>::get_instance()
IL_08FD: ldc.i4.8
IL_08FE: ldloc.s 35 (System.Int32)
IL_0900: ldloc.s 39 (UnityEngine.Vector3)
IL_0902: ldarg.0
IL_0903: ldfld System.Single RoadBaseAI::m_noiseRadius
IL_0908: callvirt System.Int32 ImmaterialResourceManager::AddResource(Resource
resource, System.Int32 rate, UnityEngine.Vector3 position, System.Single radius)
IL_090D: pop
IL_090E: ldloc.s 38 (System.Int32)
IL_0910: ldc.i4.1
IL_0911: add
IL_0912: stloc.s 38 (System.Int32)
IL_0914: Label64
IL_0914: ldloc.s 38 (System.Int32)
IL_0916: ldloc.s 37 (System.Int32)
IL_0918: blt => Label65
IL_091D: Label63
IL_091D: ldarg.2
IL_091E: ldfld System.Byte NetSegment::m_trafficDensity
IL_0923: ldc.i4.s 50
IL_0925: blt => Label66
IL_092A: ldarg.2
IL_092B: ldfld System.Single NetSegment::m_averageLength
IL_0930: ldc.r4 25
IL_0935: bge.un => Label67
IL_093A: ldloc.1
IL_093B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0940: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0945: ldarg.2
IL_0946: ldfld System.UInt16 NetSegment::m_startNode
IL_094B: ldelema NetNode
IL_0950: ldfld Flags NetNode::m_flags
IL_0955: ldc.i4 10485760
IL_095A: and
IL_095B: ldc.i4 8388608
IL_0960: bne.un => Label68
IL_0965: ldloc.1
IL_0966: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_096B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0970: ldarg.2
IL_0971: ldfld System.UInt16 NetSegment::m_endNode
IL_0976: ldelema NetNode
IL_097B: ldfld Flags NetNode::m_flags
IL_0980: ldc.i4 10485760
IL_0985: and
IL_0986: ldc.i4 8388608
IL_098B: bne.un => Label69
IL_0990: call static GuideManager
ColossalFramework.Singleton`1<GuideManager>::get_instance()
IL_0995: ldfld GuideController SimulationManagerBase`2<GuideManager,
GuideController>::m_properties
IL_099A: stloc.s 40 (GuideController)
IL_099C: ldloc.s 40 (GuideController)
IL_099E: brfalse => Label70
IL_09A3: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_09A8: ldfld NetSegmentInstanceGuide NetManager::m_shortRoadTraffic
IL_09AD: ldloc.s 40 (GuideController)
IL_09AF: ldfld GuideInfo GuideController::m_shortRoadTraffic
IL_09B4: ldarg.1
IL_09B5: ldc.i4.0
IL_09B6: callvirt System.Void NetSegmentInstanceGuide::Activate(GuideInfo
guideInfo, System.UInt16 segmentID, System.Boolean ignoreID)
IL_09BB: Label66
IL_09BB: Label67
IL_09BB: Label68
IL_09BB: Label69
IL_09BB: Label70
IL_09BB: ldarg.2
IL_09BC: ldfld Flags NetSegment::m_flags
IL_09C1: ldc.i4.8
IL_09C2: and
IL_09C3: brfalse => Label71
IL_09C8: call static GuideManager
ColossalFramework.Singleton`1<GuideManager>::get_instance()
IL_09CD: ldfld GuideController SimulationManagerBase`2<GuideManager,
GuideController>::m_properties
IL_09D2: stloc.s 41 (GuideController)
IL_09D4: ldloc.s 41 (GuideController)
IL_09D6: brfalse => Label72
IL_09DB: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_09E0: ldfld NetSegmentInstanceGuide NetManager::m_roadDestroyed
IL_09E5: ldloc.s 41 (GuideController)
IL_09E7: ldfld GuideInfo GuideController::m_roadDestroyed
IL_09EC: ldarg.1
IL_09ED: ldc.i4.0
IL_09EE: callvirt System.Void NetSegmentInstanceGuide::Activate(GuideInfo
guideInfo, System.UInt16 segmentID, System.Boolean ignoreID)
IL_09F3: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_09F8: ldfld ServiceTypeGuide NetManager::m_roadDestroyed2
IL_09FD: ldloc.s 41 (GuideController)
IL_09FF: ldfld GuideInfo GuideController::m_roadDestroyed2
IL_0A04: ldarg.0
IL_0A05: ldfld NetInfo NetAI::m_info
IL_0A0A: ldfld ItemClass NetInfo::m_class
IL_0A0F: ldfld Service ItemClass::m_service
IL_0A14: callvirt System.Void ServiceTypeGuide::Activate(GuideInfo guideInfo,
Service service)
IL_0A19: Label72
IL_0A19: ldloc.0
IL_0A1A: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0A1F: ldc.i4.8
IL_0A20: shr.un
IL_0A21: ldc.i4.s 15
IL_0A23: and
IL_0A24: conv.u8
IL_0A25: ldarg.1
IL_0A26: ldc.i4.s 15
IL_0A28: and
IL_0A29: conv.i8
IL_0A2A: bne.un => Label73
IL_0A2F: ldarg.2
IL_0A30: ldfld System.Single NetSegment::m_averageLength
IL_0A35: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_0A3A: stloc.s 42 (System.Int32)
IL_0A3C: call static StatisticsManager
ColossalFramework.Singleton`1<StatisticsManager>::get_instance()
IL_0A41: ldc.i4.s 53
IL_0A43: callvirt StatisticBase StatisticsManager::Acquire(StatisticType type)
IL_0A48: stloc.s 43 (StatisticBase)
IL_0A4A: ldloc.s 43 (StatisticBase)
IL_0A4C: ldloc.s 42 (System.Int32)
IL_0A4E: callvirt abstract virtual System.Void StatisticBase::Add(System.Int32
delta)
IL_0A53: Label71
IL_0A53: Label73
IL_0A53: ldarg.2
IL_0A54: ldloc.2
IL_0A55: stfld Problem NetSegment::m_problems
IL_0A5A: // end original
IL_0A5A: ret
DONE

### Patch: static System.Void


TrainTrackBaseAI::LevelCrossingSimulationStep(System.UInt16 nodeID, NetNode& data)
### Replacement: static System.Void
TrainTrackBaseAI::LevelCrossingSimulationStep_Patch0(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: // start original
IL_0000: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0005: stloc.0
IL_0006: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_000B: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldc.i4.0
IL_0014: stloc.3
IL_0015: ldc.i4.0
IL_0016: stloc.s 4 (System.Int32)
IL_0018: br => Label0
IL_001D: Label12
IL_001D: ldarg.1
IL_001E: ldloc.s 4 (System.Int32)
IL_0020: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0025: stloc.s 5 (System.UInt16)
IL_0027: ldloc.s 5 (System.UInt16)
IL_0029: brfalse => Label1
IL_002E: ldloc.0
IL_002F: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0034: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0039: ldloc.s 5 (System.UInt16)
IL_003B: ldelema NetSegment
IL_0040: call NetInfo NetSegment::get_Info()
IL_0045: stloc.s 6 (NetInfo)
IL_0047: ldloc.s 6 (NetInfo)
IL_0049: ldfld ItemClass NetInfo::m_class
IL_004E: ldfld Service ItemClass::m_service
IL_0053: ldc.i4.s 9
IL_0055: beq => Label2
IL_005A: ldloc.s 6 (NetInfo)
IL_005C: ldfld Lane[] NetInfo::m_lanes
IL_0061: brfalse => Label3
IL_0066: ldloc.0
IL_0067: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_006C: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0071: ldloc.s 5 (System.UInt16)
IL_0073: ldelema NetSegment
IL_0078: ldfld System.UInt16 NetSegment::m_startNode
IL_007D: ldarg.0
IL_007E: ceq
IL_0080: stloc.s 7 (System.Boolean)
IL_0082: ldloc.0
IL_0083: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0088: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_008D: ldloc.s 5 (System.UInt16)
IL_008F: ldelema NetSegment
IL_0094: ldfld System.UInt32 NetSegment::m_lanes
IL_0099: stloc.s 8 (System.UInt32)
IL_009B: ldc.i4.0
IL_009C: stloc.s 9 (System.Int32)
IL_009E: br => Label4
IL_00A3: Label10
IL_00A3: ldloc.s 6 (NetInfo)
IL_00A5: ldfld Lane[] NetInfo::m_lanes
IL_00AA: ldloc.s 9 (System.Int32)
IL_00AC: ldelem.ref
IL_00AD: ldfld LaneType Lane::m_laneType
IL_00B2: ldc.i4.1
IL_00B3: bne.un => Label5
IL_00B8: ldloc.0
IL_00B9: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00BE: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00C3: ldloc.s 8 (System.UInt32)
IL_00C5: conv.u
IL_00C6: ldelema NetLane
IL_00CB: ldloc.s 7 (System.Boolean)
IL_00CD: brfalse => Label6
IL_00D2: ldc.r4 0
IL_00D7: br => Label7
IL_00DC: Label6
IL_00DC: ldc.r4 1
IL_00E1: Label7
IL_00E1: call UnityEngine.Vector3 NetLane::CalculatePosition(System.Single
laneOffset)
IL_00E6: stloc.s 10 (UnityEngine.Vector3)
IL_00E8: ldloc.s 10 (UnityEngine.Vector3)
IL_00EA: call static System.Boolean
TrainTrackBaseAI::CheckOverlap(UnityEngine.Vector3 pos)
IL_00EF: brfalse => Label8
IL_00F4: ldc.i4.1
IL_00F5: stloc.2
IL_00F6: Label5
IL_00F6: Label8
IL_00F6: ldloc.0
IL_00F7: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00FC: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0101: ldloc.s 8 (System.UInt32)
IL_0103: conv.u
IL_0104: ldelema NetLane
IL_0109: ldfld System.UInt32 NetLane::m_nextLane
IL_010E: stloc.s 8 (System.UInt32)
IL_0110: ldloc.s 9 (System.Int32)
IL_0112: ldc.i4.1
IL_0113: add
IL_0114: stloc.s 9 (System.Int32)
IL_0116: Label4
IL_0116: ldloc.s 9 (System.Int32)
IL_0118: ldloc.s 6 (NetInfo)
IL_011A: ldfld Lane[] NetInfo::m_lanes
IL_011F: ldlen
IL_0120: conv.i4
IL_0121: bge => Label9
IL_0126: ldloc.s 8 (System.UInt32)
IL_0128: brtrue => Label10
IL_012D: Label3
IL_012D: Label9
IL_012D: ldarg.0
IL_012E: ldloc.0
IL_012F: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0134: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0139: ldloc.s 5 (System.UInt16)
IL_013B: ldelema NetSegment
IL_0140: ldloc.1
IL_0141: ldc.i4 256
IL_0146: sub
IL_0147: ldloca.s 11 (RoadBaseAI+TrafficLightState)
IL_0149: ldloca.s 12 (RoadBaseAI+TrafficLightState)
IL_014B: ldloca.s 13 (System.Boolean)
IL_014D: ldloca.s 14 (System.Boolean)
IL_014F: 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_0154: ldloc.s 13 (System.Boolean)
IL_0156: brfalse => Label11
IL_015B: ldc.i4.1
IL_015C: stloc.2
IL_015D: Label1
IL_015D: Label2
IL_015D: Label11
IL_015D: ldloc.s 4 (System.Int32)
IL_015F: ldc.i4.1
IL_0160: add
IL_0161: stloc.s 4 (System.Int32)
IL_0163: Label0
IL_0163: ldloc.s 4 (System.Int32)
IL_0165: ldc.i4.8
IL_0166: blt => Label12
IL_016B: ldloc.2
IL_016C: stloc.3
IL_016D: ldc.i4.0
IL_016E: stloc.s 15 (System.Int32)
IL_0170: br => Label13
IL_0175: Label27
IL_0175: ldarg.1
IL_0176: ldloc.s 15 (System.Int32)
IL_0178: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_017D: stloc.s 16 (System.UInt16)
IL_017F: ldloc.s 16 (System.UInt16)
IL_0181: brfalse => Label14
IL_0186: ldloc.0
IL_0187: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_018C: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0191: ldloc.s 16 (System.UInt16)
IL_0193: ldelema NetSegment
IL_0198: call NetInfo NetSegment::get_Info()
IL_019D: stloc.s 17 (NetInfo)
IL_019F: ldarg.0
IL_01A0: ldloc.0
IL_01A1: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01A6: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01AB: ldloc.s 16 (System.UInt16)
IL_01AD: ldelema NetSegment
IL_01B2: ldloc.1
IL_01B3: ldc.i4 256
IL_01B8: sub
IL_01B9: ldloca.s 18 (RoadBaseAI+TrafficLightState)
IL_01BB: ldloca.s 19 (RoadBaseAI+TrafficLightState)
IL_01BD: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_01C2: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01C4: ldc.i4.s -2
IL_01C6: and
IL_01C7: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01C9: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_01CB: ldc.i4.s -2
IL_01CD: and
IL_01CE: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_01D0: ldloc.s 17 (NetInfo)
IL_01D2: ldfld ItemClass NetInfo::m_class
IL_01D7: ldfld Service ItemClass::m_service
IL_01DC: ldc.i4.s 9
IL_01DE: bne.un => Label15
IL_01E3: ldloc.3
IL_01E4: brfalse => Label16
IL_01E9: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01EB: ldc.i4.2
IL_01EC: and
IL_01ED: brtrue => Label17
IL_01F2: ldc.i4.3
IL_01F3: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01F5: Label17
IL_01F5: br => Label18
IL_01FA: Label16
IL_01FA: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01FC: ldc.i4.2
IL_01FD: and
IL_01FE: brfalse => Label19
IL_0203: ldc.i4.1
IL_0204: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0206: Label18
IL_0206: Label19
IL_0206: ldc.i4.0
IL_0207: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0209: br => Label20
IL_020E: Label15
IL_020E: ldloc.3
IL_020F: brfalse => Label21
IL_0214: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0216: ldc.i4.2
IL_0217: and
IL_0218: brfalse => Label22
IL_021D: ldc.i4.1
IL_021E: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0220: Label22
IL_0220: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0222: ldc.i4.2
IL_0223: and
IL_0224: brtrue => Label23
IL_0229: ldc.i4.3
IL_022A: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_022C: Label23
IL_022C: br => Label24
IL_0231: Label21
IL_0231: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0233: ldc.i4.2
IL_0234: and
IL_0235: brtrue => Label25
IL_023A: ldc.i4.3
IL_023B: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_023D: Label25
IL_023D: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_023F: ldc.i4.2
IL_0240: and
IL_0241: brfalse => Label26
IL_0246: ldc.i4.1
IL_0247: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0249: Label20
IL_0249: Label24
IL_0249: Label26
IL_0249: ldarg.0
IL_024A: ldloc.0
IL_024B: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0250: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0255: ldloc.s 16 (System.UInt16)
IL_0257: ldelema NetSegment
IL_025C: ldloc.1
IL_025D: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_025F: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0261: ldc.i4.0
IL_0262: ldc.i4.0
IL_0263: 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_0268: Label14
IL_0268: ldloc.s 15 (System.Int32)
IL_026A: ldc.i4.1
IL_026B: add
IL_026C: stloc.s 15 (System.Int32)
IL_026E: Label13
IL_026E: ldloc.s 15 (System.Int32)
IL_0270: ldc.i4.8
IL_0271: blt => Label27
IL_0276: // end original
IL_0276: ret
DONE

### Patch: virtual System.Void HumanAI::ArriveAtDestination(System.UInt16


instanceID, CitizenInstance& citizenData, System.Boolean success)
### Replacement: static System.Void HumanAI::ArriveAtDestination_Patch0(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: // start original
IL_0000: ldarg.2
IL_0001: ldfld System.UInt32 CitizenInstance::m_citizen
IL_0006: stloc.0
IL_0007: ldloc.0
IL_0008: brfalse => Label0
IL_000D: call static CitizenManager
ColossalFramework.Singleton`1<CitizenManager>::get_instance()
IL_0012: stloc.1
IL_0013: ldloc.1
IL_0014: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0019: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_001E: ldloc.0
IL_001F: conv.u
IL_0020: ldelema Citizen
IL_0025: ldloc.0
IL_0026: ldc.i4.0
IL_0027: ldc.i4.0
IL_0028: call System.Void Citizen::SetVehicle(System.UInt32 citizenID,
System.UInt16 vehicleID, System.UInt32 unitID)
IL_002D: ldarg.2
IL_002E: ldfld Flags CitizenInstance::m_flags
IL_0033: ldc.i4 134217728
IL_0038: and
IL_0039: brfalse => Label1
IL_003E: ldarg.3
IL_003F: brfalse => Label2
IL_0044: ldarg.2
IL_0045: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_004A: stloc.2
IL_004B: ldloc.2
IL_004C: brfalse => Label3
IL_0051: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0056: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_005B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0060: ldloc.2
IL_0061: ldelema NetNode
IL_0066: ldfld System.UInt16 NetNode::m_transportLine
IL_006B: stloc.3
IL_006C: ldloc.3
IL_006D: brfalse => Label4
IL_0072: call static TransportManager
ColossalFramework.Singleton`1<TransportManager>::get_instance()
IL_0077: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_007C: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_0081: ldloc.3
IL_0082: ldelema TransportLine
IL_0087: call TransportInfo TransportLine::get_Info()
IL_008C: stloc.s 4 (TransportInfo)
IL_008E: ldloc.s 4 (TransportInfo)
IL_0090: ldfld VehicleType TransportInfo::m_vehicleType
IL_0095: brtrue => Label5
IL_009A: ldarg.1
IL_009B: ldc.i4.1
IL_009C: and
IL_009D: brtrue => Label6
IL_00A2: ldloc.2
IL_00A3: call static System.UInt16 TransportLine::GetNextStop(System.UInt16
stop)
IL_00A8: stloc.2
IL_00A9: br => Label7
IL_00AE: Label6
IL_00AE: ldloc.2
IL_00AF: call static System.UInt16 TransportLine::GetPrevStop(System.UInt16
stop)
IL_00B4: stloc.2
IL_00B5: Label7
IL_00B5: ldloc.2
IL_00B6: brfalse => Label8
IL_00BB: ldarg.2
IL_00BC: dup
IL_00BD: ldfld Flags CitizenInstance::m_flags
IL_00C2: ldc.i4 268435456
IL_00C7: or
IL_00C8: stfld Flags CitizenInstance::m_flags
IL_00CD: ldarg.0
IL_00CE: ldarg.1
IL_00CF: ldarg.2
IL_00D0: ldloc.2
IL_00D1: ldc.i4.1
IL_00D2: callvirt virtual System.Void CitizenAI::SetTarget(System.UInt16
instanceID, CitizenInstance& data, System.UInt16 targetIndex, System.Boolean
targetIsNode)
IL_00D7: br => Label16
IL_00DC: Label8
IL_00DC: br => Label9
IL_00E1: Label5
IL_00E1: ldarg.2
IL_00E2: dup
IL_00E3: ldfld Flags CitizenInstance::m_flags
IL_00E8: ldc.i4 268435456
IL_00ED: or
IL_00EE: stfld Flags CitizenInstance::m_flags
IL_00F3: ldarg.0
IL_00F4: ldarg.1
IL_00F5: ldarg.2
IL_00F6: ldloc.2
IL_00F7: call System.Void HumanAI::WaitTouristVehicle(System.UInt16
instanceID, CitizenInstance& citizenData, System.UInt16 stop)
IL_00FC: br => Label17
IL_0101: Label2
IL_0101: Label3
IL_0101: Label4
IL_0101: Label9
IL_0101: br => Label10
IL_0106: Label1
IL_0106: ldarg.3
IL_0107: brfalse => Label11
IL_010C: ldloc.1
IL_010D: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0112: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0117: ldloc.0
IL_0118: conv.u
IL_0119: ldelema Citizen
IL_011E: ldloc.0
IL_011F: ldarg.2
IL_0120: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_0125: call System.Void Citizen::SetLocationByBuilding(System.UInt32
citizenID, System.UInt16 buildingID)
IL_012A: Label11
IL_012A: ldarg.2
IL_012B: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_0130: brfalse => Label12
IL_0135: ldloc.1
IL_0136: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_013B: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0140: ldloc.0
IL_0141: conv.u
IL_0142: ldelema Citizen
IL_0147: call Location Citizen::get_CurrentLocation()
IL_014C: ldc.i4.2
IL_014D: bne.un => Label13
IL_0152: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0157: stloc.s 5 (BuildingManager)
IL_0159: ldloc.s 5 (BuildingManager)
IL_015B: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0160: ldfld Building[] Array16`1<Building>::m_buffer
IL_0165: ldarg.2
IL_0166: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_016B: ldelema Building
IL_0170: call BuildingInfo Building::get_Info()
IL_0175: stloc.s 6 (BuildingInfo)
IL_0177: ldloc.s 6 (BuildingInfo)
IL_0179: ldfld BuildingAI BuildingInfo::m_buildingAI
IL_017E: ldarg.2
IL_017F: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_0184: ldloc.s 5 (BuildingManager)
IL_0186: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_018B: ldfld Building[] Array16`1<Building>::m_buffer
IL_0190: ldarg.2
IL_0191: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_0196: ldelema Building
IL_019B: ldloc.0
IL_019C: callvirt virtual System.Void BuildingAI::VisitorEnter(System.UInt16
buildingID, Building& data, System.UInt32 citizen)
IL_01A1: Label0
IL_01A1: Label10
IL_01A1: Label12
IL_01A1: Label13
IL_01A1: ldarg.2
IL_01A2: ldfld Flags CitizenInstance::m_flags
IL_01A7: ldc.i4.s 64
IL_01A9: and
IL_01AA: brfalse => Label14
IL_01AF: ldarg.3
IL_01B0: brtrue => Label15
IL_01B5: Label14
IL_01B5: ldarg.0
IL_01B6: ldarg.1
IL_01B7: ldarg.2
IL_01B8: ldc.i4.0
IL_01B9: callvirt virtual System.Void CitizenAI::SetSource(System.UInt16
instanceID, CitizenInstance& data, System.UInt16 sourceBuilding)
IL_01BE: ldarg.0
IL_01BF: ldarg.1
IL_01C0: ldarg.2
IL_01C1: ldc.i4.0
IL_01C2: call System.Void CitizenAI::SetTarget(System.UInt16 instanceID,
CitizenInstance& data, System.UInt16 targetBuilding)
IL_01C7: ldarg.2
IL_01C8: ldarg.1
IL_01C9: call System.Void CitizenInstance::Unspawn(System.UInt16 instanceID)
IL_01CE: // end original
IL_01CE: Label15
IL_01CE: Label16
IL_01CE: Label17
IL_01CE: ret
DONE

### Patch: virtual System.Void CommonBuildingAI::SimulationStep(System.UInt16


buildingID, Building& data)
### Replacement: static System.Void
CommonBuildingAI::SimulationStep_Patch0(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: // start original
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: ldarg.2
IL_0003: call virtual System.Void BuildingAI::SimulationStep(System.UInt16
buildingID, Building& data)
IL_0008: ldarg.2
IL_0009: ldfld Flags Building::m_flags
IL_000E: ldc.i4 524288
IL_0013: and
IL_0014: brfalse => Label0
IL_0019: ldarg.1
IL_001A: ldc.i4.8
IL_001B: shl
IL_001C: ldc.i4 49152
IL_0021: div.un
IL_0022: stloc.0
IL_0023: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0028: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_002D: ldloc.0
IL_002E: sub
IL_002F: stloc.1
IL_0030: ldarg.2
IL_0031: ldfld Flags Building::m_flags
IL_0036: ldc.i4 4194304
IL_003B: and
IL_003C: brfalse => Label1
IL_0041: ldarg.2
IL_0042: ldloc.1
IL_0043: ldc.i4 256
IL_0048: sub
IL_0049: call Frame Building::GetFrameData(System.UInt32 simulationFrame)
IL_004E: stloc.2
IL_004F: ldloca.s 2 (Building+Frame)
IL_0051: ldfld System.Byte Frame::m_constructState
IL_0056: brtrue => Label2
IL_005B: Label1
IL_005B: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0060: ldarg.1
IL_0061: callvirt System.Void BuildingManager::ReleaseBuilding(System.UInt16
building)
IL_0066: // end original
IL_0066: Label0
IL_0066: Label2
IL_0066: ret
DONE

### Patch: System.Void RoadWorldInfoPanel::OnAdjustRoadButton()


### Replacement: static System.Void
RoadWorldInfoPanel::OnAdjustRoadButton_Patch0(RoadWorldInfoPanel this)
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: ldc.i4.s 30
IL_0007: ldc.i4.2
IL_0008: callvirt System.Void InfoManager::SetCurrentMode(InfoMode mode,
SubInfoMode subMode)
IL_000D: ldarg.0
IL_000E: call System.Void WorldInfoPanel::Hide()
IL_0013: // end original
IL_0013: ret
DONE

### Patch: System.Void NetSegment::CalculateSegment(System.UInt16 segmentID)


### Replacement: static System.Void NetSegment::CalculateSegment_Patch0(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<NetManager>::get_instance()
IL_0036: stloc.0
IL_0037: ldloc.0
IL_0038: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0074: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16>
NetManager::m_updateNameVisibility
IL_00CF: ldarg.1
IL_00D0: callvirt System.Boolean
System.Collections.Generic.HashSet`1<System.UInt16>::Add(System.UInt16 item)
IL_00D5: pop
IL_00D6: // end original
IL_00D6: Label0
IL_00D6: ret
DONE

### Patch: System.Void LoadAssetPanel::OnLoad()


### Replacement: static System.Void LoadAssetPanel::OnLoad_Patch0(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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<CustomAssetMetaData>::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<CustomAssetMetaData>::GetListingMetaData(System.Int32 index)
IL_0037: stloc.0
IL_0038: ldarg.0
IL_0039: ldloc.0
IL_003A: call System.Void
LoadSavePanelBase`1<CustomAssetMetaData>::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<CustomAssetMetaData>::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<SimulationManager>::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<SimulationManager>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_010B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<VehicleInfo>::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<VehicleInfo>::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<VehicleInfo>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_023B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<BuildingInfo>::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<BuildingInfo>::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<BuildingInfo>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_036B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<BuildingInfo>::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<BuildingInfo>::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<BuildingInfo>::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<BuildingManager>::get_instance()
IL_0482: callvirt virtual System.Void SimulationManagerBase`2<BuildingManager,
BuildingProperties>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_04A5: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<BuildingInfo>::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<CitizenInfo>::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<VehicleInfo>::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<PropInfo>::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<TreeInfo>::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<NetInfo>::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: ret
DONE

### Patch: System.Void InfoManager::SetMode(InfoMode mode, SubInfoMode subMode)


### Replacement: static System.Void InfoManager::SetMode_Patch0(InfoManager this,
InfoMode mode, SubInfoMode subMode)
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: stfld InfoMode InfoManager::m_currentMode
IL_0007: ldarg.0
IL_0008: ldarg.2
IL_0009: stfld SubInfoMode InfoManager::m_currentSubMode
IL_000E: ldarg.1
IL_000F: ldc.i4.1
IL_0010: sub
IL_0011: 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
IL_00AA: br => Label37
IL_00AF: Label0
IL_00AF: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00B4: ldc.i4.0
IL_00B5: ldc.i4.0
IL_00B6: ldc.i4.m1
IL_00B7: ldc.r4 300
IL_00BC: ldc.i4.0
IL_00BD: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_00C2: br => Label38
IL_00C7: Label1
IL_00C7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00CC: ldc.i4.0
IL_00CD: ldc.i4.0
IL_00CE: ldc.i4.m1
IL_00CF: ldc.r4 300
IL_00D4: ldc.i4.0
IL_00D5: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_00DA: br => Label39
IL_00DF: Label2
IL_00DF: ldarg.2
IL_00E0: brtrue => Label40
IL_00E5: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00EA: ldc.i4.s 15
IL_00EC: ldc.i4.0
IL_00ED: ldc.i4.0
IL_00EE: ldc.r4 500
IL_00F3: ldc.i4.0
IL_00F4: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_00F9: br => Label41
IL_00FE: Label40
IL_00FE: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0103: ldc.i4.0
IL_0104: ldc.i4.0
IL_0105: ldc.i4.m1
IL_0106: ldc.r4 300
IL_010B: ldc.i4.0
IL_010C: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0111: Label41
IL_0111: br => Label42
IL_0116: Label3
IL_0116: ldarg.2
IL_0117: ldc.i4.1
IL_0118: bne.un => Label43
IL_011D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0122: ldc.i4.s 14
IL_0124: ldc.i4.0
IL_0125: ldc.i4.1
IL_0126: ldc.r4 500
IL_012B: ldc.i4.0
IL_012C: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0131: br => Label44
IL_0136: Label43
IL_0136: ldarg.2
IL_0137: ldc.i4.3
IL_0138: bne.un => Label45
IL_013D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0142: ldc.i4.s 14
IL_0144: ldc.i4.0
IL_0145: ldc.i4.4
IL_0146: ldc.r4 500
IL_014B: ldc.i4.0
IL_014C: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0151: br => Label46
IL_0156: Label45
IL_0156: ldarg.2
IL_0157: ldc.i4.2
IL_0158: bne.un => Label47
IL_015D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0162: ldc.i4.s 14
IL_0164: ldc.i4.0
IL_0165: ldc.i4.3
IL_0166: ldc.r4 500
IL_016B: ldc.i4.0
IL_016C: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0171: br => Label48
IL_0176: Label47
IL_0176: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_017B: ldc.i4.s 14
IL_017D: ldc.i4.0
IL_017E: ldc.i4.0
IL_017F: ldc.r4 500
IL_0184: ldc.i4.0
IL_0185: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_018A: Label44
IL_018A: Label46
IL_018A: Label48
IL_018A: br => Label49
IL_018F: Label12
IL_018F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0194: ldc.i4.0
IL_0195: ldc.i4.0
IL_0196: ldc.i4.m1
IL_0197: ldc.r4 300
IL_019C: ldc.i4.0
IL_019D: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01A2: br => Label50
IL_01A7: Label4
IL_01A7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01AC: ldc.i4.0
IL_01AD: ldc.i4.0
IL_01AE: ldc.i4.m1
IL_01AF: ldc.r4 300
IL_01B4: ldc.i4.0
IL_01B5: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01BA: br => Label51
IL_01BF: Label5
IL_01BF: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01C4: ldc.i4.0
IL_01C5: ldc.i4.0
IL_01C6: ldc.i4.m1
IL_01C7: ldc.r4 300
IL_01CC: ldc.i4.0
IL_01CD: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01D2: br => Label52
IL_01D7: Label8
IL_01D7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01DC: ldc.i4.0
IL_01DD: ldc.i4.0
IL_01DE: ldc.i4.m1
IL_01DF: ldc.r4 300
IL_01E4: ldc.i4.0
IL_01E5: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01EA: br => Label53
IL_01EF: Label6
IL_01EF: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01F4: ldc.i4.0
IL_01F5: ldc.i4.0
IL_01F6: ldc.i4.m1
IL_01F7: ldc.r4 300
IL_01FC: ldc.i4.0
IL_01FD: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0202: br => Label54
IL_0207: Label7
IL_0207: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_020C: ldc.i4.0
IL_020D: ldc.i4.0
IL_020E: ldc.i4.m1
IL_020F: ldc.r4 300
IL_0214: ldc.i4.0
IL_0215: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_021A: br => Label55
IL_021F: Label9
IL_021F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0224: ldc.i4.0
IL_0225: ldc.i4.0
IL_0226: ldc.i4.m1
IL_0227: ldc.r4 300
IL_022C: ldc.i4.0
IL_022D: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0232: br => Label56
IL_0237: Label10
IL_0237: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_023C: ldc.i4.0
IL_023D: ldc.i4.0
IL_023E: ldc.i4.m1
IL_023F: ldc.r4 300
IL_0244: ldc.i4.0
IL_0245: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_024A: br => Label57
IL_024F: Label11
IL_024F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0254: ldc.i4.0
IL_0255: ldc.i4.0
IL_0256: ldc.i4.m1
IL_0257: ldc.r4 300
IL_025C: ldc.i4.0
IL_025D: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0262: br => Label58
IL_0267: Label14
IL_0267: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_026C: ldc.i4.0
IL_026D: ldc.i4.0
IL_026E: ldc.i4.m1
IL_026F: ldc.r4 300
IL_0274: ldc.i4.0
IL_0275: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_027A: br => Label59
IL_027F: Label17
IL_027F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0284: ldc.i4.s 18
IL_0286: ldc.i4.0
IL_0287: ldc.i4.0
IL_0288: ldc.r4 500
IL_028D: ldc.i4.0
IL_028E: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0293: br => Label60
IL_0298: Label19
IL_0298: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_029D: ldc.i4.0
IL_029E: ldc.i4.0
IL_029F: ldc.i4.m1
IL_02A0: ldc.r4 300
IL_02A5: ldc.i4.1
IL_02A6: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02AB: br => Label61
IL_02B0: Label18
IL_02B0: ldarg.2
IL_02B1: ldc.i4.1
IL_02B2: bne.un => Label62
IL_02B7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02BC: ldc.i4.s 16
IL_02BE: ldc.i4.0
IL_02BF: ldc.i4.1
IL_02C0: ldc.r4 500
IL_02C5: ldc.i4.1
IL_02C6: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02CB: br => Label63
IL_02D0: Label62
IL_02D0: ldarg.2
IL_02D1: ldc.i4.2
IL_02D2: bne.un => Label64
IL_02D7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02DC: ldc.i4.s 16
IL_02DE: ldc.i4.0
IL_02DF: ldc.i4.2
IL_02E0: ldc.r4 500
IL_02E5: ldc.i4.1
IL_02E6: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02EB: br => Label65
IL_02F0: Label64
IL_02F0: ldarg.2
IL_02F1: brtrue => Label66
IL_02F6: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02FB: ldc.i4.s 16
IL_02FD: ldc.i4.0
IL_02FE: ldc.i4.0
IL_02FF: ldc.r4 500
IL_0304: ldc.i4.1
IL_0305: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_030A: br => Label67
IL_030F: Label66
IL_030F: ldarg.2
IL_0310: ldc.i4.4
IL_0311: bne.un => Label68
IL_0316: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_031B: ldc.i4.s 16
IL_031D: ldc.i4.0
IL_031E: ldc.i4.3
IL_031F: ldc.r4 500
IL_0324: ldc.i4.1
IL_0325: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_032A: br => Label69
IL_032F: Label68
IL_032F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0334: ldc.i4.s 16
IL_0336: ldc.i4.0
IL_0337: ldc.i4.2
IL_0338: ldc.r4 500
IL_033D: ldc.i4.1
IL_033E: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0343: Label63
IL_0343: Label65
IL_0343: Label67
IL_0343: Label69
IL_0343: br => Label70
IL_0348: Label16
IL_0348: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_034D: ldc.i4.0
IL_034E: ldc.i4.0
IL_034F: ldc.i4.m1
IL_0350: ldc.r4 300
IL_0355: ldc.i4.0
IL_0356: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_035B: br => Label71
IL_0360: Label13
IL_0360: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0365: ldc.i4.0
IL_0366: ldc.i4.0
IL_0367: ldc.i4.m1
IL_0368: ldc.r4 300
IL_036D: ldc.i4.0
IL_036E: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0373: br => Label72
IL_0378: Label15
IL_0378: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_037D: ldc.i4.s 13
IL_037F: ldc.i4.0
IL_0380: ldc.i4.m1
IL_0381: ldc.r4 2000
IL_0386: ldc.i4.0
IL_0387: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_038C: br => Label73
IL_0391: Label20
IL_0391: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0396: ldc.i4.0
IL_0397: ldc.i4.0
IL_0398: ldc.i4.m1
IL_0399: ldc.r4 300
IL_039E: ldc.i4.0
IL_039F: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03A4: br => Label74
IL_03A9: Label21
IL_03A9: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03AE: ldc.i4.0
IL_03AF: ldc.i4.0
IL_03B0: ldc.i4.m1
IL_03B1: ldc.r4 300
IL_03B6: ldc.i4.0
IL_03B7: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03BC: br => Label75
IL_03C1: Label22
IL_03C1: ldarg.2
IL_03C2: brtrue => Label76
IL_03C7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03CC: ldc.i4.s 9
IL_03CE: ldc.i4.0
IL_03CF: ldc.i4.1
IL_03D0: ldc.r4 2000
IL_03D5: ldc.i4.0
IL_03D6: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03DB: br => Label77
IL_03E0: Label76
IL_03E0: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03E5: ldc.i4.0
IL_03E6: ldc.i4.0
IL_03E7: ldc.i4.m1
IL_03E8: ldc.r4 300
IL_03ED: ldc.i4.0
IL_03EE: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03F3: Label77
IL_03F3: br => Label78
IL_03F8: Label23
IL_03F8: ldarg.2
IL_03F9: brtrue => Label79
IL_03FE: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0403: ldc.i4.s 9
IL_0405: ldc.i4.0
IL_0406: ldc.i4.3
IL_0407: ldc.r4 2000
IL_040C: ldc.i4.0
IL_040D: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0412: br => Label80
IL_0417: Label79
IL_0417: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_041C: ldc.i4.0
IL_041D: ldc.i4.0
IL_041E: ldc.i4.m1
IL_041F: ldc.r4 300
IL_0424: ldc.i4.0
IL_0425: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_042A: Label80
IL_042A: br => Label81
IL_042F: Label24
IL_042F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0434: ldc.i4.s 20
IL_0436: ldc.i4.0
IL_0437: ldc.i4.3
IL_0438: ldc.r4 500
IL_043D: ldc.i4.1
IL_043E: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0443: br => Label82
IL_0448: Label25
IL_0448: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_044D: ldc.i4.0
IL_044E: ldc.i4.0
IL_044F: ldc.i4.m1
IL_0450: ldc.r4 300
IL_0455: ldc.i4.0
IL_0456: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_045B: br => Label83
IL_0460: Label26
IL_0460: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0465: ldc.i4.s 20
IL_0467: ldc.i4.0
IL_0468: ldc.i4.1
IL_0469: ldc.r4 2000
IL_046E: ldc.i4.0
IL_046F: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0474: br => Label84
IL_0479: Label27
IL_0479: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_047E: ldc.i4.0
IL_047F: ldc.i4.0
IL_0480: ldc.i4.m1
IL_0481: ldc.r4 300
IL_0486: ldc.i4.0
IL_0487: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_048C: br => Label85
IL_0491: Label28
IL_0491: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0496: ldc.i4.0
IL_0497: ldc.i4.0
IL_0498: ldc.i4.m1
IL_0499: ldc.r4 300
IL_049E: ldc.i4.0
IL_049F: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04A4: br => Label86
IL_04A9: Label29
IL_04A9: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04AE: ldc.i4.0
IL_04AF: ldc.i4.0
IL_04B0: ldc.i4.m1
IL_04B1: ldc.r4 300
IL_04B6: ldc.i4.0
IL_04B7: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04BC: br => Label87
IL_04C1: Label30
IL_04C1: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04C6: ldc.i4.0
IL_04C7: ldc.i4.0
IL_04C8: ldc.i4.m1
IL_04C9: ldc.r4 300
IL_04CE: ldc.i4.0
IL_04CF: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04D4: br => Label88
IL_04D9: Label31
IL_04D9: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04DE: ldc.i4.0
IL_04DF: ldc.i4.0
IL_04E0: ldc.i4.m1
IL_04E1: ldc.r4 300
IL_04E6: ldc.i4.0
IL_04E7: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04EC: br => Label89
IL_04F1: Label32
IL_04F1: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04F6: ldc.i4.s 12
IL_04F8: ldc.i4.s 17
IL_04FA: ldc.i4.1
IL_04FB: ldc.r4 2000
IL_0500: ldc.i4.0
IL_0501: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0506: br => Label90
IL_050B: Label33
IL_050B: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0510: ldc.i4.0
IL_0511: ldc.i4.0
IL_0512: ldc.i4.m1
IL_0513: ldc.r4 300
IL_0518: ldc.i4.0
IL_0519: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_051E: br => Label91
IL_0523: Label34
IL_0523: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0528: ldc.i4.s 19
IL_052A: ldc.i4.s 28
IL_052C: ldc.i4.1
IL_052D: ldc.r4 500
IL_0532: ldc.i4.0
IL_0533: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0538: br => Label92
IL_053D: Label35
IL_053D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0542: ldc.i4.0
IL_0543: ldc.i4.0
IL_0544: ldc.i4.m1
IL_0545: ldc.r4 300
IL_054A: ldc.i4.0
IL_054B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0550: br => Label93
IL_0555: Label36
IL_0555: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_055A: ldc.i4.0
IL_055B: ldc.i4.0
IL_055C: ldc.i4.m1
IL_055D: ldc.r4 300
IL_0562: ldc.i4.0
IL_0563: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0568: br => Label94
IL_056D: Label37
IL_056D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0572: ldc.i4.0
IL_0573: ldc.i4.0
IL_0574: ldc.i4.m1
IL_0575: ldc.r4 300
IL_057A: ldc.i4.0
IL_057B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0580: br => Label95
IL_0585: // end original
IL_0585: Label38
IL_0585: Label39
IL_0585: Label42
IL_0585: Label49
IL_0585: Label50
IL_0585: Label51
IL_0585: Label52
IL_0585: Label53
IL_0585: Label54
IL_0585: Label55
IL_0585: Label56
IL_0585: Label57
IL_0585: Label58
IL_0585: Label59
IL_0585: Label60
IL_0585: Label61
IL_0585: Label70
IL_0585: Label71
IL_0585: Label72
IL_0585: Label73
IL_0585: Label74
IL_0585: Label75
IL_0585: Label78
IL_0585: Label81
IL_0585: Label82
IL_0585: Label83
IL_0585: Label84
IL_0585: Label85
IL_0585: Label86
IL_0585: Label87
IL_0585: Label88
IL_0585: Label89
IL_0585: Label90
IL_0585: Label91
IL_0585: Label92
IL_0585: Label93
IL_0585: Label94
IL_0585: Label95
IL_0585: ret
DONE

### Patch: virtual System.Void DefaultTool::OnToolGUI(UnityEngine.Event e)


### Replacement: static System.Void DefaultTool::OnToolGUI_Patch0(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<SimulationManager>::get_instance()
IL_0046: ldarg.0
IL_0047: ldftn System.Void DefaultTool::<OnToolGUI>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<InstanceManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<BuildingManager>::get_instance()
IL_017E: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0183: ldfld Building[] Array16`1<Building>::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<SimulationManager>::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<SimulationManager>::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::<OnToolGUI>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<SimulationManager>::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::<OnToolGUI>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<LogChannel>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<BuildingManager>::get_instance()
IL_04D2: stloc.s 13 (BuildingManager)
IL_04D4: ldloc.s 13 (BuildingManager)
IL_04D6: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_04DB: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_04FA: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0555: ldfld Building[] Array16`1<Building>::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<VehicleManager>::get_instance()
IL_0590: stloc.s 16 (VehicleManager)
IL_0592: ldloc.s 16 (VehicleManager)
IL_0594: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0599: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_05B8: ldfld Vehicle[] Array16`1<Vehicle>::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})"
IL_05DD: ldc.i4.2
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: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_0601: stloc.s 12 (System.String)
IL_0603: ldloc.s 17 (VehicleInfo)
IL_0605: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_060A: ldloc.s 8 (System.UInt16)
IL_060C: ldloc.s 16 (VehicleManager)
IL_060E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0613: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0618: ldloc.s 8 (System.UInt16)
IL_061A: ldelema Vehicle
IL_061F: callvirt virtual System.String VehicleAI::GetDebugString(System.UInt16
vehicleID, Vehicle& data)
IL_0624: stloc.s 18 (System.String)
IL_0626: ldloc.s 18 (System.String)
IL_0628: brfalse => Label68
IL_062D: ldloc.s 12 (System.String)
IL_062F: ldstr "\n"
IL_0634: ldloc.s 18 (System.String)
IL_0636: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_063B: stloc.s 12 (System.String)
IL_063D: Label66
IL_063D: Label67
IL_063D: Label68
IL_063D: br => Label69
IL_0642: Label65
IL_0642: ldloc.s 9 (System.UInt16)
IL_0644: brfalse => Label70
IL_0649: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_064E: stloc.s 19 (VehicleManager)
IL_0650: ldloc.s 19 (VehicleManager)
IL_0652: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_0657: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_065C: ldloc.s 9 (System.UInt16)
IL_065E: ldelema VehicleParked
IL_0663: ldfld System.UInt16 VehicleParked::m_flags
IL_0668: ldc.i4.1
IL_0669: and
IL_066A: brfalse => Label71
IL_066F: ldloc.s 19 (VehicleManager)
IL_0671: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_0676: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_067B: ldloc.s 9 (System.UInt16)
IL_067D: ldelema VehicleParked
IL_0682: call VehicleInfo VehicleParked::get_Info()
IL_0687: stloc.s 20 (VehicleInfo)
IL_0689: ldloc.s 20 (VehicleInfo)
IL_068B: ldnull
IL_068C: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0691: brfalse => Label72
IL_0696: ldstr "{0} ({1})"
IL_069B: ldc.i4.2
IL_069C: newarr System.Object
IL_06A1: dup
IL_06A2: ldc.i4.0
IL_06A3: ldloc.s 20 (VehicleInfo)
IL_06A5: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_06AA: callvirt System.String UnityEngine.Object::get_name()
IL_06AF: stelem.ref
IL_06B0: dup
IL_06B1: ldc.i4.1
IL_06B2: ldloc.s 9 (System.UInt16)
IL_06B4: box System.UInt16
IL_06B9: stelem.ref
IL_06BA: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_06BF: stloc.s 12 (System.String)
IL_06C1: ldloc.s 20 (VehicleInfo)
IL_06C3: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_06C8: ldloc.s 9 (System.UInt16)
IL_06CA: ldloc.s 19 (VehicleManager)
IL_06CC: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_06D1: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_06D6: ldloc.s 9 (System.UInt16)
IL_06D8: ldelema VehicleParked
IL_06DD: callvirt virtual System.String VehicleAI::GetDebugString(System.UInt16
parkedVehicleID, VehicleParked& data)
IL_06E2: stloc.s 21 (System.String)
IL_06E4: ldloc.s 21 (System.String)
IL_06E6: brfalse => Label73
IL_06EB: ldloc.s 12 (System.String)
IL_06ED: ldstr "\n"
IL_06F2: ldloc.s 21 (System.String)
IL_06F4: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_06F9: stloc.s 12 (System.String)
IL_06FB: Label71
IL_06FB: Label72
IL_06FB: Label73
IL_06FB: br => Label74
IL_0700: Label70
IL_0700: ldloc.s 10 (System.UInt16)
IL_0702: brfalse => Label75
IL_0707: call static CitizenManager
ColossalFramework.Singleton`1<CitizenManager>::get_instance()
IL_070C: stloc.s 22 (CitizenManager)
IL_070E: ldloc.s 22 (CitizenManager)
IL_0710: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0715: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_071A: ldloc.s 10 (System.UInt16)
IL_071C: ldelema CitizenInstance
IL_0721: ldfld Flags CitizenInstance::m_flags
IL_0726: ldc.i4.1
IL_0727: and
IL_0728: brfalse => Label76
IL_072D: ldloc.s 22 (CitizenManager)
IL_072F: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0734: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0739: ldloc.s 10 (System.UInt16)
IL_073B: ldelema CitizenInstance
IL_0740: call CitizenInfo CitizenInstance::get_Info()
IL_0745: stloc.s 23 (CitizenInfo)
IL_0747: ldloc.s 23 (CitizenInfo)
IL_0749: ldnull
IL_074A: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_074F: brfalse => Label77
IL_0754: ldstr "{0} ({1})"
IL_0759: ldc.i4.2
IL_075A: newarr System.Object
IL_075F: dup
IL_0760: ldc.i4.0
IL_0761: ldloc.s 23 (CitizenInfo)
IL_0763: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_0768: callvirt System.String UnityEngine.Object::get_name()
IL_076D: stelem.ref
IL_076E: dup
IL_076F: ldc.i4.1
IL_0770: ldloc.s 10 (System.UInt16)
IL_0772: box System.UInt16
IL_0777: stelem.ref
IL_0778: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_077D: stloc.s 12 (System.String)
IL_077F: ldloc.s 23 (CitizenInfo)
IL_0781: ldfld CitizenAI CitizenInfo::m_citizenAI
IL_0786: ldloc.s 10 (System.UInt16)
IL_0788: ldloc.s 22 (CitizenManager)
IL_078A: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_078F: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0794: ldloc.s 10 (System.UInt16)
IL_0796: ldelema CitizenInstance
IL_079B: callvirt virtual System.String CitizenAI::GetDebugString(System.UInt16
instanceID, CitizenInstance& data)
IL_07A0: stloc.s 24 (System.String)
IL_07A2: ldloc.s 24 (System.String)
IL_07A4: brfalse => Label78
IL_07A9: ldloc.s 12 (System.String)
IL_07AB: ldstr "\n"
IL_07B0: ldloc.s 24 (System.String)
IL_07B2: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_07B7: stloc.s 12 (System.String)
IL_07B9: Label76
IL_07B9: Label77
IL_07B9: Label78
IL_07B9: br => Label79
IL_07BE: Label75
IL_07BE: ldloc.s 11 (System.UInt16)
IL_07C0: brfalse => Label80
IL_07C5: call static TransportManager
ColossalFramework.Singleton`1<TransportManager>::get_instance()
IL_07CA: stloc.s 25 (TransportManager)
IL_07CC: ldloc.s 25 (TransportManager)
IL_07CE: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_07D3: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_07D8: ldloc.s 11 (System.UInt16)
IL_07DA: ldelema TransportLine
IL_07DF: ldfld Flags TransportLine::m_flags
IL_07E4: ldc.i4.1
IL_07E5: and
IL_07E6: brfalse => Label81
IL_07EB: ldloc.s 25 (TransportManager)
IL_07ED: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_07F2: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_07F7: ldloc.s 11 (System.UInt16)
IL_07F9: ldelema TransportLine
IL_07FE: call TransportInfo TransportLine::get_Info()
IL_0803: stloc.s 26 (TransportInfo)
IL_0805: ldloc.s 26 (TransportInfo)
IL_0807: ldnull
IL_0808: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_080D: brfalse => Label82
IL_0812: ldstr "{0} ({1})"
IL_0817: ldc.i4.2
IL_0818: newarr System.Object
IL_081D: dup
IL_081E: ldc.i4.0
IL_081F: ldloc.s 26 (TransportInfo)
IL_0821: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_0826: callvirt System.String UnityEngine.Object::get_name()
IL_082B: stelem.ref
IL_082C: dup
IL_082D: ldc.i4.1
IL_082E: ldloc.s 11 (System.UInt16)
IL_0830: box System.UInt16
IL_0835: stelem.ref
IL_0836: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_083B: stloc.s 12 (System.String)
IL_083D: ldloc.s 25 (TransportManager)
IL_083F: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_0844: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_0849: ldloc.s 11 (System.UInt16)
IL_084B: ldelema TransportLine
IL_0850: ldloc.s 11 (System.UInt16)
IL_0852: call System.String TransportLine::GetDebugString(System.UInt16
lineID)
IL_0857: stloc.s 27 (System.String)
IL_0859: ldloc.s 27 (System.String)
IL_085B: brfalse => Label83
IL_0860: ldloc.s 12 (System.String)
IL_0862: ldstr "\n"
IL_0867: ldloc.s 27 (System.String)
IL_0869: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_086E: stloc.s 12 (System.String)
IL_0870: Label64
IL_0870: Label69
IL_0870: Label74
IL_0870: Label79
IL_0870: Label80
IL_0870: Label81
IL_0870: Label82
IL_0870: Label83
IL_0870: ldloc.s 12 (System.String)
IL_0872: brfalse => Label84
IL_0877: ldloc.s 6 (InstanceID)
IL_0879: ldloca.s 28 (UnityEngine.Vector3)
IL_087B: ldloca.s 29 (UnityEngine.Quaternion)
IL_087D: ldloca.s 30 (UnityEngine.Vector3)
IL_087F: call static System.Boolean InstanceManager::GetPosition(InstanceID
id, UnityEngine.Vector3& position, UnityEngine.Quaternion& rotation,
UnityEngine.Vector3& size)
IL_0884: brtrue => Label85
IL_0889: ldarg.0
IL_088A: ldfld UnityEngine.Vector3 DefaultTool::m_mousePosition
IL_088F: stloc.s 28 (UnityEngine.Vector3)
IL_0891: Label85
IL_0891: call static UnityEngine.Camera UnityEngine.Camera::get_main()
IL_0896: ldloc.s 28 (UnityEngine.Vector3)
IL_0898: callvirt UnityEngine.Vector3
UnityEngine.Camera::WorldToScreenPoint(UnityEngine.Vector3 position)
IL_089D: stloc.s 31 (UnityEngine.Vector3)
IL_089F: ldloca.s 31 (UnityEngine.Vector3)
IL_08A1: call static System.Int32 UnityEngine.Screen::get_height()
IL_08A6: conv.r4
IL_08A7: ldloca.s 31 (UnityEngine.Vector3)
IL_08A9: ldfld System.Single UnityEngine.Vector3::y
IL_08AE: sub
IL_08AF: stfld System.Single UnityEngine.Vector3::y
IL_08B4: call static UnityEngine.Color UnityEngine.GUI::get_color()
IL_08B9: stloc.s 32 (UnityEngine.Color)
IL_08BB: call static UnityEngine.Color UnityEngine.Color::get_cyan()
IL_08C0: call static System.Void UnityEngine.GUI::set_color(UnityEngine.Color
value)
IL_08C5: ldloca.s 31 (UnityEngine.Vector3)
IL_08C7: ldfld System.Single UnityEngine.Vector3::x
IL_08CC: ldloca.s 31 (UnityEngine.Vector3)
IL_08CE: ldfld System.Single UnityEngine.Vector3::y
IL_08D3: ldc.r4 500
IL_08D8: ldc.r4 500
IL_08DD: newobj System.Void UnityEngine.Rect::.ctor(System.Single x,
System.Single y, System.Single width, System.Single height)
IL_08E2: ldloc.s 12 (System.String)
IL_08E4: call static UnityEngine.Color UnityEngine.Color::get_black()
IL_08E9: call static UnityEngine.Color UnityEngine.Color::get_cyan()
IL_08EE: call static UnityEngine.GUISkin UnityEngine.GUI::get_skin()
IL_08F3: callvirt UnityEngine.GUIStyle UnityEngine.GUISkin::get_label()
IL_08F8: ldc.r4 2
IL_08FD: 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_0902: ldloc.s 32 (UnityEngine.Color)
IL_0904: call static System.Void UnityEngine.GUI::set_color(UnityEngine.Color
value)
IL_0909: // end original
IL_0909: Label57
IL_0909: Label58
IL_0909: Label59
IL_0909: Label84
IL_0909: ret
DONE

### Patch: virtual System.Void DefaultTool::RenderOverlay(CameraInfo cameraInfo)


### Replacement: static System.Void DefaultTool::RenderOverlay_Patch0(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<PropManager>::get_instance()
IL_0079: ldfld Array16`1<PropInstance> PropManager::m_props
IL_007E: ldfld PropInstance[] Array16`1<PropInstance>::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<TreeManager>::get_instance()
IL_012C: ldfld Array32`1<TreeInstance> TreeManager::m_trees
IL_0131: ldfld TreeInstance[] Array32`1<TreeInstance>::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<BuildingManager>::get_instance()
IL_01E6: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01EB: ldfld Building[] Array16`1<Building>::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<DisasterManager>::get_instance()
IL_03A3: ldfld FastList`1<DisasterData> DisasterManager::m_disasters
IL_03A8: ldfld DisasterData[] FastList`1<DisasterData>::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<NetManager>::get_instance()
IL_04A6: stloc.s 24 (NetManager)
IL_04A8: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_04AD: stloc.s 25 (BuildingManager)
IL_04AF: ldloc.s 25 (BuildingManager)
IL_04B1: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_04B6: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_04F6: ldfld Building[] Array16`1<Building>::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<NetNode> NetManager::m_nodes
IL_0520: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_0543: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0562: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0582: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_05AA: ldfld NetNode[] Array16`1<NetNode>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_05F6: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0618: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0637: ldfld Building[] Array16`1<Building>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_0693: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06AD: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06C7: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06F2: ldfld Building[] Array16`1<Building>::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<NetNode> NetManager::m_nodes
IL_071C: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_073F: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_075E: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_077F: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_07A9: ldfld NetNode[] Array16`1<NetNode>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_07F5: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0817: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0831: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_084B: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0865: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0890: ldfld Building[] Array16`1<Building>::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<LogChannel>::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<NetManager>::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<RenderManager>::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<NetSegment> NetManager::m_segments
IL_09A8: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_09CC: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_09D1: ldloc.s 45 (NetManager)
IL_09D3: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_09D8: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_0A01: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A06: ldloc.s 45 (NetManager)
IL_0A08: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0A0D: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0A73: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0A92: ldfld NetSegment[] Array16`1<NetSegment>::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<ToolManager>::get_instance()
IL_0C1C: ldflda DrawCallData SimulationManagerBase`2<ToolManager,
ToolController>::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<RenderManager>::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<NetSegment> NetManager::m_segments
IL_0C75: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0C96: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0CF4: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0D18: ldfld NetSegment[] Array16`1<NetSegment>::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<TreeManager>::get_instance()
IL_0D40: stloc.s 67 (TreeManager)
IL_0D42: ldloc.s 67 (TreeManager)
IL_0D44: ldfld Array32`1<TreeInstance> TreeManager::m_trees
IL_0D49: ldfld TreeInstance[] Array32`1<TreeInstance>::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<TreeInstance> TreeManager::m_trees
IL_0D64: ldfld TreeInstance[] Array32`1<TreeInstance>::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<PropManager>::get_instance()
IL_0E07: stloc.s 75 (PropManager)
IL_0E09: ldloc.s 75 (PropManager)
IL_0E0B: ldfld Array16`1<PropInstance> PropManager::m_props
IL_0E10: ldfld PropInstance[] Array16`1<PropInstance>::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<PropInstance> PropManager::m_props
IL_0E2A: ldfld PropInstance[] Array16`1<PropInstance>::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<PropInstance> PropManager::m_props
IL_0E44: ldfld PropInstance[] Array16`1<PropInstance>::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<VehicleManager>::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<Vehicle> VehicleManager::m_vehicles
IL_0F0E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0F38: ldfld Vehicle[] Array16`1<Vehicle>::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<VehicleManager>::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<VehicleParked> VehicleManager::m_parkedVehicles
IL_0F87: ldfld VehicleParked[] Array16`1<VehicleParked>::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<VehicleParked> VehicleManager::m_parkedVehicles
IL_0FB1: ldfld VehicleParked[] Array16`1<VehicleParked>::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<CitizenManager>::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<CitizenInstance> CitizenManager::m_instances
IL_1000: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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<CitizenInstance> CitizenManager::m_instances
IL_102A: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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<InfoManager>::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<DistrictManager>::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<InfoManager>::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<DistrictManager>::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<DisasterManager>::get_instance()
IL_1129: stloc.s 104 (DisasterManager)
IL_112B: ldloc.s 104 (DisasterManager)
IL_112D: ldfld FastList`1<DisasterData> DisasterManager::m_disasters
IL_1132: ldfld DisasterData[] FastList`1<DisasterData>::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<DisasterData> DisasterManager::m_disasters
IL_114C: ldfld DisasterData[] FastList`1<DisasterData>::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<DisasterData> DisasterManager::m_disasters
IL_1166: ldfld DisasterData[] FastList`1<DisasterData>::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: ret
DONE

### Patch: System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen)


### Replacement: static System.Void
CitizenManager::ReleaseCitizen_Patch0(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<Citizen> CitizenManager::m_citizens
IL_0008: ldfld Citizen[] Array32`1<Citizen>::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: ret
DONE

### Patch: System.Void CitizenManager::ReleaseCitizenInstance(System.UInt16


instance)
### Replacement: static System.Void
CitizenManager::ReleaseCitizenInstance_Patch0(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<CitizenInstance> CitizenManager::m_instances
IL_0008: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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: ret
DONE
### Patch: static System.Void BuildingDecoration::LoadPaths(BuildingInfo info,
System.UInt16 buildingID, Building& data, System.Single elevation)
### Replacement: static System.Void
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<NetManager>::get_instance()
IL_0010: stloc.0
IL_0011: ldloc.0
IL_0012: ldfld FastList`1<System.UInt16> NetManager::m_tempNodeBuffer
IL_0017: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_001C: ldloc.0
IL_001D: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_0022: callvirt System.Void FastList`1<System.UInt16>::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<System.UInt16> 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<System.UInt16> 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<System.UInt16> 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<System.UInt16>::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<NodePosition> 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<NodePosition> 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<System.UInt16> NetManager::m_tempNodeBuffer
IL_022C: ldloc.s 9 (System.UInt16)
IL_022E: callvirt System.Void FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_0268: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_02AC: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16> 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<System.UInt16> 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<NodePosition> 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<NodePosition> 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<System.UInt16> NetManager::m_tempNodeBuffer
IL_056B: ldloc.s 20 (System.UInt16)
IL_056D: callvirt System.Void FastList`1<System.UInt16>::Add(System.UInt16 item)
IL_0572: ldloc.0
IL_0573: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_0578: ldloc.s 21 (System.UInt16)
IL_057A: callvirt System.Void FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_05B6: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_05FC: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_0646: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_067B: ldfld NetSegment[] Array16`1<NetSegment>::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<System.UInt16> NetManager::m_tempNodeBuffer
IL_06D4: ldfld System.UInt16[] FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_06E4: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_071D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_073E: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_075D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0788: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16> NetManager::m_tempNodeBuffer
IL_07C2: ldfld System.Int32 FastList`1<System.UInt16>::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<System.UInt16> NetManager::m_tempSegmentBuffer
IL_07DA: ldfld System.UInt16[] FastList`1<System.UInt16>::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<NetSegment> NetManager::m_segments
IL_07EA: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_080F: ldfld NetSegment[] Array16`1<NetSegment>::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<ToolManager>::get_instance()
IL_083B: ldfld ToolController SimulationManagerBase`2<ToolManager,
ToolController>::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<NetSegment> NetManager::m_segments
IL_0852: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0879: ldfld NetSegment[] Array16`1<NetSegment>::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<System.UInt16> NetManager::m_tempSegmentBuffer
IL_08A9: ldfld System.Int32 FastList`1<System.UInt16>::m_size
IL_08AE: blt => Label60
IL_08B3: ldloc.0
IL_08B4: ldfld FastList`1<System.UInt16> NetManager::m_tempNodeBuffer
IL_08B9: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_08BE: ldloc.0
IL_08BF: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_08C4: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_08C9: // end original
IL_08C9: Label0
IL_08C9: ret
DONE

### Harmony id=cgameworld.instantreturntodesktop, version=2.0.0.9, location=E:\


Games\data-0000000015990080
### Started from static System.Boolean
CitiesHarmony.Harmony1201SelfPatcher::HarmonyInstance_UnpatchAll_Prefix(System.Stri
ng ___id, System.String harmonyID), location E:\Games\data-000000001475B980
### At 2022-11-05 01.19.23
### Patch: UnityEngine.Coroutine LoadingManager::QuitApplication()
### Replacement: static UnityEngine.Coroutine
LoadingManager::QuitApplication_Patch0(LoadingManager this)
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: volatile.
IL_0003: ldfld System.Boolean LoadingManager::m_applicationQuitting
IL_0008: brtrue => Label0
IL_000D: ldarg.0
IL_000E: ldfld LoadingWrapper LoadingManager::m_LoadingWrapper
IL_0013: brfalse => Label1
IL_0018: ldarg.0
IL_0019: ldfld LoadingWrapper LoadingManager::m_LoadingWrapper
IL_001E: callvirt System.Void LoadingWrapper::OnLevelUnloading()
IL_0023: Label1
IL_0023: ldarg.0
IL_0024: ldfld LoadingAnimation LoadingManager::m_loadingAnimation
IL_0029: ldc.i4.1
IL_002A: callvirt System.Void UnityEngine.Behaviour::set_enabled(System.Boolean
value)
IL_002F: ldarg.0
IL_0030: ldc.i4.1
IL_0031: volatile.
IL_0033: stfld System.Boolean LoadingManager::m_applicationQuitting
IL_0038: ldarg.0
IL_0039: ldarg.0
IL_003A: call System.Collections.IEnumerator
LoadingManager::QuitApplicationCoroutine()
IL_003F: call UnityEngine.Coroutine
UnityEngine.MonoBehaviour::StartCoroutine(System.Collections.IEnumerator routine)
IL_0044: br => Label2
IL_0049: Label0
IL_0049: ldnull
IL_004A: // end original
IL_004A: Label2
IL_004A: ret
DONE

### Harmony id=boformer.TrueLodToggler, version=2.0.0.9, location=E:\Games\data-


0000000015990080
### Started from static System.Boolean
CitiesHarmony.Harmony1201SelfPatcher::HarmonyInstance_UnpatchAll_Prefix(System.Stri
ng ___id, System.String harmonyID), location E:\Games\data-000000001475B980
### At 2022-11-05 01.19.23
### Patch: virtual System.Void TreeManager::PopulateGroupData(System.Int32 groupX,
System.Int32 groupZ, System.Int32 layer, System.Int32& vertexIndex, System.Int32&
triangleIndex, UnityEngine.Vector3 groupPosition, MeshData data,
UnityEngine.Vector3& min, UnityEngine.Vector3& max, System.Single&
maxRenderDistance, System.Single& maxInstanceDistance, System.Boolean&
requireSurfaceMaps)
### Replacement: static System.Void
TreeManager::PopulateGroupData_Patch0(TreeManager this, System.Int32 groupX,
System.Int32 groupZ, System.Int32 layer, System.Int32& vertexIndex, System.Int32&
triangleIndex, UnityEngine.Vector3 groupPosition, MeshData data,
UnityEngine.Vector3& min, UnityEngine.Vector3& max, System.Single&
maxRenderDistance, System.Single& maxInstanceDistance, System.Boolean&
requireSurfaceMaps)
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.UInt32
IL_0000: Local var 8: System.Int32
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: ldarg.0
IL_0002: ldfld System.Int32 TreeManager::m_treeLayer
IL_0007: beq => Label0
IL_000C: br => Label9
IL_0011: Label0
IL_0011: ldarg.1
IL_0012: ldc.i4 540
IL_0017: mul
IL_0018: ldc.i4.s 45
IL_001A: div
IL_001B: stloc.0
IL_001C: ldarg.2
IL_001D: ldc.i4 540
IL_0022: mul
IL_0023: ldc.i4.s 45
IL_0025: div
IL_0026: stloc.1
IL_0027: ldarg.1
IL_0028: ldc.i4.1
IL_0029: add
IL_002A: ldc.i4 540
IL_002F: mul
IL_0030: ldc.i4.s 45
IL_0032: div
IL_0033: ldc.i4.1
IL_0034: sub
IL_0035: stloc.2
IL_0036: ldarg.2
IL_0037: ldc.i4.1
IL_0038: add
IL_0039: ldc.i4 540
IL_003E: mul
IL_003F: ldc.i4.s 45
IL_0041: div
IL_0042: ldc.i4.1
IL_0043: sub
IL_0044: stloc.3
IL_0045: ldloc.1
IL_0046: stloc.s 4 (System.Int32)
IL_0048: br => Label1
IL_004D: Label8
IL_004D: ldloc.0
IL_004E: stloc.s 5 (System.Int32)
IL_0050: br => Label2
IL_0055: Label7
IL_0055: ldloc.s 4 (System.Int32)
IL_0057: ldc.i4 540
IL_005C: mul
IL_005D: ldloc.s 5 (System.Int32)
IL_005F: add
IL_0060: stloc.s 6 (System.Int32)
IL_0062: ldarg.0
IL_0063: ldfld System.UInt32[] TreeManager::m_treeGrid
IL_0068: ldloc.s 6 (System.Int32)
IL_006A: ldelem.u4
IL_006B: stloc.s 7 (System.UInt32)
IL_006D: ldc.i4.0
IL_006E: stloc.s 8 (System.Int32)
IL_0070: br => Label3
IL_0075: Label6
IL_0075: ldarg.0
IL_0076: ldfld Array32`1<TreeInstance> TreeManager::m_trees
IL_007B: ldfld TreeInstance[] Array32`1<TreeInstance>::m_buffer
IL_0080: ldloc.s 7 (System.UInt32)
IL_0082: conv.u
IL_0083: ldelema TreeInstance
IL_0088: ldloc.s 7 (System.UInt32)
IL_008A: ldarg.3
IL_008B: ldarg.s 4
IL_008D: ldarg.s 5
IL_008F: ldarg.s 6
IL_0091: ldarg.s 7
IL_0093: ldarg.s 8
IL_0095: ldarg.s 9
IL_0097: ldarg.s 10
IL_0099: ldarg.s 11
IL_009B: call System.Void TreeInstance::PopulateGroupData(System.UInt32
treeID, System.Int32 layer, System.Int32& vertexIndex, System.Int32& triangleIndex,
UnityEngine.Vector3 groupPosition, MeshData data, UnityEngine.Vector3& min,
UnityEngine.Vector3& max, System.Single& maxRenderDistance, System.Single&
maxInstanceDistance)
IL_00A0: ldarg.0
IL_00A1: ldfld Array32`1<TreeInstance> TreeManager::m_trees
IL_00A6: ldfld TreeInstance[] Array32`1<TreeInstance>::m_buffer
IL_00AB: ldloc.s 7 (System.UInt32)
IL_00AD: conv.u
IL_00AE: ldelema TreeInstance
IL_00B3: ldfld System.UInt32 TreeInstance::m_nextGridTree
IL_00B8: stloc.s 7 (System.UInt32)
IL_00BA: ldloc.s 8 (System.Int32)
IL_00BC: ldc.i4.1
IL_00BD: add
IL_00BE: dup
IL_00BF: stloc.s 8 (System.Int32)
IL_00C1: ldc.i4 262144
IL_00C6: blt => Label4
IL_00CB: ldc.i4.1
IL_00CC: ldstr "Invalid list detected!\n"
IL_00D1: call static System.String System.Environment::get_StackTrace()
IL_00D6: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_00DB: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Error(LogChannel ll, System.String
msg)
IL_00E0: br => Label5
IL_00E5: Label3
IL_00E5: Label4
IL_00E5: ldloc.s 7 (System.UInt32)
IL_00E7: brtrue => Label6
IL_00EC: Label5
IL_00EC: ldloc.s 5 (System.Int32)
IL_00EE: ldc.i4.1
IL_00EF: add
IL_00F0: stloc.s 5 (System.Int32)
IL_00F2: Label2
IL_00F2: ldloc.s 5 (System.Int32)
IL_00F4: ldloc.2
IL_00F5: ble => Label7
IL_00FA: ldloc.s 4 (System.Int32)
IL_00FC: ldc.i4.1
IL_00FD: add
IL_00FE: stloc.s 4 (System.Int32)
IL_0100: Label1
IL_0100: ldloc.s 4 (System.Int32)
IL_0102: ldloc.3
IL_0103: ble => Label8
IL_0108: // end original
IL_0108: Label9
IL_0108: ret
DONE

### Patch: virtual System.Void TreeInfo::RefreshLevelOfDetail()


### Replacement: static System.Void TreeInfo::RefreshLevelOfDetail_Patch0(TreeInfo
this)
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: call static System.Single RenderManager::get_LevelOfDetailFactor()
IL_0006: ldc.r4 300
IL_000B: mul
IL_000C: stfld System.Single TreeInfo::m_lodRenderDistance
IL_0011: // end original
IL_0011: ret
DONE

### Patch: virtual System.Void PropInfo::RefreshLevelOfDetail()


### Replacement: static System.Void PropInfo::RefreshLevelOfDetail_Patch0(PropInfo
this)
IL_0000: Local var 0: System.Single
IL_0000: Local var 1: System.Int32
IL_0000: // start original
IL_0000: call static System.Single RenderManager::get_LevelOfDetailFactor()
IL_0005: ldc.r4 100
IL_000A: mul
IL_000B: stloc.0
IL_000C: ldarg.0
IL_000D: ldfld PropInfoGen PropInfo::m_generatedInfo
IL_0012: ldfld System.Single PropInfoGen::m_triangleArea
IL_0017: ldc.r4 0
IL_001C: bne.un => Label0
IL_0021: ldarg.0
IL_0022: ldc.r4 1000
IL_0027: stfld System.Single PropInfo::m_maxRenderDistance
IL_002C: br => Label1
IL_0031: Label0
IL_0031: ldarg.0
IL_0032: ldarg.0
IL_0033: ldfld PropInfoGen PropInfo::m_generatedInfo
IL_0038: ldfld System.Single PropInfoGen::m_triangleArea
IL_003D: call static System.Single UnityEngine.Mathf::Sqrt(System.Single f)
IL_0042: ldloc.0
IL_0043: mul
IL_0044: ldc.r4 100
IL_0049: add
IL_004A: stfld System.Single PropInfo::m_maxRenderDistance
IL_004F: ldarg.0
IL_0050: ldc.r4 1000
IL_0055: ldarg.0
IL_0056: ldfld System.Single PropInfo::m_maxRenderDistance
IL_005B: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_0060: stfld System.Single PropInfo::m_maxRenderDistance
IL_0065: Label1
IL_0065: ldarg.0
IL_0066: ldfld System.Boolean PropInfo::m_isDecal
IL_006B: brtrue => Label2
IL_0070: ldarg.0
IL_0071: ldfld System.Boolean PropInfo::m_isMarker
IL_0076: brfalse => Label3
IL_007B: Label2
IL_007B: ldarg.0
IL_007C: ldc.r4 0
IL_0081: stfld System.Single PropInfo::m_lodRenderDistance
IL_0086: br => Label4
IL_008B: Label3
IL_008B: ldarg.0
IL_008C: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0091: ldnull
IL_0092: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0097: brfalse => Label5
IL_009C: ldarg.0
IL_009D: ldarg.0
IL_009E: ldfld System.Single PropInfo::m_maxRenderDistance
IL_00A3: ldc.r4 0.25
IL_00A8: mul
IL_00A9: stfld System.Single PropInfo::m_lodRenderDistance
IL_00AE: br => Label6
IL_00B3: Label5
IL_00B3: ldarg.0
IL_00B4: ldarg.0
IL_00B5: ldfld System.Single PropInfo::m_maxRenderDistance
IL_00BA: stfld System.Single PropInfo::m_lodRenderDistance
IL_00BF: Label4
IL_00BF: Label6
IL_00BF: ldarg.0
IL_00C0: ldfld Effect[] PropInfo::m_effects
IL_00C5: brfalse => Label7
IL_00CA: ldc.i4.0
IL_00CB: stloc.1
IL_00CC: br => Label8
IL_00D1: Label10
IL_00D1: ldarg.0
IL_00D2: ldfld Effect[] PropInfo::m_effects
IL_00D7: ldloc.1
IL_00D8: ldelema PropInfo+Effect
IL_00DD: ldfld EffectInfo Effect::m_effect
IL_00E2: ldnull
IL_00E3: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_00E8: brfalse => Label9
IL_00ED: ldarg.0
IL_00EE: ldarg.0
IL_00EF: ldfld System.Single PropInfo::m_maxRenderDistance
IL_00F4: ldarg.0
IL_00F5: ldfld Effect[] PropInfo::m_effects
IL_00FA: ldloc.1
IL_00FB: ldelema PropInfo+Effect
IL_0100: ldfld EffectInfo Effect::m_effect
IL_0105: callvirt virtual System.Single EffectInfo::RenderDistance()
IL_010A: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_010F: stfld System.Single PropInfo::m_maxRenderDistance
IL_0114: Label9
IL_0114: ldloc.1
IL_0115: ldc.i4.1
IL_0116: add
IL_0117: stloc.1
IL_0118: Label8
IL_0118: ldloc.1
IL_0119: ldarg.0
IL_011A: ldfld Effect[] PropInfo::m_effects
IL_011F: ldlen
IL_0120: conv.i4
IL_0121: blt => Label10
IL_0126: ldarg.0
IL_0127: ldc.r4 1000
IL_012C: ldarg.0
IL_012D: ldfld System.Single PropInfo::m_maxRenderDistance
IL_0132: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_0137: stfld System.Single PropInfo::m_maxRenderDistance
IL_013C: // end original
IL_013C: Label7
IL_013C: ret
DONE

### Patch: virtual System.Void BuildingAI::PopulateGroupData(System.UInt16


buildingID, Building& buildingData, System.Single& height, System.Int32 groupX,
System.Int32 groupZ, System.Int32 layer, System.Int32& vertexIndex, System.Int32&
triangleIndex, UnityEngine.Vector3 groupPosition, MeshData data,
UnityEngine.Vector3& min, UnityEngine.Vector3& max, System.Single&
maxRenderDistance, System.Single& maxInstanceDistance)
### Replacement: static System.Void BuildingAI::PopulateGroupData_Patch0(BuildingAI
this, System.UInt16 buildingID, Building& buildingData, System.Single& height,
System.Int32 groupX, System.Int32 groupZ, System.Int32 layer, System.Int32&
vertexIndex, System.Int32& triangleIndex, UnityEngine.Vector3 groupPosition,
MeshData data, UnityEngine.Vector3& min, UnityEngine.Vector3& max, System.Single&
maxRenderDistance, System.Single& maxInstanceDistance)
IL_0000: Local var 0: System.Int32
IL_0000: Local var 1: System.Int32
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: 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: UnityEngine.Vector3
IL_0000: Local var 13: UnityEngine.Quaternion
IL_0000: Local var 14: UnityEngine.Matrix4x4
IL_0000: Local var 15: System.UInt16
IL_0000: Local var 16: UnityEngine.Vector4
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: RenderGroup/VertexArrays
IL_0000: Local var 23: UnityEngine.Vector3[]
IL_0000: Local var 24: UnityEngine.Vector3[]
IL_0000: Local var 25: UnityEngine.Vector4[]
IL_0000: Local var 26: UnityEngine.Vector2[]
IL_0000: Local var 27: UnityEngine.Vector2[]
IL_0000: Local var 28: UnityEngine.Vector2[]
IL_0000: Local var 29: UnityEngine.Color32[]
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: System.Int32
IL_0000: Local var 32: UnityEngine.Color32
IL_0000: Local var 33: UnityEngine.Vector3
IL_0000: Local var 34: UnityEngine.Vector3
IL_0000: Local var 35: UnityEngine.Vector4
IL_0000: Local var 36: UnityEngine.Vector3
IL_0000: Local var 37: UnityEngine.Color32
IL_0000: Local var 38: UnityEngine.Vector2
IL_0000: Local var 39: System.Int32
IL_0000: Local var 40: System.Int32
IL_0000: Local var 41: UnityEngine.Color32
IL_0000: Local var 42: UnityEngine.Vector3
IL_0000: Local var 43: UnityEngine.Vector3
IL_0000: Local var 44: UnityEngine.Vector4
IL_0000: Local var 45: UnityEngine.Vector3
IL_0000: Local var 46: UnityEngine.Vector2
IL_0000: Local var 47: UnityEngine.Color32
IL_0000: Local var 48: UnityEngine.Vector2
IL_0000: Local var 49: System.Int32
IL_0000: Local var 50: BuildingInfo/MeshInfo
IL_0000: Local var 51: BuildingInfoSub
IL_0000: Local var 52: System.Int32
IL_0000: Local var 53: System.Int32
IL_0000: Local var 54: BuildingInfoSub
IL_0000: Local var 55: BuildingInfo/MeshInfo
IL_0000: Local var 56: UnityEngine.Vector3
IL_0000: Local var 57: UnityEngine.Quaternion
IL_0000: Local var 58: UnityEngine.Matrix4x4
IL_0000: Local var 59: System.UInt16
IL_0000: Local var 60: UnityEngine.Vector4
IL_0000: Local var 61: UnityEngine.Vector2
IL_0000: Local var 62: System.Int32[]
IL_0000: Local var 63: System.Int32
IL_0000: Local var 64: System.Int32
IL_0000: Local var 65: RenderGroup/VertexArrays
IL_0000: Local var 66: UnityEngine.Vector3[]
IL_0000: Local var 67: UnityEngine.Vector3[]
IL_0000: Local var 68: UnityEngine.Vector4[]
IL_0000: Local var 69: UnityEngine.Vector2[]
IL_0000: Local var 70: UnityEngine.Vector2[]
IL_0000: Local var 71: UnityEngine.Vector2[]
IL_0000: Local var 72: UnityEngine.Color32[]
IL_0000: Local var 73: System.Int32
IL_0000: Local var 74: System.Int32
IL_0000: Local var 75: UnityEngine.Color32
IL_0000: Local var 76: UnityEngine.Vector3
IL_0000: Local var 77: UnityEngine.Vector3
IL_0000: Local var 78: UnityEngine.Vector4
IL_0000: Local var 79: UnityEngine.Vector3
IL_0000: Local var 80: UnityEngine.Color32
IL_0000: Local var 81: UnityEngine.Vector2
IL_0000: Local var 82: System.Int32
IL_0000: Local var 83: System.Int32
IL_0000: Local var 84: UnityEngine.Color32
IL_0000: Local var 85: UnityEngine.Vector3
IL_0000: Local var 86: UnityEngine.Vector3
IL_0000: Local var 87: UnityEngine.Vector4
IL_0000: Local var 88: UnityEngine.Vector3
IL_0000: Local var 89: UnityEngine.Vector2
IL_0000: Local var 90: UnityEngine.Color32
IL_0000: Local var 91: UnityEngine.Vector2
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: ldarg.2
IL_0003: ldc.i4.1
IL_0004: ldc.i4.1
IL_0005: ldarg.s 4
IL_0007: ldarg.s 5
IL_0009: ldarg.s 6
IL_000B: ldarg.s 7
IL_000D: ldarg.s 8
IL_000F: ldarg.s 9
IL_0011: ldarg.s 10
IL_0013: ldarg.s 11
IL_0015: ldarg.s 12
IL_0017: ldarg.s 13
IL_0019: ldarg.s 14
IL_001B: callvirt virtual System.Void
BuildingAI::PopulatePropGroupData(System.UInt16 buildingID, Building& buildingData,
System.Boolean props, System.Boolean trees, System.Int32 groupX, System.Int32
groupZ, System.Int32 layer, System.Int32& vertexIndex, System.Int32& triangleIndex,
UnityEngine.Vector3 groupPosition, MeshData data, UnityEngine.Vector3& min,
UnityEngine.Vector3& max, System.Single& maxRenderDistance, System.Single&
maxInstanceDistance)
IL_0020: ldarg.0
IL_0021: ldfld BuildingInfo BuildingAI::m_info
IL_0026: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_002B: ldarg.s 6
IL_002D: bne.un => Label0
IL_0032: ldarg.2
IL_0033: call System.Int32 Building::get_Width()
IL_0038: stloc.0
IL_0039: ldarg.2
IL_003A: call System.Int32 Building::get_Length()
IL_003F: stloc.1
IL_0040: ldarg.2
IL_0041: ldfld System.Single Building::m_angle
IL_0046: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_004B: ldc.r4 0
IL_0050: ldarg.2
IL_0051: ldfld System.Single Building::m_angle
IL_0056: call static System.Single UnityEngine.Mathf::Sin(System.Single f)
IL_005B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0060: ldc.r4 8
IL_0065: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_006A: stloc.2
IL_006B: ldloca.s 3 (UnityEngine.Vector3)
IL_006D: ldloca.s 2 (UnityEngine.Vector3)
IL_006F: ldfld System.Single UnityEngine.Vector3::z
IL_0074: ldc.r4 0
IL_0079: ldloca.s 2 (UnityEngine.Vector3)
IL_007B: ldfld System.Single UnityEngine.Vector3::x
IL_0080: neg
IL_0081: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0086: ldarg.2
IL_0087: ldfld UnityEngine.Vector3 Building::m_position
IL_008C: ldloc.0
IL_008D: conv.r4
IL_008E: ldc.r4 0.5
IL_0093: mul
IL_0094: ldloc.2
IL_0095: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_009A: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_009F: ldloc.1
IL_00A0: conv.r4
IL_00A1: ldc.r4 0.5
IL_00A6: mul
IL_00A7: ldloc.3
IL_00A8: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_00AD: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_00B2: stloc.s 4 (UnityEngine.Vector3)
IL_00B4: ldarg.2
IL_00B5: ldfld UnityEngine.Vector3 Building::m_position
IL_00BA: ldloc.0
IL_00BB: conv.r4
IL_00BC: ldc.r4 0.5
IL_00C1: mul
IL_00C2: ldloc.2
IL_00C3: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_00C8: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_00CD: ldloc.1
IL_00CE: conv.r4
IL_00CF: ldc.r4 0.5
IL_00D4: mul
IL_00D5: ldloc.3
IL_00D6: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_00DB: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_00E0: stloc.s 5 (UnityEngine.Vector3)
IL_00E2: ldarg.2
IL_00E3: ldfld UnityEngine.Vector3 Building::m_position
IL_00E8: ldloc.0
IL_00E9: conv.r4
IL_00EA: ldc.r4 0.5
IL_00EF: mul
IL_00F0: ldloc.2
IL_00F1: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_00F6: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_00FB: ldloc.1
IL_00FC: conv.r4
IL_00FD: ldc.r4 0.5
IL_0102: mul
IL_0103: ldloc.3
IL_0104: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_0109: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_010E: stloc.s 6 (UnityEngine.Vector3)
IL_0110: ldarg.2
IL_0111: ldfld UnityEngine.Vector3 Building::m_position
IL_0116: ldloc.0
IL_0117: conv.r4
IL_0118: ldc.r4 0.5
IL_011D: mul
IL_011E: ldloc.2
IL_011F: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_0124: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0129: ldloc.1
IL_012A: conv.r4
IL_012B: ldc.r4 0.5
IL_0130: mul
IL_0131: ldloc.3
IL_0132: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_0137: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_013C: stloc.s 7 (UnityEngine.Vector3)
IL_013E: ldloca.s 4 (UnityEngine.Vector3)
IL_0140: ldfld System.Single UnityEngine.Vector3::x
IL_0145: ldloca.s 5 (UnityEngine.Vector3)
IL_0147: ldfld System.Single UnityEngine.Vector3::x
IL_014C: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_0151: ldloca.s 6 (UnityEngine.Vector3)
IL_0153: ldfld System.Single UnityEngine.Vector3::x
IL_0158: ldloca.s 7 (UnityEngine.Vector3)
IL_015A: ldfld System.Single UnityEngine.Vector3::x
IL_015F: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_0164: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_0169: stloc.s 8 (System.Single)
IL_016B: ldloca.s 4 (UnityEngine.Vector3)
IL_016D: ldfld System.Single UnityEngine.Vector3::z
IL_0172: ldloca.s 5 (UnityEngine.Vector3)
IL_0174: ldfld System.Single UnityEngine.Vector3::z
IL_0179: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_017E: ldloca.s 6 (UnityEngine.Vector3)
IL_0180: ldfld System.Single UnityEngine.Vector3::z
IL_0185: ldloca.s 7 (UnityEngine.Vector3)
IL_0187: ldfld System.Single UnityEngine.Vector3::z
IL_018C: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_0191: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_0196: stloc.s 9 (System.Single)
IL_0198: ldloca.s 4 (UnityEngine.Vector3)
IL_019A: ldfld System.Single UnityEngine.Vector3::x
IL_019F: ldloca.s 5 (UnityEngine.Vector3)
IL_01A1: ldfld System.Single UnityEngine.Vector3::x
IL_01A6: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_01AB: ldloca.s 6 (UnityEngine.Vector3)
IL_01AD: ldfld System.Single UnityEngine.Vector3::x
IL_01B2: ldloca.s 7 (UnityEngine.Vector3)
IL_01B4: ldfld System.Single UnityEngine.Vector3::x
IL_01B9: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_01BE: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_01C3: stloc.s 10 (System.Single)
IL_01C5: ldloca.s 4 (UnityEngine.Vector3)
IL_01C7: ldfld System.Single UnityEngine.Vector3::z
IL_01CC: ldloca.s 5 (UnityEngine.Vector3)
IL_01CE: ldfld System.Single UnityEngine.Vector3::z
IL_01D3: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_01D8: ldloca.s 6 (UnityEngine.Vector3)
IL_01DA: ldfld System.Single UnityEngine.Vector3::z
IL_01DF: ldloca.s 7 (UnityEngine.Vector3)
IL_01E1: ldfld System.Single UnityEngine.Vector3::z
IL_01E6: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_01EB: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_01F0: stloc.s 11 (System.Single)
IL_01F2: ldarg.s 11
IL_01F4: ldarg.s 11
IL_01F6: ldobj UnityEngine.Vector3
IL_01FB: ldloc.s 8 (System.Single)
IL_01FD: ldarg.2
IL_01FE: ldflda UnityEngine.Vector3 Building::m_position
IL_0203: ldfld System.Single UnityEngine.Vector3::y
IL_0208: ldarg.2
IL_0209: ldfld System.Byte Building::m_baseHeight
IL_020E: conv.r4
IL_020F: sub
IL_0210: ldloc.s 9 (System.Single)
IL_0212: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0217: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_021C: stobj UnityEngine.Vector3
IL_0221: ldarg.s 12
IL_0223: ldarg.s 12
IL_0225: ldobj UnityEngine.Vector3
IL_022A: ldloc.s 10 (System.Single)
IL_022C: ldarg.2
IL_022D: ldflda UnityEngine.Vector3 Building::m_position
IL_0232: ldfld System.Single UnityEngine.Vector3::y
IL_0237: ldarg.0
IL_0238: ldfld BuildingInfo BuildingAI::m_info
IL_023D: ldflda UnityEngine.Vector3 BuildingInfo::m_size
IL_0242: ldfld System.Single UnityEngine.Vector3::y
IL_0247: add
IL_0248: ldloc.s 11 (System.Single)
IL_024A: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_024F: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_0254: stobj UnityEngine.Vector3
IL_0259: ldarg.s 13
IL_025B: ldarg.s 13
IL_025D: ldind.r4
IL_025E: ldc.r4 20000
IL_0263: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0268: stind.r4
IL_0269: ldarg.s 14
IL_026B: ldarg.s 14
IL_026D: ldind.r4
IL_026E: ldc.r4 1000
IL_0273: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0278: stind.r4
IL_0279: ldarg.0
IL_027A: ldfld BuildingInfo BuildingAI::m_info
IL_027F: ldfld BuildingAI BuildingInfo::m_buildingAI
IL_0284: ldarg.1
IL_0285: ldarg.2
IL_0286: callvirt virtual System.Boolean
BuildingAI::CanUseGroupMesh(System.UInt16 buildingID, Building& buildingData)
IL_028B: brfalse => Label1
IL_0290: ldarg.0
IL_0291: ldfld BuildingInfo BuildingAI::m_info
IL_0296: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_029B: brfalse => Label2
IL_02A0: ldarg.2
IL_02A1: ldloca.s 12 (UnityEngine.Vector3)
IL_02A3: ldloca.s 13 (UnityEngine.Quaternion)
IL_02A5: call System.Void
Building::CalculateMeshPosition(UnityEngine.Vector3& meshPosition,
UnityEngine.Quaternion& meshRotation)
IL_02AA: ldloc.s 12 (UnityEngine.Vector3)
IL_02AC: ldarg.s 9
IL_02AE: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_02B3: ldloc.s 13 (UnityEngine.Quaternion)
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_one()
IL_02BA: call static UnityEngine.Matrix4x4
UnityEngine.Matrix4x4::TRS(UnityEngine.Vector3 pos, UnityEngine.Quaternion q,
UnityEngine.Vector3 s)
IL_02BF: stloc.s 14 (UnityEngine.Matrix4x4)
IL_02C1: ldarg.2
IL_02C2: ldfld System.UInt16 Building::m_parentBuilding
IL_02C7: brfalse => Label3
IL_02CC: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_02D1: callvirt InfoMode InfoManager::get_CurrentMode()
IL_02D6: brfalse => Label4
IL_02DB: Label3
IL_02DB: ldarg.1
IL_02DC: br => Label5
IL_02E1: Label4
IL_02E1: ldarg.1
IL_02E2: call static System.UInt16 Building::FindParentBuilding(System.UInt16
buildingID)
IL_02E7: Label5
IL_02E7: stloc.s 15 (System.UInt16)
IL_02E9: ldloc.s 15 (System.UInt16)
IL_02EB: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_02F0: stloc.s 16 (UnityEngine.Vector4)
IL_02F2: ldloca.s 17 (UnityEngine.Vector2)
IL_02F4: ldloca.s 16 (UnityEngine.Vector4)
IL_02F6: ldfld System.Single UnityEngine.Vector4::x
IL_02FB: ldloca.s 16 (UnityEngine.Vector4)
IL_02FD: ldfld System.Single UnityEngine.Vector4::y
IL_0302: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_0307: ldarg.0
IL_0308: ldfld BuildingInfo BuildingAI::m_info
IL_030D: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_0312: ldfld System.Int32[] MeshData::m_triangles
IL_0317: stloc.s 18 (System.Int32[])
IL_0319: ldloc.s 18 (System.Int32[])
IL_031B: ldlen
IL_031C: conv.i4
IL_031D: stloc.s 19 (System.Int32)
IL_031F: ldc.i4.0
IL_0320: stloc.s 20 (System.Int32)
IL_0322: br => Label6
IL_0327: Label7
IL_0327: ldarg.s 10
IL_0329: ldfld System.Int32[] MeshData::m_triangles
IL_032E: ldarg.s 8
IL_0330: ldarg.s 8
IL_0332: ldind.i4
IL_0333: dup
IL_0334: stloc.s 21 (System.Int32)
IL_0336: ldc.i4.1
IL_0337: add
IL_0338: stind.i4
IL_0339: ldloc.s 21 (System.Int32)
IL_033B: ldloc.s 18 (System.Int32[])
IL_033D: ldloc.s 20 (System.Int32)
IL_033F: ldelem.i4
IL_0340: ldarg.s 7
IL_0342: ldind.i4
IL_0343: add
IL_0344: stelem.i4
IL_0345: ldloc.s 20 (System.Int32)
IL_0347: ldc.i4.1
IL_0348: add
IL_0349: stloc.s 20 (System.Int32)
IL_034B: Label6
IL_034B: ldloc.s 20 (System.Int32)
IL_034D: ldloc.s 19 (System.Int32)
IL_034F: blt => Label7
IL_0354: ldarg.0
IL_0355: ldfld BuildingInfo BuildingAI::m_info
IL_035A: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_035F: callvirt VertexArrays MeshData::VertexArrayMask()
IL_0364: stloc.s 22 (RenderGroup+VertexArrays)
IL_0366: ldarg.0
IL_0367: ldfld BuildingInfo BuildingAI::m_info
IL_036C: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_0371: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0376: stloc.s 23 (UnityEngine.Vector3[])
IL_0378: ldarg.0
IL_0379: ldfld BuildingInfo BuildingAI::m_info
IL_037E: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_0383: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0388: stloc.s 24 (UnityEngine.Vector3[])
IL_038A: ldarg.0
IL_038B: ldfld BuildingInfo BuildingAI::m_info
IL_0390: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_0395: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_039A: stloc.s 25 (UnityEngine.Vector4[])
IL_039C: ldarg.0
IL_039D: ldfld BuildingInfo BuildingAI::m_info
IL_03A2: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_03A7: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_03AC: stloc.s 26 (UnityEngine.Vector2[])
IL_03AE: ldarg.0
IL_03AF: ldfld BuildingInfo BuildingAI::m_info
IL_03B4: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_03B9: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_03BE: stloc.s 27 (UnityEngine.Vector2[])
IL_03C0: ldarg.0
IL_03C1: ldfld BuildingInfo BuildingAI::m_info
IL_03C6: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_03CB: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_03D0: stloc.s 28 (UnityEngine.Vector2[])
IL_03D2: ldarg.0
IL_03D3: ldfld BuildingInfo BuildingAI::m_info
IL_03D8: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_03DD: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_03E2: stloc.s 29 (UnityEngine.Color32[])
IL_03E4: ldloc.s 23 (UnityEngine.Vector3[])
IL_03E6: ldlen
IL_03E7: conv.i4
IL_03E8: stloc.s 30 (System.Int32)
IL_03EA: ldc.i4.0
IL_03EB: stloc.s 31 (System.Int32)
IL_03ED: br => Label8
IL_03F2: Label19
IL_03F2: ldarg.0
IL_03F3: ldfld BuildingInfo BuildingAI::m_info
IL_03F8: ldfld BuildingAI BuildingInfo::m_buildingAI
IL_03FD: ldarg.1
IL_03FE: ldarg.2
IL_03FF: ldarg.0
IL_0400: ldfld BuildingInfo BuildingAI::m_info
IL_0405: ldloc.s 31 (System.Int32)
IL_0407: ldc.i4.0
IL_0408: callvirt virtual UnityEngine.Color32
BuildingAI::GetGroupVertexColor(System.UInt16 buildingID, Building& buildingData,
BuildingInfoBase info, System.Int32 vertexIndex, System.Boolean baseVertex)
IL_040D: stloc.s 32 (UnityEngine.Color32)
IL_040F: ldloc.s 23 (UnityEngine.Vector3[])
IL_0411: ldloc.s 31 (System.Int32)
IL_0413: ldelema UnityEngine.Vector3
IL_0418: ldobj UnityEngine.Vector3
IL_041D: stloc.s 33 (UnityEngine.Vector3)
IL_041F: ldloca.s 14 (UnityEngine.Matrix4x4)
IL_0421: ldloc.s 33 (UnityEngine.Vector3)
IL_0423: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_0428: stloc.s 34 (UnityEngine.Vector3)
IL_042A: ldarg.0
IL_042B: ldfld BuildingInfo BuildingAI::m_info
IL_0430: ldfld System.Boolean BuildingInfoBase::m_requireHeightMap
IL_0435: brfalse => Label9
IL_043A: ldloca.s 34 (UnityEngine.Vector3)
IL_043C: ldloca.s 33 (UnityEngine.Vector3)
IL_043E: ldfld System.Single UnityEngine.Vector3::y
IL_0443: call static TerrainManager
ColossalFramework.Singleton`1<TerrainManager>::get_instance()
IL_0448: ldloc.s 34 (UnityEngine.Vector3)
IL_044A: ldarg.s 9
IL_044C: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0451: callvirt System.Single
TerrainManager::SampleDetailHeight(UnityEngine.Vector3 worldPos)
IL_0456: add
IL_0457: stfld System.Single UnityEngine.Vector3::y
IL_045C: Label9
IL_045C: ldarg.s 10
IL_045E: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0463: ldarg.s 7
IL_0465: ldind.i4
IL_0466: ldelema UnityEngine.Vector3
IL_046B: ldloc.s 34 (UnityEngine.Vector3)
IL_046D: stobj UnityEngine.Vector3
IL_0472: ldloc.s 22 (RenderGroup+VertexArrays)
IL_0474: ldc.i4.2
IL_0475: and
IL_0476: brfalse => Label10
IL_047B: ldarg.s 10
IL_047D: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0482: ldarg.s 7
IL_0484: ldind.i4
IL_0485: ldelema UnityEngine.Vector3
IL_048A: ldloca.s 14 (UnityEngine.Matrix4x4)
IL_048C: ldloc.s 24 (UnityEngine.Vector3[])
IL_048E: ldloc.s 31 (System.Int32)
IL_0490: ldelema UnityEngine.Vector3
IL_0495: ldobj UnityEngine.Vector3
IL_049A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_049F: stobj UnityEngine.Vector3
IL_04A4: br => Label11
IL_04A9: Label10
IL_04A9: ldarg.s 10
IL_04AB: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_04B0: ldarg.s 7
IL_04B2: ldind.i4
IL_04B3: ldelema UnityEngine.Vector3
IL_04B8: ldc.r4 0
IL_04BD: ldc.r4 1
IL_04C2: ldc.r4 0
IL_04C7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_04CC: stobj UnityEngine.Vector3
IL_04D1: Label11
IL_04D1: ldloc.s 22 (RenderGroup+VertexArrays)
IL_04D3: ldc.i4.4
IL_04D4: and
IL_04D5: brfalse => Label12
IL_04DA: ldloc.s 25 (UnityEngine.Vector4[])
IL_04DC: ldloc.s 31 (System.Int32)
IL_04DE: ldelema UnityEngine.Vector4
IL_04E3: ldobj UnityEngine.Vector4
IL_04E8: stloc.s 35 (UnityEngine.Vector4)
IL_04EA: ldloca.s 14 (UnityEngine.Matrix4x4)
IL_04EC: ldloc.s 35 (UnityEngine.Vector4)
IL_04EE: call static UnityEngine.Vector3
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_04F3: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_04F8: stloc.s 36 (UnityEngine.Vector3)
IL_04FA: ldloca.s 35 (UnityEngine.Vector4)
IL_04FC: ldloca.s 36 (UnityEngine.Vector3)
IL_04FE: ldfld System.Single UnityEngine.Vector3::x
IL_0503: stfld System.Single UnityEngine.Vector4::x
IL_0508: ldloca.s 35 (UnityEngine.Vector4)
IL_050A: ldloca.s 36 (UnityEngine.Vector3)
IL_050C: ldfld System.Single UnityEngine.Vector3::y
IL_0511: stfld System.Single UnityEngine.Vector4::y
IL_0516: ldloca.s 35 (UnityEngine.Vector4)
IL_0518: ldloca.s 36 (UnityEngine.Vector3)
IL_051A: ldfld System.Single UnityEngine.Vector3::z
IL_051F: stfld System.Single UnityEngine.Vector4::z
IL_0524: ldarg.s 10
IL_0526: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_052B: ldarg.s 7
IL_052D: ldind.i4
IL_052E: ldelema UnityEngine.Vector4
IL_0533: ldloc.s 35 (UnityEngine.Vector4)
IL_0535: stobj UnityEngine.Vector4
IL_053A: br => Label13
IL_053F: Label12
IL_053F: ldarg.s 10
IL_0541: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0546: ldarg.s 7
IL_0548: ldind.i4
IL_0549: ldelema UnityEngine.Vector4
IL_054E: ldc.r4 1
IL_0553: ldc.r4 0
IL_0558: ldc.r4 0
IL_055D: ldc.r4 1
IL_0562: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0567: stobj UnityEngine.Vector4
IL_056C: Label13
IL_056C: ldloc.s 22 (RenderGroup+VertexArrays)
IL_056E: ldc.i4.8
IL_056F: and
IL_0570: brfalse => Label14
IL_0575: ldarg.s 10
IL_0577: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_057C: ldarg.s 7
IL_057E: ldind.i4
IL_057F: ldelema UnityEngine.Vector2
IL_0584: ldloc.s 26 (UnityEngine.Vector2[])
IL_0586: ldloc.s 31 (System.Int32)
IL_0588: ldelema UnityEngine.Vector2
IL_058D: ldobj UnityEngine.Vector2
IL_0592: stobj UnityEngine.Vector2
IL_0597: br => Label15
IL_059C: Label14
IL_059C: ldarg.s 10
IL_059E: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_05A3: ldarg.s 7
IL_05A5: ldind.i4
IL_05A6: ldelema UnityEngine.Vector2
IL_05AB: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_05B0: stobj UnityEngine.Vector2
IL_05B5: Label15
IL_05B5: ldarg.s 10
IL_05B7: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_05BC: ldarg.s 7
IL_05BE: ldind.i4
IL_05BF: ldelema UnityEngine.Color32
IL_05C4: ldloc.s 32 (UnityEngine.Color32)
IL_05C6: stobj UnityEngine.Color32
IL_05CB: ldarg.s 10
IL_05CD: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_05D2: ldarg.s 7
IL_05D4: ldind.i4
IL_05D5: ldelema UnityEngine.Vector2
IL_05DA: ldloc.s 17 (UnityEngine.Vector2)
IL_05DC: stobj UnityEngine.Vector2
IL_05E1: ldloc.s 29 (UnityEngine.Color32[])
IL_05E3: ldloc.s 31 (System.Int32)
IL_05E5: ldelema UnityEngine.Color32
IL_05EA: ldobj UnityEngine.Color32
IL_05EF: stloc.s 37 (UnityEngine.Color32)
IL_05F1: ldloc.s 28 (UnityEngine.Vector2[])
IL_05F3: ldloc.s 31 (System.Int32)
IL_05F5: ldelema UnityEngine.Vector2
IL_05FA: ldobj UnityEngine.Vector2
IL_05FF: stloc.s 38 (UnityEngine.Vector2)
IL_0601: ldloca.s 37 (UnityEngine.Color32)
IL_0603: ldfld System.Byte UnityEngine.Color32::r
IL_0608: ldc.i4 255
IL_060D: bne.un => Label16
IL_0612: ldloca.s 37 (UnityEngine.Color32)
IL_0614: ldfld System.Byte UnityEngine.Color32::g
IL_0619: ldc.i4 255
IL_061E: bne.un => Label17
IL_0623: ldloca.s 37 (UnityEngine.Color32)
IL_0625: ldfld System.Byte UnityEngine.Color32::b
IL_062A: ldc.i4.5
IL_062B: bgt => Label18
IL_0630: ldloca.s 38 (UnityEngine.Vector2)
IL_0632: ldloca.s 38 (UnityEngine.Vector2)
IL_0634: ldfld System.Single UnityEngine.Vector2::x
IL_0639: neg
IL_063A: stfld System.Single UnityEngine.Vector2::x
IL_063F: Label16
IL_063F: Label17
IL_063F: Label18
IL_063F: ldarg.s 10
IL_0641: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0646: ldarg.s 7
IL_0648: ldind.i4
IL_0649: ldelema UnityEngine.Vector2
IL_064E: ldloc.s 27 (UnityEngine.Vector2[])
IL_0650: ldloc.s 31 (System.Int32)
IL_0652: ldelema UnityEngine.Vector2
IL_0657: ldobj UnityEngine.Vector2
IL_065C: stobj UnityEngine.Vector2
IL_0661: ldarg.s 10
IL_0663: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0668: ldarg.s 7
IL_066A: ldind.i4
IL_066B: ldelema UnityEngine.Vector2
IL_0670: ldloc.s 38 (UnityEngine.Vector2)
IL_0672: stobj UnityEngine.Vector2
IL_0677: ldarg.s 7
IL_0679: ldarg.s 7
IL_067B: ldind.i4
IL_067C: ldc.i4.1
IL_067D: add
IL_067E: stind.i4
IL_067F: ldloc.s 31 (System.Int32)
IL_0681: ldc.i4.1
IL_0682: add
IL_0683: stloc.s 31 (System.Int32)
IL_0685: Label8
IL_0685: ldloc.s 31 (System.Int32)
IL_0687: ldloc.s 30 (System.Int32)
IL_0689: blt => Label19
IL_068E: ldarg.0
IL_068F: ldfld BuildingInfo BuildingAI::m_info
IL_0694: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0699: brfalse => Label20
IL_069E: ldarg.2
IL_069F: ldfld System.Byte Building::m_baseHeight
IL_06A4: ldc.i4.3
IL_06A5: blt => Label21
IL_06AA: ldarg.0
IL_06AB: ldfld BuildingInfo BuildingAI::m_info
IL_06B0: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_06B5: ldfld System.Int32[] MeshData::m_triangles
IL_06BA: stloc.s 18 (System.Int32[])
IL_06BC: ldloc.s 18 (System.Int32[])
IL_06BE: ldlen
IL_06BF: conv.i4
IL_06C0: stloc.s 19 (System.Int32)
IL_06C2: ldc.i4.0
IL_06C3: stloc.s 39 (System.Int32)
IL_06C5: br => Label22
IL_06CA: Label23
IL_06CA: ldarg.s 10
IL_06CC: ldfld System.Int32[] MeshData::m_triangles
IL_06D1: ldarg.s 8
IL_06D3: ldarg.s 8
IL_06D5: ldind.i4
IL_06D6: dup
IL_06D7: stloc.s 21 (System.Int32)
IL_06D9: ldc.i4.1
IL_06DA: add
IL_06DB: stind.i4
IL_06DC: ldloc.s 21 (System.Int32)
IL_06DE: ldloc.s 18 (System.Int32[])
IL_06E0: ldloc.s 39 (System.Int32)
IL_06E2: ldelem.i4
IL_06E3: ldarg.s 7
IL_06E5: ldind.i4
IL_06E6: add
IL_06E7: stelem.i4
IL_06E8: ldloc.s 39 (System.Int32)
IL_06EA: ldc.i4.1
IL_06EB: add
IL_06EC: stloc.s 39 (System.Int32)
IL_06EE: Label22
IL_06EE: ldloc.s 39 (System.Int32)
IL_06F0: ldloc.s 19 (System.Int32)
IL_06F2: blt => Label23
IL_06F7: ldarg.0
IL_06F8: ldfld BuildingInfo BuildingAI::m_info
IL_06FD: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0702: callvirt VertexArrays MeshData::VertexArrayMask()
IL_0707: stloc.s 22 (RenderGroup+VertexArrays)
IL_0709: ldarg.0
IL_070A: ldfld BuildingInfo BuildingAI::m_info
IL_070F: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0714: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0719: stloc.s 23 (UnityEngine.Vector3[])
IL_071B: ldarg.0
IL_071C: ldfld BuildingInfo BuildingAI::m_info
IL_0721: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0726: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_072B: stloc.s 24 (UnityEngine.Vector3[])
IL_072D: ldarg.0
IL_072E: ldfld BuildingInfo BuildingAI::m_info
IL_0733: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0738: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_073D: stloc.s 25 (UnityEngine.Vector4[])
IL_073F: ldarg.0
IL_0740: ldfld BuildingInfo BuildingAI::m_info
IL_0745: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_074A: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_074F: stloc.s 26 (UnityEngine.Vector2[])
IL_0751: ldarg.0
IL_0752: ldfld BuildingInfo BuildingAI::m_info
IL_0757: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_075C: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0761: stloc.s 27 (UnityEngine.Vector2[])
IL_0763: ldarg.0
IL_0764: ldfld BuildingInfo BuildingAI::m_info
IL_0769: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_076E: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0773: stloc.s 28 (UnityEngine.Vector2[])
IL_0775: ldarg.0
IL_0776: ldfld BuildingInfo BuildingAI::m_info
IL_077B: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0780: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0785: stloc.s 29 (UnityEngine.Color32[])
IL_0787: ldloc.s 23 (UnityEngine.Vector3[])
IL_0789: ldlen
IL_078A: conv.i4
IL_078B: stloc.s 30 (System.Int32)
IL_078D: ldc.i4.0
IL_078E: stloc.s 40 (System.Int32)
IL_0790: br => Label24
IL_0795: Label35
IL_0795: ldarg.0
IL_0796: ldfld BuildingInfo BuildingAI::m_info
IL_079B: ldfld BuildingAI BuildingInfo::m_buildingAI
IL_07A0: ldarg.1
IL_07A1: ldarg.2
IL_07A2: ldarg.0
IL_07A3: ldfld BuildingInfo BuildingAI::m_info
IL_07A8: ldloc.s 40 (System.Int32)
IL_07AA: ldc.i4.1
IL_07AB: callvirt virtual UnityEngine.Color32
BuildingAI::GetGroupVertexColor(System.UInt16 buildingID, Building& buildingData,
BuildingInfoBase info, System.Int32 vertexIndex, System.Boolean baseVertex)
IL_07B0: stloc.s 41 (UnityEngine.Color32)
IL_07B2: ldloc.s 23 (UnityEngine.Vector3[])
IL_07B4: ldloc.s 40 (System.Int32)
IL_07B6: ldelema UnityEngine.Vector3
IL_07BB: ldobj UnityEngine.Vector3
IL_07C0: stloc.s 42 (UnityEngine.Vector3)
IL_07C2: ldloca.s 42 (UnityEngine.Vector3)
IL_07C4: dup
IL_07C5: ldfld System.Single UnityEngine.Vector3::y
IL_07CA: ldarg.2
IL_07CB: ldfld System.Byte Building::m_baseHeight
IL_07D0: conv.r4
IL_07D1: mul
IL_07D2: stfld System.Single UnityEngine.Vector3::y
IL_07D7: ldloca.s 14 (UnityEngine.Matrix4x4)
IL_07D9: ldloc.s 42 (UnityEngine.Vector3)
IL_07DB: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_07E0: stloc.s 43 (UnityEngine.Vector3)
IL_07E2: ldarg.0
IL_07E3: ldfld BuildingInfo BuildingAI::m_info
IL_07E8: ldfld System.Boolean BuildingInfoBase::m_requireHeightMap
IL_07ED: brfalse => Label25
IL_07F2: ldloca.s 43 (UnityEngine.Vector3)
IL_07F4: ldloca.s 42 (UnityEngine.Vector3)
IL_07F6: ldfld System.Single UnityEngine.Vector3::y
IL_07FB: call static TerrainManager
ColossalFramework.Singleton`1<TerrainManager>::get_instance()
IL_0800: ldloc.s 43 (UnityEngine.Vector3)
IL_0802: ldarg.s 9
IL_0804: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0809: callvirt System.Single
TerrainManager::SampleDetailHeight(UnityEngine.Vector3 worldPos)
IL_080E: add
IL_080F: stfld System.Single UnityEngine.Vector3::y
IL_0814: Label25
IL_0814: ldarg.s 10
IL_0816: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_081B: ldarg.s 7
IL_081D: ldind.i4
IL_081E: ldelema UnityEngine.Vector3
IL_0823: ldloc.s 43 (UnityEngine.Vector3)
IL_0825: stobj UnityEngine.Vector3
IL_082A: ldloc.s 22 (RenderGroup+VertexArrays)
IL_082C: ldc.i4.2
IL_082D: and
IL_082E: brfalse => Label26
IL_0833: ldarg.s 10
IL_0835: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_083A: ldarg.s 7
IL_083C: ldind.i4
IL_083D: ldelema UnityEngine.Vector3
IL_0842: ldloca.s 14 (UnityEngine.Matrix4x4)
IL_0844: ldloc.s 24 (UnityEngine.Vector3[])
IL_0846: ldloc.s 40 (System.Int32)
IL_0848: ldelema UnityEngine.Vector3
IL_084D: ldobj UnityEngine.Vector3
IL_0852: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0857: stobj UnityEngine.Vector3
IL_085C: br => Label27
IL_0861: Label26
IL_0861: ldarg.s 10
IL_0863: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0868: ldarg.s 7
IL_086A: ldind.i4
IL_086B: ldelema UnityEngine.Vector3
IL_0870: ldc.r4 0
IL_0875: ldc.r4 1
IL_087A: ldc.r4 0
IL_087F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0884: stobj UnityEngine.Vector3
IL_0889: Label27
IL_0889: ldloc.s 22 (RenderGroup+VertexArrays)
IL_088B: ldc.i4.4
IL_088C: and
IL_088D: brfalse => Label28
IL_0892: ldloc.s 25 (UnityEngine.Vector4[])
IL_0894: ldloc.s 40 (System.Int32)
IL_0896: ldelema UnityEngine.Vector4
IL_089B: ldobj UnityEngine.Vector4
IL_08A0: stloc.s 44 (UnityEngine.Vector4)
IL_08A2: ldloca.s 14 (UnityEngine.Matrix4x4)
IL_08A4: ldloc.s 44 (UnityEngine.Vector4)
IL_08A6: call static UnityEngine.Vector3
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_08AB: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_08B0: stloc.s 45 (UnityEngine.Vector3)
IL_08B2: ldloca.s 44 (UnityEngine.Vector4)
IL_08B4: ldloca.s 45 (UnityEngine.Vector3)
IL_08B6: ldfld System.Single UnityEngine.Vector3::x
IL_08BB: stfld System.Single UnityEngine.Vector4::x
IL_08C0: ldloca.s 44 (UnityEngine.Vector4)
IL_08C2: ldloca.s 45 (UnityEngine.Vector3)
IL_08C4: ldfld System.Single UnityEngine.Vector3::y
IL_08C9: stfld System.Single UnityEngine.Vector4::y
IL_08CE: ldloca.s 44 (UnityEngine.Vector4)
IL_08D0: ldloca.s 45 (UnityEngine.Vector3)
IL_08D2: ldfld System.Single UnityEngine.Vector3::z
IL_08D7: stfld System.Single UnityEngine.Vector4::z
IL_08DC: ldarg.s 10
IL_08DE: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_08E3: ldarg.s 7
IL_08E5: ldind.i4
IL_08E6: ldelema UnityEngine.Vector4
IL_08EB: ldloc.s 44 (UnityEngine.Vector4)
IL_08ED: stobj UnityEngine.Vector4
IL_08F2: br => Label29
IL_08F7: Label28
IL_08F7: ldarg.s 10
IL_08F9: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_08FE: ldarg.s 7
IL_0900: ldind.i4
IL_0901: ldelema UnityEngine.Vector4
IL_0906: ldc.r4 1
IL_090B: ldc.r4 0
IL_0910: ldc.r4 0
IL_0915: ldc.r4 1
IL_091A: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_091F: stobj UnityEngine.Vector4
IL_0924: Label29
IL_0924: ldloc.s 22 (RenderGroup+VertexArrays)
IL_0926: ldc.i4.8
IL_0927: and
IL_0928: brfalse => Label30
IL_092D: ldloc.s 26 (UnityEngine.Vector2[])
IL_092F: ldloc.s 40 (System.Int32)
IL_0931: ldelema UnityEngine.Vector2
IL_0936: ldobj UnityEngine.Vector2
IL_093B: stloc.s 46 (UnityEngine.Vector2)
IL_093D: ldloca.s 46 (UnityEngine.Vector2)
IL_093F: dup
IL_0940: ldfld System.Single UnityEngine.Vector2::y
IL_0945: ldarg.2
IL_0946: ldfld System.Byte Building::m_baseHeight
IL_094B: conv.r4
IL_094C: mul
IL_094D: stfld System.Single UnityEngine.Vector2::y
IL_0952: ldarg.s 10
IL_0954: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0959: ldarg.s 7
IL_095B: ldind.i4
IL_095C: ldelema UnityEngine.Vector2
IL_0961: ldloc.s 46 (UnityEngine.Vector2)
IL_0963: stobj UnityEngine.Vector2
IL_0968: br => Label31
IL_096D: Label30
IL_096D: ldarg.s 10
IL_096F: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0974: ldarg.s 7
IL_0976: ldind.i4
IL_0977: ldelema UnityEngine.Vector2
IL_097C: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0981: stobj UnityEngine.Vector2
IL_0986: Label31
IL_0986: ldarg.s 10
IL_0988: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_098D: ldarg.s 7
IL_098F: ldind.i4
IL_0990: ldelema UnityEngine.Color32
IL_0995: ldloc.s 41 (UnityEngine.Color32)
IL_0997: stobj UnityEngine.Color32
IL_099C: ldarg.s 10
IL_099E: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_09A3: ldarg.s 7
IL_09A5: ldind.i4
IL_09A6: ldelema UnityEngine.Vector2
IL_09AB: ldloc.s 17 (UnityEngine.Vector2)
IL_09AD: stobj UnityEngine.Vector2
IL_09B2: ldloc.s 29 (UnityEngine.Color32[])
IL_09B4: ldloc.s 40 (System.Int32)
IL_09B6: ldelema UnityEngine.Color32
IL_09BB: ldobj UnityEngine.Color32
IL_09C0: stloc.s 47 (UnityEngine.Color32)
IL_09C2: ldloc.s 28 (UnityEngine.Vector2[])
IL_09C4: ldloc.s 40 (System.Int32)
IL_09C6: ldelema UnityEngine.Vector2
IL_09CB: ldobj UnityEngine.Vector2
IL_09D0: stloc.s 48 (UnityEngine.Vector2)
IL_09D2: ldloca.s 47 (UnityEngine.Color32)
IL_09D4: ldfld System.Byte UnityEngine.Color32::r
IL_09D9: ldc.i4 255
IL_09DE: bne.un => Label32
IL_09E3: ldloca.s 47 (UnityEngine.Color32)
IL_09E5: ldfld System.Byte UnityEngine.Color32::g
IL_09EA: ldc.i4 255
IL_09EF: bne.un => Label33
IL_09F4: ldloca.s 47 (UnityEngine.Color32)
IL_09F6: ldfld System.Byte UnityEngine.Color32::b
IL_09FB: ldc.i4.5
IL_09FC: bgt => Label34
IL_0A01: ldloca.s 48 (UnityEngine.Vector2)
IL_0A03: ldloca.s 48 (UnityEngine.Vector2)
IL_0A05: ldfld System.Single UnityEngine.Vector2::x
IL_0A0A: neg
IL_0A0B: stfld System.Single UnityEngine.Vector2::x
IL_0A10: Label32
IL_0A10: Label33
IL_0A10: Label34
IL_0A10: ldarg.s 10
IL_0A12: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0A17: ldarg.s 7
IL_0A19: ldind.i4
IL_0A1A: ldelema UnityEngine.Vector2
IL_0A1F: ldloc.s 27 (UnityEngine.Vector2[])
IL_0A21: ldloc.s 40 (System.Int32)
IL_0A23: ldelema UnityEngine.Vector2
IL_0A28: ldobj UnityEngine.Vector2
IL_0A2D: stobj UnityEngine.Vector2
IL_0A32: ldarg.s 10
IL_0A34: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0A39: ldarg.s 7
IL_0A3B: ldind.i4
IL_0A3C: ldelema UnityEngine.Vector2
IL_0A41: ldloc.s 48 (UnityEngine.Vector2)
IL_0A43: stobj UnityEngine.Vector2
IL_0A48: ldarg.s 7
IL_0A4A: ldarg.s 7
IL_0A4C: ldind.i4
IL_0A4D: ldc.i4.1
IL_0A4E: add
IL_0A4F: stind.i4
IL_0A50: ldloc.s 40 (System.Int32)
IL_0A52: ldc.i4.1
IL_0A53: add
IL_0A54: stloc.s 40 (System.Int32)
IL_0A56: Label24
IL_0A56: ldloc.s 40 (System.Int32)
IL_0A58: ldloc.s 30 (System.Int32)
IL_0A5A: blt => Label35
IL_0A5F: Label2
IL_0A5F: Label20
IL_0A5F: Label21
IL_0A5F: ldarg.0
IL_0A60: ldfld BuildingInfo BuildingAI::m_info
IL_0A65: ldfld MeshInfo[] BuildingInfo::m_subMeshes
IL_0A6A: brfalse => Label36
IL_0A6F: ldc.i4.0
IL_0A70: stloc.s 49 (System.Int32)
IL_0A72: br => Label37
IL_0A77: Label83
IL_0A77: ldarg.0
IL_0A78: ldfld BuildingInfo BuildingAI::m_info
IL_0A7D: ldfld MeshInfo[] BuildingInfo::m_subMeshes
IL_0A82: ldloc.s 49 (System.Int32)
IL_0A84: ldelem.ref
IL_0A85: stloc.s 50 (BuildingInfo+MeshInfo)
IL_0A87: ldloc.s 50 (BuildingInfo+MeshInfo)
IL_0A89: ldfld Flags MeshInfo::m_flagsRequired
IL_0A8E: ldloc.s 50 (BuildingInfo+MeshInfo)
IL_0A90: ldfld Flags MeshInfo::m_flagsForbidden
IL_0A95: or
IL_0A96: ldarg.2
IL_0A97: ldfld Flags Building::m_flags
IL_0A9C: and
IL_0A9D: ldloc.s 50 (BuildingInfo+MeshInfo)
IL_0A9F: ldfld Flags MeshInfo::m_flagsRequired
IL_0AA4: bne.un => Label38
IL_0AA9: ldloc.s 50 (BuildingInfo+MeshInfo)
IL_0AAB: ldfld BuildingInfoBase MeshInfo::m_subInfo
IL_0AB0: isinst BuildingInfoSub
IL_0AB5: stloc.s 51 (BuildingInfoSub)
IL_0AB7: ldloc.s 51 (BuildingInfoSub)
IL_0AB9: ldfld MeshInfo[] BuildingInfoSub::m_subMeshes
IL_0ABE: brfalse => Label39
IL_0AC3: ldloc.s 51 (BuildingInfoSub)
IL_0AC5: ldfld MeshInfo[] BuildingInfoSub::m_subMeshes
IL_0ACA: ldlen
IL_0ACB: conv.i4
IL_0ACC: brfalse => Label40
IL_0AD1: ldloc.s 51 (BuildingInfoSub)
IL_0AD3: ldfld MeshInfo[] BuildingInfoSub::m_subMeshes
IL_0AD8: ldlen
IL_0AD9: conv.i4
IL_0ADA: stloc.s 52 (System.Int32)
IL_0ADC: br => Label41
IL_0AE1: Label39
IL_0AE1: Label40
IL_0AE1: ldc.i4.1
IL_0AE2: stloc.s 52 (System.Int32)
IL_0AE4: Label41
IL_0AE4: ldc.i4.0
IL_0AE5: stloc.s 53 (System.Int32)
IL_0AE7: br => Label42
IL_0AEC: Label82
IL_0AEC: ldloc.s 51 (BuildingInfoSub)
IL_0AEE: ldfld MeshInfo[] BuildingInfoSub::m_subMeshes
IL_0AF3: brfalse => Label43
IL_0AF8: ldloc.s 51 (BuildingInfoSub)
IL_0AFA: ldfld MeshInfo[] BuildingInfoSub::m_subMeshes
IL_0AFF: ldlen
IL_0B00: conv.i4
IL_0B01: brfalse => Label44
IL_0B06: ldloc.s 51 (BuildingInfoSub)
IL_0B08: ldfld MeshInfo[] BuildingInfoSub::m_subMeshes
IL_0B0D: ldloc.s 53 (System.Int32)
IL_0B0F: ldelem.ref
IL_0B10: stloc.s 55 (BuildingInfo+MeshInfo)
IL_0B12: ldloc.s 55 (BuildingInfo+MeshInfo)
IL_0B14: ldfld BuildingInfoBase MeshInfo::m_subInfo
IL_0B19: isinst BuildingInfoSub
IL_0B1E: stloc.s 54 (BuildingInfoSub)
IL_0B20: ldloc.s 55 (BuildingInfo+MeshInfo)
IL_0B22: ldfld Flags MeshInfo::m_flagsRequired
IL_0B27: ldloc.s 55 (BuildingInfo+MeshInfo)
IL_0B29: ldfld Flags MeshInfo::m_flagsForbidden
IL_0B2E: or
IL_0B2F: ldarg.2
IL_0B30: ldfld Flags Building::m_flags
IL_0B35: and
IL_0B36: ldloc.s 55 (BuildingInfo+MeshInfo)
IL_0B38: ldfld Flags MeshInfo::m_flagsRequired
IL_0B3D: beq => Label45
IL_0B42: br => Label46
IL_0B47: Label45
IL_0B47: br => Label47
IL_0B4C: Label43
IL_0B4C: Label44
IL_0B4C: ldloc.s 51 (BuildingInfoSub)
IL_0B4E: stloc.s 54 (BuildingInfoSub)
IL_0B50: Label47
IL_0B50: ldloc.s 54 (BuildingInfoSub)
IL_0B52: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_0B57: brfalse => Label48
IL_0B5C: ldarg.2
IL_0B5D: ldloca.s 56 (UnityEngine.Vector3)
IL_0B5F: ldloca.s 57 (UnityEngine.Quaternion)
IL_0B61: call System.Void
Building::CalculateMeshPosition(UnityEngine.Vector3& meshPosition,
UnityEngine.Quaternion& meshRotation)
IL_0B66: ldloc.s 56 (UnityEngine.Vector3)
IL_0B68: ldarg.s 9
IL_0B6A: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0B6F: ldloc.s 57 (UnityEngine.Quaternion)
IL_0B71: call static UnityEngine.Vector3 UnityEngine.Vector3::get_one()
IL_0B76: call static UnityEngine.Matrix4x4
UnityEngine.Matrix4x4::TRS(UnityEngine.Vector3 pos, UnityEngine.Quaternion q,
UnityEngine.Vector3 s)
IL_0B7B: ldloc.s 50 (BuildingInfo+MeshInfo)
IL_0B7D: ldfld UnityEngine.Matrix4x4 MeshInfo::m_matrix
IL_0B82: call static UnityEngine.Matrix4x4
UnityEngine.Matrix4x4::op_Multiply(UnityEngine.Matrix4x4 lhs, UnityEngine.Matrix4x4
rhs)
IL_0B87: stloc.s 58 (UnityEngine.Matrix4x4)
IL_0B89: ldarg.2
IL_0B8A: ldfld System.UInt16 Building::m_parentBuilding
IL_0B8F: brfalse => Label49
IL_0B94: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0B99: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0B9E: brfalse => Label50
IL_0BA3: Label49
IL_0BA3: ldarg.1
IL_0BA4: br => Label51
IL_0BA9: Label50
IL_0BA9: ldarg.1
IL_0BAA: call static System.UInt16 Building::FindParentBuilding(System.UInt16
buildingID)
IL_0BAF: Label51
IL_0BAF: stloc.s 59 (System.UInt16)
IL_0BB1: ldloc.s 59 (System.UInt16)
IL_0BB3: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_0BB8: stloc.s 60 (UnityEngine.Vector4)
IL_0BBA: ldloca.s 61 (UnityEngine.Vector2)
IL_0BBC: ldloca.s 60 (UnityEngine.Vector4)
IL_0BBE: ldfld System.Single UnityEngine.Vector4::x
IL_0BC3: ldloca.s 60 (UnityEngine.Vector4)
IL_0BC5: ldfld System.Single UnityEngine.Vector4::y
IL_0BCA: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_0BCF: ldloc.s 54 (BuildingInfoSub)
IL_0BD1: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_0BD6: ldfld System.Int32[] MeshData::m_triangles
IL_0BDB: stloc.s 62 (System.Int32[])
IL_0BDD: ldloc.s 62 (System.Int32[])
IL_0BDF: ldlen
IL_0BE0: conv.i4
IL_0BE1: stloc.s 63 (System.Int32)
IL_0BE3: ldc.i4.0
IL_0BE4: stloc.s 64 (System.Int32)
IL_0BE6: br => Label52
IL_0BEB: Label53
IL_0BEB: ldarg.s 10
IL_0BED: ldfld System.Int32[] MeshData::m_triangles
IL_0BF2: ldarg.s 8
IL_0BF4: ldarg.s 8
IL_0BF6: ldind.i4
IL_0BF7: dup
IL_0BF8: stloc.s 21 (System.Int32)
IL_0BFA: ldc.i4.1
IL_0BFB: add
IL_0BFC: stind.i4
IL_0BFD: ldloc.s 21 (System.Int32)
IL_0BFF: ldloc.s 62 (System.Int32[])
IL_0C01: ldloc.s 64 (System.Int32)
IL_0C03: ldelem.i4
IL_0C04: ldarg.s 7
IL_0C06: ldind.i4
IL_0C07: add
IL_0C08: stelem.i4
IL_0C09: ldloc.s 64 (System.Int32)
IL_0C0B: ldc.i4.1
IL_0C0C: add
IL_0C0D: stloc.s 64 (System.Int32)
IL_0C0F: Label52
IL_0C0F: ldloc.s 64 (System.Int32)
IL_0C11: ldloc.s 63 (System.Int32)
IL_0C13: blt => Label53
IL_0C18: ldloc.s 54 (BuildingInfoSub)
IL_0C1A: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_0C1F: callvirt VertexArrays MeshData::VertexArrayMask()
IL_0C24: stloc.s 65 (RenderGroup+VertexArrays)
IL_0C26: ldloc.s 54 (BuildingInfoSub)
IL_0C28: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_0C2D: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0C32: stloc.s 66 (UnityEngine.Vector3[])
IL_0C34: ldloc.s 54 (BuildingInfoSub)
IL_0C36: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_0C3B: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0C40: stloc.s 67 (UnityEngine.Vector3[])
IL_0C42: ldloc.s 54 (BuildingInfoSub)
IL_0C44: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_0C49: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0C4E: stloc.s 68 (UnityEngine.Vector4[])
IL_0C50: ldloc.s 54 (BuildingInfoSub)
IL_0C52: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_0C57: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0C5C: stloc.s 69 (UnityEngine.Vector2[])
IL_0C5E: ldloc.s 54 (BuildingInfoSub)
IL_0C60: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_0C65: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0C6A: stloc.s 70 (UnityEngine.Vector2[])
IL_0C6C: ldloc.s 54 (BuildingInfoSub)
IL_0C6E: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_0C73: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0C78: stloc.s 71 (UnityEngine.Vector2[])
IL_0C7A: ldloc.s 54 (BuildingInfoSub)
IL_0C7C: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_0C81: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0C86: stloc.s 72 (UnityEngine.Color32[])
IL_0C88: ldloc.s 66 (UnityEngine.Vector3[])
IL_0C8A: ldlen
IL_0C8B: conv.i4
IL_0C8C: stloc.s 73 (System.Int32)
IL_0C8E: ldc.i4.0
IL_0C8F: stloc.s 74 (System.Int32)
IL_0C91: br => Label54
IL_0C96: Label65
IL_0C96: ldarg.0
IL_0C97: ldfld BuildingInfo BuildingAI::m_info
IL_0C9C: ldfld BuildingAI BuildingInfo::m_buildingAI
IL_0CA1: ldarg.1
IL_0CA2: ldarg.2
IL_0CA3: ldloc.s 54 (BuildingInfoSub)
IL_0CA5: ldloc.s 74 (System.Int32)
IL_0CA7: ldc.i4.0
IL_0CA8: callvirt virtual UnityEngine.Color32
BuildingAI::GetGroupVertexColor(System.UInt16 buildingID, Building& buildingData,
BuildingInfoBase info, System.Int32 vertexIndex, System.Boolean baseVertex)
IL_0CAD: stloc.s 75 (UnityEngine.Color32)
IL_0CAF: ldloc.s 66 (UnityEngine.Vector3[])
IL_0CB1: ldloc.s 74 (System.Int32)
IL_0CB3: ldelema UnityEngine.Vector3
IL_0CB8: ldobj UnityEngine.Vector3
IL_0CBD: stloc.s 76 (UnityEngine.Vector3)
IL_0CBF: ldloca.s 58 (UnityEngine.Matrix4x4)
IL_0CC1: ldloc.s 76 (UnityEngine.Vector3)
IL_0CC3: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_0CC8: stloc.s 77 (UnityEngine.Vector3)
IL_0CCA: ldloc.s 54 (BuildingInfoSub)
IL_0CCC: ldfld System.Boolean BuildingInfoBase::m_requireHeightMap
IL_0CD1: brfalse => Label55
IL_0CD6: ldloca.s 77 (UnityEngine.Vector3)
IL_0CD8: ldloca.s 76 (UnityEngine.Vector3)
IL_0CDA: ldfld System.Single UnityEngine.Vector3::y
IL_0CDF: call static TerrainManager
ColossalFramework.Singleton`1<TerrainManager>::get_instance()
IL_0CE4: ldloc.s 77 (UnityEngine.Vector3)
IL_0CE6: ldarg.s 9
IL_0CE8: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0CED: callvirt System.Single
TerrainManager::SampleDetailHeight(UnityEngine.Vector3 worldPos)
IL_0CF2: add
IL_0CF3: stfld System.Single UnityEngine.Vector3::y
IL_0CF8: Label55
IL_0CF8: ldarg.s 10
IL_0CFA: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0CFF: ldarg.s 7
IL_0D01: ldind.i4
IL_0D02: ldelema UnityEngine.Vector3
IL_0D07: ldloc.s 77 (UnityEngine.Vector3)
IL_0D09: stobj UnityEngine.Vector3
IL_0D0E: ldloc.s 65 (RenderGroup+VertexArrays)
IL_0D10: ldc.i4.2
IL_0D11: and
IL_0D12: brfalse => Label56
IL_0D17: ldarg.s 10
IL_0D19: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0D1E: ldarg.s 7
IL_0D20: ldind.i4
IL_0D21: ldelema UnityEngine.Vector3
IL_0D26: ldloca.s 58 (UnityEngine.Matrix4x4)
IL_0D28: ldloc.s 67 (UnityEngine.Vector3[])
IL_0D2A: ldloc.s 74 (System.Int32)
IL_0D2C: ldelema UnityEngine.Vector3
IL_0D31: ldobj UnityEngine.Vector3
IL_0D36: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0D3B: stobj UnityEngine.Vector3
IL_0D40: br => Label57
IL_0D45: Label56
IL_0D45: ldarg.s 10
IL_0D47: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0D4C: ldarg.s 7
IL_0D4E: ldind.i4
IL_0D4F: ldelema UnityEngine.Vector3
IL_0D54: ldc.r4 0
IL_0D59: ldc.r4 1
IL_0D5E: ldc.r4 0
IL_0D63: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0D68: stobj UnityEngine.Vector3
IL_0D6D: Label57
IL_0D6D: ldloc.s 65 (RenderGroup+VertexArrays)
IL_0D6F: ldc.i4.4
IL_0D70: and
IL_0D71: brfalse => Label58
IL_0D76: ldloc.s 68 (UnityEngine.Vector4[])
IL_0D78: ldloc.s 74 (System.Int32)
IL_0D7A: ldelema UnityEngine.Vector4
IL_0D7F: ldobj UnityEngine.Vector4
IL_0D84: stloc.s 78 (UnityEngine.Vector4)
IL_0D86: ldloca.s 58 (UnityEngine.Matrix4x4)
IL_0D88: ldloc.s 78 (UnityEngine.Vector4)
IL_0D8A: call static UnityEngine.Vector3
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0D8F: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0D94: stloc.s 79 (UnityEngine.Vector3)
IL_0D96: ldloca.s 78 (UnityEngine.Vector4)
IL_0D98: ldloca.s 79 (UnityEngine.Vector3)
IL_0D9A: ldfld System.Single UnityEngine.Vector3::x
IL_0D9F: stfld System.Single UnityEngine.Vector4::x
IL_0DA4: ldloca.s 78 (UnityEngine.Vector4)
IL_0DA6: ldloca.s 79 (UnityEngine.Vector3)
IL_0DA8: ldfld System.Single UnityEngine.Vector3::y
IL_0DAD: stfld System.Single UnityEngine.Vector4::y
IL_0DB2: ldloca.s 78 (UnityEngine.Vector4)
IL_0DB4: ldloca.s 79 (UnityEngine.Vector3)
IL_0DB6: ldfld System.Single UnityEngine.Vector3::z
IL_0DBB: stfld System.Single UnityEngine.Vector4::z
IL_0DC0: ldarg.s 10
IL_0DC2: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0DC7: ldarg.s 7
IL_0DC9: ldind.i4
IL_0DCA: ldelema UnityEngine.Vector4
IL_0DCF: ldloc.s 78 (UnityEngine.Vector4)
IL_0DD1: stobj UnityEngine.Vector4
IL_0DD6: br => Label59
IL_0DDB: Label58
IL_0DDB: ldarg.s 10
IL_0DDD: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0DE2: ldarg.s 7
IL_0DE4: ldind.i4
IL_0DE5: ldelema UnityEngine.Vector4
IL_0DEA: ldc.r4 1
IL_0DEF: ldc.r4 0
IL_0DF4: ldc.r4 0
IL_0DF9: ldc.r4 1
IL_0DFE: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0E03: stobj UnityEngine.Vector4
IL_0E08: Label59
IL_0E08: ldloc.s 65 (RenderGroup+VertexArrays)
IL_0E0A: ldc.i4.8
IL_0E0B: and
IL_0E0C: brfalse => Label60
IL_0E11: ldarg.s 10
IL_0E13: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0E18: ldarg.s 7
IL_0E1A: ldind.i4
IL_0E1B: ldelema UnityEngine.Vector2
IL_0E20: ldloc.s 69 (UnityEngine.Vector2[])
IL_0E22: ldloc.s 74 (System.Int32)
IL_0E24: ldelema UnityEngine.Vector2
IL_0E29: ldobj UnityEngine.Vector2
IL_0E2E: stobj UnityEngine.Vector2
IL_0E33: br => Label61
IL_0E38: Label60
IL_0E38: ldarg.s 10
IL_0E3A: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0E3F: ldarg.s 7
IL_0E41: ldind.i4
IL_0E42: ldelema UnityEngine.Vector2
IL_0E47: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0E4C: stobj UnityEngine.Vector2
IL_0E51: Label61
IL_0E51: ldarg.s 10
IL_0E53: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0E58: ldarg.s 7
IL_0E5A: ldind.i4
IL_0E5B: ldelema UnityEngine.Color32
IL_0E60: ldloc.s 75 (UnityEngine.Color32)
IL_0E62: stobj UnityEngine.Color32
IL_0E67: ldarg.s 10
IL_0E69: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0E6E: ldarg.s 7
IL_0E70: ldind.i4
IL_0E71: ldelema UnityEngine.Vector2
IL_0E76: ldloc.s 61 (UnityEngine.Vector2)
IL_0E78: stobj UnityEngine.Vector2
IL_0E7D: ldloc.s 72 (UnityEngine.Color32[])
IL_0E7F: ldloc.s 74 (System.Int32)
IL_0E81: ldelema UnityEngine.Color32
IL_0E86: ldobj UnityEngine.Color32
IL_0E8B: stloc.s 80 (UnityEngine.Color32)
IL_0E8D: ldloc.s 71 (UnityEngine.Vector2[])
IL_0E8F: ldloc.s 74 (System.Int32)
IL_0E91: ldelema UnityEngine.Vector2
IL_0E96: ldobj UnityEngine.Vector2
IL_0E9B: stloc.s 81 (UnityEngine.Vector2)
IL_0E9D: ldloca.s 80 (UnityEngine.Color32)
IL_0E9F: ldfld System.Byte UnityEngine.Color32::r
IL_0EA4: ldc.i4 255
IL_0EA9: bne.un => Label62
IL_0EAE: ldloca.s 80 (UnityEngine.Color32)
IL_0EB0: ldfld System.Byte UnityEngine.Color32::g
IL_0EB5: ldc.i4 255
IL_0EBA: bne.un => Label63
IL_0EBF: ldloca.s 80 (UnityEngine.Color32)
IL_0EC1: ldfld System.Byte UnityEngine.Color32::b
IL_0EC6: ldc.i4.5
IL_0EC7: bgt => Label64
IL_0ECC: ldloca.s 81 (UnityEngine.Vector2)
IL_0ECE: ldloca.s 81 (UnityEngine.Vector2)
IL_0ED0: ldfld System.Single UnityEngine.Vector2::x
IL_0ED5: neg
IL_0ED6: stfld System.Single UnityEngine.Vector2::x
IL_0EDB: Label62
IL_0EDB: Label63
IL_0EDB: Label64
IL_0EDB: ldarg.s 10
IL_0EDD: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0EE2: ldarg.s 7
IL_0EE4: ldind.i4
IL_0EE5: ldelema UnityEngine.Vector2
IL_0EEA: ldloc.s 70 (UnityEngine.Vector2[])
IL_0EEC: ldloc.s 74 (System.Int32)
IL_0EEE: ldelema UnityEngine.Vector2
IL_0EF3: ldobj UnityEngine.Vector2
IL_0EF8: stobj UnityEngine.Vector2
IL_0EFD: ldarg.s 10
IL_0EFF: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0F04: ldarg.s 7
IL_0F06: ldind.i4
IL_0F07: ldelema UnityEngine.Vector2
IL_0F0C: ldloc.s 81 (UnityEngine.Vector2)
IL_0F0E: stobj UnityEngine.Vector2
IL_0F13: ldarg.s 7
IL_0F15: ldarg.s 7
IL_0F17: ldind.i4
IL_0F18: ldc.i4.1
IL_0F19: add
IL_0F1A: stind.i4
IL_0F1B: ldloc.s 74 (System.Int32)
IL_0F1D: ldc.i4.1
IL_0F1E: add
IL_0F1F: stloc.s 74 (System.Int32)
IL_0F21: Label54
IL_0F21: ldloc.s 74 (System.Int32)
IL_0F23: ldloc.s 73 (System.Int32)
IL_0F25: blt => Label65
IL_0F2A: ldloc.s 54 (BuildingInfoSub)
IL_0F2C: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0F31: brfalse => Label66
IL_0F36: ldarg.2
IL_0F37: ldfld System.Byte Building::m_baseHeight
IL_0F3C: ldc.i4.3
IL_0F3D: blt => Label67
IL_0F42: ldloc.s 54 (BuildingInfoSub)
IL_0F44: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0F49: ldfld System.Int32[] MeshData::m_triangles
IL_0F4E: stloc.s 62 (System.Int32[])
IL_0F50: ldloc.s 62 (System.Int32[])
IL_0F52: ldlen
IL_0F53: conv.i4
IL_0F54: stloc.s 63 (System.Int32)
IL_0F56: ldc.i4.0
IL_0F57: stloc.s 82 (System.Int32)
IL_0F59: br => Label68
IL_0F5E: Label69
IL_0F5E: ldarg.s 10
IL_0F60: ldfld System.Int32[] MeshData::m_triangles
IL_0F65: ldarg.s 8
IL_0F67: ldarg.s 8
IL_0F69: ldind.i4
IL_0F6A: dup
IL_0F6B: stloc.s 21 (System.Int32)
IL_0F6D: ldc.i4.1
IL_0F6E: add
IL_0F6F: stind.i4
IL_0F70: ldloc.s 21 (System.Int32)
IL_0F72: ldloc.s 62 (System.Int32[])
IL_0F74: ldloc.s 82 (System.Int32)
IL_0F76: ldelem.i4
IL_0F77: ldarg.s 7
IL_0F79: ldind.i4
IL_0F7A: add
IL_0F7B: stelem.i4
IL_0F7C: ldloc.s 82 (System.Int32)
IL_0F7E: ldc.i4.1
IL_0F7F: add
IL_0F80: stloc.s 82 (System.Int32)
IL_0F82: Label68
IL_0F82: ldloc.s 82 (System.Int32)
IL_0F84: ldloc.s 63 (System.Int32)
IL_0F86: blt => Label69
IL_0F8B: ldloc.s 54 (BuildingInfoSub)
IL_0F8D: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0F92: callvirt VertexArrays MeshData::VertexArrayMask()
IL_0F97: stloc.s 65 (RenderGroup+VertexArrays)
IL_0F99: ldloc.s 54 (BuildingInfoSub)
IL_0F9B: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0FA0: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0FA5: stloc.s 66 (UnityEngine.Vector3[])
IL_0FA7: ldloc.s 54 (BuildingInfoSub)
IL_0FA9: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0FAE: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0FB3: stloc.s 67 (UnityEngine.Vector3[])
IL_0FB5: ldloc.s 54 (BuildingInfoSub)
IL_0FB7: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0FBC: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0FC1: stloc.s 68 (UnityEngine.Vector4[])
IL_0FC3: ldloc.s 54 (BuildingInfoSub)
IL_0FC5: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0FCA: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0FCF: stloc.s 69 (UnityEngine.Vector2[])
IL_0FD1: ldloc.s 54 (BuildingInfoSub)
IL_0FD3: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0FD8: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0FDD: stloc.s 70 (UnityEngine.Vector2[])
IL_0FDF: ldloc.s 54 (BuildingInfoSub)
IL_0FE1: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0FE6: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0FEB: stloc.s 71 (UnityEngine.Vector2[])
IL_0FED: ldloc.s 54 (BuildingInfoSub)
IL_0FEF: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0FF4: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0FF9: stloc.s 72 (UnityEngine.Color32[])
IL_0FFB: ldloc.s 66 (UnityEngine.Vector3[])
IL_0FFD: ldlen
IL_0FFE: conv.i4
IL_0FFF: stloc.s 73 (System.Int32)
IL_1001: ldc.i4.0
IL_1002: stloc.s 83 (System.Int32)
IL_1004: br => Label70
IL_1009: Label81
IL_1009: ldarg.0
IL_100A: ldfld BuildingInfo BuildingAI::m_info
IL_100F: ldfld BuildingAI BuildingInfo::m_buildingAI
IL_1014: ldarg.1
IL_1015: ldarg.2
IL_1016: ldloc.s 54 (BuildingInfoSub)
IL_1018: ldloc.s 83 (System.Int32)
IL_101A: ldc.i4.1
IL_101B: callvirt virtual UnityEngine.Color32
BuildingAI::GetGroupVertexColor(System.UInt16 buildingID, Building& buildingData,
BuildingInfoBase info, System.Int32 vertexIndex, System.Boolean baseVertex)
IL_1020: stloc.s 84 (UnityEngine.Color32)
IL_1022: ldloc.s 66 (UnityEngine.Vector3[])
IL_1024: ldloc.s 83 (System.Int32)
IL_1026: ldelema UnityEngine.Vector3
IL_102B: ldobj UnityEngine.Vector3
IL_1030: stloc.s 85 (UnityEngine.Vector3)
IL_1032: ldloca.s 85 (UnityEngine.Vector3)
IL_1034: dup
IL_1035: ldfld System.Single UnityEngine.Vector3::y
IL_103A: ldarg.2
IL_103B: ldfld System.Byte Building::m_baseHeight
IL_1040: conv.r4
IL_1041: mul
IL_1042: stfld System.Single UnityEngine.Vector3::y
IL_1047: ldloca.s 58 (UnityEngine.Matrix4x4)
IL_1049: ldloc.s 85 (UnityEngine.Vector3)
IL_104B: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_1050: stloc.s 86 (UnityEngine.Vector3)
IL_1052: ldloc.s 54 (BuildingInfoSub)
IL_1054: ldfld System.Boolean BuildingInfoBase::m_requireHeightMap
IL_1059: brfalse => Label71
IL_105E: ldloca.s 86 (UnityEngine.Vector3)
IL_1060: ldloca.s 85 (UnityEngine.Vector3)
IL_1062: ldfld System.Single UnityEngine.Vector3::y
IL_1067: call static TerrainManager
ColossalFramework.Singleton`1<TerrainManager>::get_instance()
IL_106C: ldloc.s 86 (UnityEngine.Vector3)
IL_106E: ldarg.s 9
IL_1070: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_1075: callvirt System.Single
TerrainManager::SampleDetailHeight(UnityEngine.Vector3 worldPos)
IL_107A: add
IL_107B: stfld System.Single UnityEngine.Vector3::y
IL_1080: Label71
IL_1080: ldarg.s 10
IL_1082: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_1087: ldarg.s 7
IL_1089: ldind.i4
IL_108A: ldelema UnityEngine.Vector3
IL_108F: ldloc.s 86 (UnityEngine.Vector3)
IL_1091: stobj UnityEngine.Vector3
IL_1096: ldloc.s 65 (RenderGroup+VertexArrays)
IL_1098: ldc.i4.2
IL_1099: and
IL_109A: brfalse => Label72
IL_109F: ldarg.s 10
IL_10A1: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_10A6: ldarg.s 7
IL_10A8: ldind.i4
IL_10A9: ldelema UnityEngine.Vector3
IL_10AE: ldloca.s 58 (UnityEngine.Matrix4x4)
IL_10B0: ldloc.s 67 (UnityEngine.Vector3[])
IL_10B2: ldloc.s 83 (System.Int32)
IL_10B4: ldelema UnityEngine.Vector3
IL_10B9: ldobj UnityEngine.Vector3
IL_10BE: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_10C3: stobj UnityEngine.Vector3
IL_10C8: br => Label73
IL_10CD: Label72
IL_10CD: ldarg.s 10
IL_10CF: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_10D4: ldarg.s 7
IL_10D6: ldind.i4
IL_10D7: ldelema UnityEngine.Vector3
IL_10DC: ldc.r4 0
IL_10E1: ldc.r4 1
IL_10E6: ldc.r4 0
IL_10EB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_10F0: stobj UnityEngine.Vector3
IL_10F5: Label73
IL_10F5: ldloc.s 65 (RenderGroup+VertexArrays)
IL_10F7: ldc.i4.4
IL_10F8: and
IL_10F9: brfalse => Label74
IL_10FE: ldloc.s 68 (UnityEngine.Vector4[])
IL_1100: ldloc.s 83 (System.Int32)
IL_1102: ldelema UnityEngine.Vector4
IL_1107: ldobj UnityEngine.Vector4
IL_110C: stloc.s 87 (UnityEngine.Vector4)
IL_110E: ldloca.s 58 (UnityEngine.Matrix4x4)
IL_1110: ldloc.s 87 (UnityEngine.Vector4)
IL_1112: call static UnityEngine.Vector3
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_1117: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_111C: stloc.s 88 (UnityEngine.Vector3)
IL_111E: ldloca.s 87 (UnityEngine.Vector4)
IL_1120: ldloca.s 88 (UnityEngine.Vector3)
IL_1122: ldfld System.Single UnityEngine.Vector3::x
IL_1127: stfld System.Single UnityEngine.Vector4::x
IL_112C: ldloca.s 87 (UnityEngine.Vector4)
IL_112E: ldloca.s 88 (UnityEngine.Vector3)
IL_1130: ldfld System.Single UnityEngine.Vector3::y
IL_1135: stfld System.Single UnityEngine.Vector4::y
IL_113A: ldloca.s 87 (UnityEngine.Vector4)
IL_113C: ldloca.s 88 (UnityEngine.Vector3)
IL_113E: ldfld System.Single UnityEngine.Vector3::z
IL_1143: stfld System.Single UnityEngine.Vector4::z
IL_1148: ldarg.s 10
IL_114A: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_114F: ldarg.s 7
IL_1151: ldind.i4
IL_1152: ldelema UnityEngine.Vector4
IL_1157: ldloc.s 87 (UnityEngine.Vector4)
IL_1159: stobj UnityEngine.Vector4
IL_115E: br => Label75
IL_1163: Label74
IL_1163: ldarg.s 10
IL_1165: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_116A: ldarg.s 7
IL_116C: ldind.i4
IL_116D: ldelema UnityEngine.Vector4
IL_1172: ldc.r4 1
IL_1177: ldc.r4 0
IL_117C: ldc.r4 0
IL_1181: ldc.r4 1
IL_1186: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_118B: stobj UnityEngine.Vector4
IL_1190: Label75
IL_1190: ldloc.s 65 (RenderGroup+VertexArrays)
IL_1192: ldc.i4.8
IL_1193: and
IL_1194: brfalse => Label76
IL_1199: ldloc.s 69 (UnityEngine.Vector2[])
IL_119B: ldloc.s 83 (System.Int32)
IL_119D: ldelema UnityEngine.Vector2
IL_11A2: ldobj UnityEngine.Vector2
IL_11A7: stloc.s 89 (UnityEngine.Vector2)
IL_11A9: ldloca.s 89 (UnityEngine.Vector2)
IL_11AB: dup
IL_11AC: ldfld System.Single UnityEngine.Vector2::y
IL_11B1: ldarg.2
IL_11B2: ldfld System.Byte Building::m_baseHeight
IL_11B7: conv.r4
IL_11B8: mul
IL_11B9: stfld System.Single UnityEngine.Vector2::y
IL_11BE: ldarg.s 10
IL_11C0: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_11C5: ldarg.s 7
IL_11C7: ldind.i4
IL_11C8: ldelema UnityEngine.Vector2
IL_11CD: ldloc.s 89 (UnityEngine.Vector2)
IL_11CF: stobj UnityEngine.Vector2
IL_11D4: br => Label77
IL_11D9: Label76
IL_11D9: ldarg.s 10
IL_11DB: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_11E0: ldarg.s 7
IL_11E2: ldind.i4
IL_11E3: ldelema UnityEngine.Vector2
IL_11E8: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_11ED: stobj UnityEngine.Vector2
IL_11F2: Label77
IL_11F2: ldarg.s 10
IL_11F4: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_11F9: ldarg.s 7
IL_11FB: ldind.i4
IL_11FC: ldelema UnityEngine.Color32
IL_1201: ldloc.s 84 (UnityEngine.Color32)
IL_1203: stobj UnityEngine.Color32
IL_1208: ldarg.s 10
IL_120A: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_120F: ldarg.s 7
IL_1211: ldind.i4
IL_1212: ldelema UnityEngine.Vector2
IL_1217: ldloc.s 61 (UnityEngine.Vector2)
IL_1219: stobj UnityEngine.Vector2
IL_121E: ldloc.s 72 (UnityEngine.Color32[])
IL_1220: ldloc.s 83 (System.Int32)
IL_1222: ldelema UnityEngine.Color32
IL_1227: ldobj UnityEngine.Color32
IL_122C: stloc.s 90 (UnityEngine.Color32)
IL_122E: ldloc.s 71 (UnityEngine.Vector2[])
IL_1230: ldloc.s 83 (System.Int32)
IL_1232: ldelema UnityEngine.Vector2
IL_1237: ldobj UnityEngine.Vector2
IL_123C: stloc.s 91 (UnityEngine.Vector2)
IL_123E: ldloca.s 90 (UnityEngine.Color32)
IL_1240: ldfld System.Byte UnityEngine.Color32::r
IL_1245: ldc.i4 255
IL_124A: bne.un => Label78
IL_124F: ldloca.s 90 (UnityEngine.Color32)
IL_1251: ldfld System.Byte UnityEngine.Color32::g
IL_1256: ldc.i4 255
IL_125B: bne.un => Label79
IL_1260: ldloca.s 90 (UnityEngine.Color32)
IL_1262: ldfld System.Byte UnityEngine.Color32::b
IL_1267: ldc.i4.5
IL_1268: bgt => Label80
IL_126D: ldloca.s 91 (UnityEngine.Vector2)
IL_126F: ldloca.s 91 (UnityEngine.Vector2)
IL_1271: ldfld System.Single UnityEngine.Vector2::x
IL_1276: neg
IL_1277: stfld System.Single UnityEngine.Vector2::x
IL_127C: Label78
IL_127C: Label79
IL_127C: Label80
IL_127C: ldarg.s 10
IL_127E: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_1283: ldarg.s 7
IL_1285: ldind.i4
IL_1286: ldelema UnityEngine.Vector2
IL_128B: ldloc.s 70 (UnityEngine.Vector2[])
IL_128D: ldloc.s 83 (System.Int32)
IL_128F: ldelema UnityEngine.Vector2
IL_1294: ldobj UnityEngine.Vector2
IL_1299: stobj UnityEngine.Vector2
IL_129E: ldarg.s 10
IL_12A0: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_12A5: ldarg.s 7
IL_12A7: ldind.i4
IL_12A8: ldelema UnityEngine.Vector2
IL_12AD: ldloc.s 91 (UnityEngine.Vector2)
IL_12AF: stobj UnityEngine.Vector2
IL_12B4: ldarg.s 7
IL_12B6: ldarg.s 7
IL_12B8: ldind.i4
IL_12B9: ldc.i4.1
IL_12BA: add
IL_12BB: stind.i4
IL_12BC: ldloc.s 83 (System.Int32)
IL_12BE: ldc.i4.1
IL_12BF: add
IL_12C0: stloc.s 83 (System.Int32)
IL_12C2: Label70
IL_12C2: ldloc.s 83 (System.Int32)
IL_12C4: ldloc.s 73 (System.Int32)
IL_12C6: blt => Label81
IL_12CB: Label46
IL_12CB: Label48
IL_12CB: Label66
IL_12CB: Label67
IL_12CB: ldloc.s 53 (System.Int32)
IL_12CD: ldc.i4.1
IL_12CE: add
IL_12CF: stloc.s 53 (System.Int32)
IL_12D1: Label42
IL_12D1: ldloc.s 53 (System.Int32)
IL_12D3: ldloc.s 52 (System.Int32)
IL_12D5: blt => Label82
IL_12DA: Label38
IL_12DA: ldloc.s 49 (System.Int32)
IL_12DC: ldc.i4.1
IL_12DD: add
IL_12DE: stloc.s 49 (System.Int32)
IL_12E0: Label37
IL_12E0: ldloc.s 49 (System.Int32)
IL_12E2: ldarg.0
IL_12E3: ldfld BuildingInfo BuildingAI::m_info
IL_12E8: ldfld MeshInfo[] BuildingInfo::m_subMeshes
IL_12ED: ldlen
IL_12EE: conv.i4
IL_12EF: blt => Label83
IL_12F4: // end original
IL_12F4: Label0
IL_12F4: Label1
IL_12F4: Label36
IL_12F4: ret
DONE

### Patch: virtual System.Void BuildingInfo::RefreshLevelOfDetail()


### Replacement: static System.Void
BuildingInfo::RefreshLevelOfDetail_Patch0(BuildingInfo this)
IL_0000: Local var 0: System.Int32
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldfld UnityEngine.Mesh BuildingInfoBase::m_mesh
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: ldarg.0
IL_0013: ldfld BuildingInfoGen BuildingInfoBase::m_generatedInfo
IL_0018: ldfld UnityEngine.Vector3 BuildingInfoGen::m_max
IL_001D: ldarg.0
IL_001E: ldfld BuildingInfoGen BuildingInfoBase::m_generatedInfo
IL_0023: ldfld UnityEngine.Vector3 BuildingInfoGen::m_min
IL_0028: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_002D: call System.Void
BuildingInfoBase::RefreshLevelOfDetail(UnityEngine.Vector3 size)
IL_0032: Label0
IL_0032: ldarg.0
IL_0033: ldfld MeshInfo[] BuildingInfo::m_subMeshes
IL_0038: brfalse => Label1
IL_003D: ldc.i4.0
IL_003E: stloc.0
IL_003F: br => Label2
IL_0044: Label3
IL_0044: ldarg.0
IL_0045: ldfld MeshInfo[] BuildingInfo::m_subMeshes
IL_004A: ldloc.0
IL_004B: ldelem.ref
IL_004C: ldfld BuildingInfoBase MeshInfo::m_subInfo
IL_0051: callvirt virtual System.Void PrefabInfo::RefreshLevelOfDetail()
IL_0056: ldloc.0
IL_0057: ldc.i4.1
IL_0058: add
IL_0059: stloc.0
IL_005A: Label2
IL_005A: ldloc.0
IL_005B: ldarg.0
IL_005C: ldfld MeshInfo[] BuildingInfo::m_subMeshes
IL_0061: ldlen
IL_0062: conv.i4
IL_0063: blt => Label3
IL_0068: // end original
IL_0068: Label1
IL_0068: ret
DONE

### Patch: virtual System.Void BuildingInfoSub::RefreshLevelOfDetail()


### Replacement: static System.Void
BuildingInfoSub::RefreshLevelOfDetail_Patch0(BuildingInfoSub this)
IL_0000: Local var 0: System.Int32
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldfld UnityEngine.Mesh BuildingInfoBase::m_mesh
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: ldarg.0
IL_0013: ldfld BuildingInfoGen BuildingInfoBase::m_generatedInfo
IL_0018: ldfld UnityEngine.Vector3 BuildingInfoGen::m_max
IL_001D: ldarg.0
IL_001E: ldfld BuildingInfoGen BuildingInfoBase::m_generatedInfo
IL_0023: ldfld UnityEngine.Vector3 BuildingInfoGen::m_min
IL_0028: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_002D: call System.Void
BuildingInfoBase::RefreshLevelOfDetail(UnityEngine.Vector3 size)
IL_0032: Label0
IL_0032: ldarg.0
IL_0033: ldfld MeshInfo[] BuildingInfoSub::m_subMeshes
IL_0038: brfalse => Label1
IL_003D: ldc.i4.0
IL_003E: stloc.0
IL_003F: br => Label2
IL_0044: Label3
IL_0044: ldarg.0
IL_0045: ldfld MeshInfo[] BuildingInfoSub::m_subMeshes
IL_004A: ldloc.0
IL_004B: ldelem.ref
IL_004C: ldfld BuildingInfoBase MeshInfo::m_subInfo
IL_0051: callvirt virtual System.Void PrefabInfo::RefreshLevelOfDetail()
IL_0056: ldloc.0
IL_0057: ldc.i4.1
IL_0058: add
IL_0059: stloc.0
IL_005A: Label2
IL_005A: ldloc.0
IL_005B: ldarg.0
IL_005C: ldfld MeshInfo[] BuildingInfoSub::m_subMeshes
IL_0061: ldlen
IL_0062: conv.i4
IL_0063: blt => Label3
IL_0068: // end original
IL_0068: Label1
IL_0068: ret
DONE

### Patch: virtual System.Void NetManager::PopulateGroupData(System.Int32 groupX,


System.Int32 groupZ, System.Int32 layer, System.Int32& vertexIndex, System.Int32&
triangleIndex, UnityEngine.Vector3 groupPosition, MeshData data,
UnityEngine.Vector3& min, UnityEngine.Vector3& max, System.Single&
maxRenderDistance, System.Single& maxInstanceDistance, System.Boolean&
requireSurfaceMaps)
### Replacement: static System.Void NetManager::PopulateGroupData_Patch0(NetManager
this, System.Int32 groupX, System.Int32 groupZ, System.Int32 layer, System.Int32&
vertexIndex, System.Int32& triangleIndex, UnityEngine.Vector3 groupPosition,
MeshData data, UnityEngine.Vector3& min, UnityEngine.Vector3& max, System.Single&
maxRenderDistance, System.Single& maxInstanceDistance, System.Boolean&
requireSurfaceMaps)
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.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.Int32
IL_0000: Local var 12: System.UInt16
IL_0000: Local var 13: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldc.i4 270
IL_0006: mul
IL_0007: ldc.i4.s 45
IL_0009: div
IL_000A: stloc.0
IL_000B: ldarg.2
IL_000C: ldc.i4 270
IL_0011: mul
IL_0012: ldc.i4.s 45
IL_0014: div
IL_0015: stloc.1
IL_0016: ldarg.1
IL_0017: ldc.i4.1
IL_0018: add
IL_0019: ldc.i4 270
IL_001E: mul
IL_001F: ldc.i4.s 45
IL_0021: div
IL_0022: ldc.i4.1
IL_0023: sub
IL_0024: stloc.2
IL_0025: ldarg.2
IL_0026: ldc.i4.1
IL_0027: add
IL_0028: ldc.i4 270
IL_002D: mul
IL_002E: ldc.i4.s 45
IL_0030: div
IL_0031: ldc.i4.1
IL_0032: sub
IL_0033: stloc.3
IL_0034: ldloc.1
IL_0035: stloc.s 4 (System.Int32)
IL_0037: br => Label0
IL_003C: Label7
IL_003C: ldloc.0
IL_003D: stloc.s 5 (System.Int32)
IL_003F: br => Label1
IL_0044: Label6
IL_0044: ldloc.s 4 (System.Int32)
IL_0046: ldc.i4 270
IL_004B: mul
IL_004C: ldloc.s 5 (System.Int32)
IL_004E: add
IL_004F: stloc.s 6 (System.Int32)
IL_0051: ldarg.0
IL_0052: ldfld System.UInt16[] NetManager::m_nodeGrid
IL_0057: ldloc.s 6 (System.Int32)
IL_0059: ldelem.u2
IL_005A: stloc.s 7 (System.UInt16)
IL_005C: ldc.i4.0
IL_005D: stloc.s 8 (System.Int32)
IL_005F: br => Label2
IL_0064: Label5
IL_0064: ldarg.0
IL_0065: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_006A: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_006F: ldloc.s 7 (System.UInt16)
IL_0071: ldelema NetNode
IL_0076: ldloc.s 7 (System.UInt16)
IL_0078: ldarg.1
IL_0079: ldarg.2
IL_007A: ldarg.3
IL_007B: ldarg.s 4
IL_007D: ldarg.s 5
IL_007F: ldarg.s 6
IL_0081: ldarg.s 7
IL_0083: ldarg.s 8
IL_0085: ldarg.s 9
IL_0087: ldarg.s 10
IL_0089: ldarg.s 11
IL_008B: ldarg.s 12
IL_008D: call System.Void NetNode::PopulateGroupData(System.UInt16 nodeID,
System.Int32 groupX, System.Int32 groupZ, System.Int32 layer, System.Int32&
vertexIndex, System.Int32& triangleIndex, UnityEngine.Vector3 groupPosition,
MeshData data, UnityEngine.Vector3& min, UnityEngine.Vector3& max, System.Single&
maxRenderDistance, System.Single& maxInstanceDistance, System.Boolean&
requireSurfaceMaps)
IL_0092: ldarg.0
IL_0093: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0098: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_009D: ldloc.s 7 (System.UInt16)
IL_009F: ldelema NetNode
IL_00A4: ldfld System.UInt16 NetNode::m_nextGridNode
IL_00A9: stloc.s 7 (System.UInt16)
IL_00AB: ldloc.s 8 (System.Int32)
IL_00AD: ldc.i4.1
IL_00AE: add
IL_00AF: dup
IL_00B0: stloc.s 8 (System.Int32)
IL_00B2: ldc.i4 32768
IL_00B7: blt => Label3
IL_00BC: ldc.i4.1
IL_00BD: ldstr "Invalid list detected!\n"
IL_00C2: call static System.String System.Environment::get_StackTrace()
IL_00C7: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_00CC: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Error(LogChannel ll, System.String
msg)
IL_00D1: br => Label4
IL_00D6: Label2
IL_00D6: Label3
IL_00D6: ldloc.s 7 (System.UInt16)
IL_00D8: brtrue => Label5
IL_00DD: Label4
IL_00DD: ldloc.s 5 (System.Int32)
IL_00DF: ldc.i4.1
IL_00E0: add
IL_00E1: stloc.s 5 (System.Int32)
IL_00E3: Label1
IL_00E3: ldloc.s 5 (System.Int32)
IL_00E5: ldloc.2
IL_00E6: ble => Label6
IL_00EB: ldloc.s 4 (System.Int32)
IL_00ED: ldc.i4.1
IL_00EE: add
IL_00EF: stloc.s 4 (System.Int32)
IL_00F1: Label0
IL_00F1: ldloc.s 4 (System.Int32)
IL_00F3: ldloc.3
IL_00F4: ble => Label7
IL_00F9: ldloc.1
IL_00FA: stloc.s 9 (System.Int32)
IL_00FC: br => Label8
IL_0101: Label15
IL_0101: ldloc.0
IL_0102: stloc.s 10 (System.Int32)
IL_0104: br => Label9
IL_0109: Label14
IL_0109: ldloc.s 9 (System.Int32)
IL_010B: ldc.i4 270
IL_0110: mul
IL_0111: ldloc.s 10 (System.Int32)
IL_0113: add
IL_0114: stloc.s 11 (System.Int32)
IL_0116: ldarg.0
IL_0117: ldfld System.UInt16[] NetManager::m_segmentGrid
IL_011C: ldloc.s 11 (System.Int32)
IL_011E: ldelem.u2
IL_011F: stloc.s 12 (System.UInt16)
IL_0121: ldc.i4.0
IL_0122: stloc.s 13 (System.Int32)
IL_0124: br => Label10
IL_0129: Label13
IL_0129: ldarg.0
IL_012A: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_012F: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0134: ldloc.s 12 (System.UInt16)
IL_0136: ldelema NetSegment
IL_013B: ldloc.s 12 (System.UInt16)
IL_013D: ldarg.1
IL_013E: ldarg.2
IL_013F: ldarg.3
IL_0140: ldarg.s 4
IL_0142: ldarg.s 5
IL_0144: ldarg.s 6
IL_0146: ldarg.s 7
IL_0148: ldarg.s 8
IL_014A: ldarg.s 9
IL_014C: ldarg.s 10
IL_014E: ldarg.s 11
IL_0150: ldarg.s 12
IL_0152: call System.Void NetSegment::PopulateGroupData(System.UInt16
segmentID, System.Int32 groupX, System.Int32 groupZ, System.Int32 layer,
System.Int32& vertexIndex, System.Int32& triangleIndex, UnityEngine.Vector3
groupPosition, MeshData data, UnityEngine.Vector3& min, UnityEngine.Vector3& max,
System.Single& maxRenderDistance, System.Single& maxInstanceDistance,
System.Boolean& requireSurfaceMaps)
IL_0157: ldarg.0
IL_0158: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_015D: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0162: ldloc.s 12 (System.UInt16)
IL_0164: ldelema NetSegment
IL_0169: ldfld System.UInt16 NetSegment::m_nextGridSegment
IL_016E: stloc.s 12 (System.UInt16)
IL_0170: ldloc.s 13 (System.Int32)
IL_0172: ldc.i4.1
IL_0173: add
IL_0174: dup
IL_0175: stloc.s 13 (System.Int32)
IL_0177: ldc.i4 36864
IL_017C: blt => Label11
IL_0181: ldc.i4.1
IL_0182: ldstr "Invalid list detected!\n"
IL_0187: call static System.String System.Environment::get_StackTrace()
IL_018C: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_0191: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Error(LogChannel ll, System.String
msg)
IL_0196: br => Label12
IL_019B: Label10
IL_019B: Label11
IL_019B: ldloc.s 12 (System.UInt16)
IL_019D: brtrue => Label13
IL_01A2: Label12
IL_01A2: ldloc.s 10 (System.Int32)
IL_01A4: ldc.i4.1
IL_01A5: add
IL_01A6: stloc.s 10 (System.Int32)
IL_01A8: Label9
IL_01A8: ldloc.s 10 (System.Int32)
IL_01AA: ldloc.2
IL_01AB: ble => Label14
IL_01B0: ldloc.s 9 (System.Int32)
IL_01B2: ldc.i4.1
IL_01B3: add
IL_01B4: stloc.s 9 (System.Int32)
IL_01B6: Label8
IL_01B6: ldloc.s 9 (System.Int32)
IL_01B8: ldloc.3
IL_01B9: ble => Label15
IL_01BE: // end original
IL_01BE: ret
DONE

### Patch: virtual System.Void NetInfo::RefreshLevelOfDetail()


### Replacement: static System.Void NetInfo::RefreshLevelOfDetail_Patch0(NetInfo
this)
IL_0000: Local var 0: System.Single
IL_0000: Local var 1: System.Single
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: NetLaneProps
IL_0000: Local var 6: System.Int32
IL_0000: // start original
IL_0000: call static System.Single RenderManager::get_LevelOfDetailFactor()
IL_0005: stloc.0
IL_0006: ldc.r4 100
IL_000B: ldloc.0
IL_000C: ldarg.0
IL_000D: ldfld System.Single NetInfo::m_halfWidth
IL_0012: ldc.r4 50
IL_0017: mul
IL_0018: ldarg.0
IL_0019: ldfld System.Single NetInfo::m_maxHeight
IL_001E: ldarg.0
IL_001F: ldfld System.Single NetInfo::m_minHeight
IL_0024: sub
IL_0025: ldc.r4 80
IL_002A: mul
IL_002B: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0030: mul
IL_0031: add
IL_0032: ldc.r4 100
IL_0037: ldc.r4 1000
IL_003C: call static System.Single UnityEngine.Mathf::Clamp(System.Single
value, System.Single min, System.Single max)
IL_0041: stloc.1
IL_0042: ldarg.0
IL_0043: ldfld Segment[] NetInfo::m_segments
IL_0048: brfalse => Label0
IL_004D: ldc.i4.0
IL_004E: stloc.2
IL_004F: br => Label1
IL_0054: Label4
IL_0054: ldarg.0
IL_0055: ldfld Segment[] NetInfo::m_segments
IL_005A: ldloc.2
IL_005B: ldelem.ref
IL_005C: ldfld UnityEngine.Mesh Segment::m_lodMesh
IL_0061: ldnull
IL_0062: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0067: brfalse => Label2
IL_006C: ldarg.0
IL_006D: ldfld Segment[] NetInfo::m_segments
IL_0072: ldloc.2
IL_0073: ldelem.ref
IL_0074: ldloc.1
IL_0075: stfld System.Single Segment::m_lodRenderDistance
IL_007A: br => Label3
IL_007F: Label2
IL_007F: ldarg.0
IL_0080: ldfld Segment[] NetInfo::m_segments
IL_0085: ldloc.2
IL_0086: ldelem.ref
IL_0087: ldc.r4 100000
IL_008C: stfld System.Single Segment::m_lodRenderDistance
IL_0091: Label3
IL_0091: ldloc.2
IL_0092: ldc.i4.1
IL_0093: add
IL_0094: stloc.2
IL_0095: Label1
IL_0095: ldloc.2
IL_0096: ldarg.0
IL_0097: ldfld Segment[] NetInfo::m_segments
IL_009C: ldlen
IL_009D: conv.i4
IL_009E: blt => Label4
IL_00A3: Label0
IL_00A3: ldarg.0
IL_00A4: ldfld Node[] NetInfo::m_nodes
IL_00A9: brfalse => Label5
IL_00AE: ldc.i4.0
IL_00AF: stloc.3
IL_00B0: br => Label6
IL_00B5: Label9
IL_00B5: ldarg.0
IL_00B6: ldfld Node[] NetInfo::m_nodes
IL_00BB: ldloc.3
IL_00BC: ldelem.ref
IL_00BD: ldfld UnityEngine.Mesh Node::m_lodMesh
IL_00C2: ldnull
IL_00C3: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_00C8: brfalse => Label7
IL_00CD: ldarg.0
IL_00CE: ldfld Node[] NetInfo::m_nodes
IL_00D3: ldloc.3
IL_00D4: ldelem.ref
IL_00D5: ldloc.1
IL_00D6: stfld System.Single Node::m_lodRenderDistance
IL_00DB: br => Label8
IL_00E0: Label7
IL_00E0: ldarg.0
IL_00E1: ldfld Node[] NetInfo::m_nodes
IL_00E6: ldloc.3
IL_00E7: ldelem.ref
IL_00E8: ldc.r4 100000
IL_00ED: stfld System.Single Node::m_lodRenderDistance
IL_00F2: Label8
IL_00F2: ldloc.3
IL_00F3: ldc.i4.1
IL_00F4: add
IL_00F5: stloc.3
IL_00F6: Label6
IL_00F6: ldloc.3
IL_00F7: ldarg.0
IL_00F8: ldfld Node[] NetInfo::m_nodes
IL_00FD: ldlen
IL_00FE: conv.i4
IL_00FF: blt => Label9
IL_0104: Label5
IL_0104: ldarg.0
IL_0105: ldc.r4 0
IL_010A: stfld System.Single NetInfo::m_maxPropDistance
IL_010F: ldarg.0
IL_0110: ldfld Lane[] NetInfo::m_lanes
IL_0115: brfalse => Label10
IL_011A: ldc.i4.0
IL_011B: stloc.s 4 (System.Int32)
IL_011D: br => Label11
IL_0122: Label17
IL_0122: ldarg.0
IL_0123: ldfld Lane[] NetInfo::m_lanes
IL_0128: ldloc.s 4 (System.Int32)
IL_012A: ldelem.ref
IL_012B: ldfld NetLaneProps Lane::m_laneProps
IL_0130: stloc.s 5 (NetLaneProps)
IL_0132: ldloc.s 5 (NetLaneProps)
IL_0134: ldnull
IL_0135: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_013A: brfalse => Label12
IL_013F: ldloc.s 5 (NetLaneProps)
IL_0141: ldfld Prop[] NetLaneProps::m_props
IL_0146: brfalse => Label13
IL_014B: ldc.i4.0
IL_014C: stloc.s 6 (System.Int32)
IL_014E: br => Label14
IL_0153: Label16
IL_0153: ldloc.s 5 (NetLaneProps)
IL_0155: ldfld Prop[] NetLaneProps::m_props
IL_015A: ldloc.s 6 (System.Int32)
IL_015C: ldelem.ref
IL_015D: ldfld PropInfo Prop::m_finalProp
IL_0162: ldnull
IL_0163: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0168: brfalse => Label15
IL_016D: ldarg.0
IL_016E: ldarg.0
IL_016F: ldfld System.Single NetInfo::m_maxPropDistance
IL_0174: ldloc.s 5 (NetLaneProps)
IL_0176: ldfld Prop[] NetLaneProps::m_props
IL_017B: ldloc.s 6 (System.Int32)
IL_017D: ldelem.ref
IL_017E: ldfld PropInfo Prop::m_finalProp
IL_0183: ldfld System.Single PropInfo::m_maxRenderDistance
IL_0188: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_018D: stfld System.Single NetInfo::m_maxPropDistance
IL_0192: Label15
IL_0192: ldloc.s 6 (System.Int32)
IL_0194: ldc.i4.1
IL_0195: add
IL_0196: stloc.s 6 (System.Int32)
IL_0198: Label14
IL_0198: ldloc.s 6 (System.Int32)
IL_019A: ldloc.s 5 (NetLaneProps)
IL_019C: ldfld Prop[] NetLaneProps::m_props
IL_01A1: ldlen
IL_01A2: conv.i4
IL_01A3: blt => Label16
IL_01A8: Label12
IL_01A8: Label13
IL_01A8: ldloc.s 4 (System.Int32)
IL_01AA: ldc.i4.1
IL_01AB: add
IL_01AC: stloc.s 4 (System.Int32)
IL_01AE: Label11
IL_01AE: ldloc.s 4 (System.Int32)
IL_01B0: ldarg.0
IL_01B1: ldfld Lane[] NetInfo::m_lanes
IL_01B6: ldlen
IL_01B7: conv.i4
IL_01B8: blt => Label17
IL_01BD: // end original
IL_01BD: Label10
IL_01BD: ret
DONE

### Patch: virtual System.Void VehicleInfo::RefreshLevelOfDetail()


### Replacement: static System.Void
VehicleInfo::RefreshLevelOfDetail_Patch0(VehicleInfo this)
IL_0000: Local var 0: System.Int32
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldfld UnityEngine.Mesh VehicleInfoBase::m_mesh
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: ldarg.0
IL_0013: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo
IL_0018: ldfld UnityEngine.Vector3 VehicleInfoGen::m_size
IL_001D: call System.Void
VehicleInfoBase::RefreshLevelOfDetail(UnityEngine.Vector3 size)
IL_0022: Label0
IL_0022: ldarg.0
IL_0023: ldfld System.Boolean VehicleInfo::m_isLargeVehicle
IL_0028: brtrue => Label1
IL_002D: ldarg.0
IL_002E: ldarg.0
IL_002F: ldfld System.Single VehicleInfoBase::m_maxRenderDistance
IL_0034: ldc.r4 2000
IL_0039: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_003E: stfld System.Single VehicleInfoBase::m_maxRenderDistance
IL_0043: Label1
IL_0043: ldarg.0
IL_0044: ldfld UnityEngine.Mesh VehicleInfoBase::m_lodMesh
IL_0049: ldnull
IL_004A: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_004F: brfalse => Label2
IL_0054: ldarg.0
IL_0055: ldarg.0
IL_0056: ldfld System.Single VehicleInfoBase::m_maxRenderDistance
IL_005B: ldc.r4 0.2
IL_0060: mul
IL_0061: ldc.r4 1000
IL_0066: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_006B: stfld System.Single VehicleInfoBase::m_lodRenderDistance
IL_0070: br => Label3
IL_0075: Label2
IL_0075: ldarg.0
IL_0076: ldarg.0
IL_0077: ldfld System.Single VehicleInfoBase::m_maxRenderDistance
IL_007C: stfld System.Single VehicleInfoBase::m_lodRenderDistance
IL_0081: Label3
IL_0081: ldarg.0
IL_0082: ldfld MeshInfo[] VehicleInfo::m_subMeshes
IL_0087: brfalse => Label4
IL_008C: ldc.i4.0
IL_008D: stloc.0
IL_008E: br => Label5
IL_0093: Label7
IL_0093: ldarg.0
IL_0094: ldfld MeshInfo[] VehicleInfo::m_subMeshes
IL_0099: ldloc.0
IL_009A: ldelem.ref
IL_009B: ldfld VehicleInfoBase MeshInfo::m_subInfo
IL_00A0: ldnull
IL_00A1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_00A6: brfalse => Label6
IL_00AB: ldarg.0
IL_00AC: ldfld MeshInfo[] VehicleInfo::m_subMeshes
IL_00B1: ldloc.0
IL_00B2: ldelem.ref
IL_00B3: ldfld VehicleInfoBase MeshInfo::m_subInfo
IL_00B8: callvirt virtual System.Void PrefabInfo::RefreshLevelOfDetail()
IL_00BD: Label6
IL_00BD: ldloc.0
IL_00BE: ldc.i4.1
IL_00BF: add
IL_00C0: stloc.0
IL_00C1: Label5
IL_00C1: ldloc.0
IL_00C2: ldarg.0
IL_00C3: ldfld MeshInfo[] VehicleInfo::m_subMeshes
IL_00C8: ldlen
IL_00C9: conv.i4
IL_00CA: blt => Label7
IL_00CF: // end original
IL_00CF: Label4
IL_00CF: ret
DONE

### Patch: virtual System.Void VehicleInfoSub::RefreshLevelOfDetail()


### Replacement: static System.Void
VehicleInfoSub::RefreshLevelOfDetail_Patch0(VehicleInfoSub this)
IL_0000: Local var 0: UnityEngine.Bounds
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldfld UnityEngine.Mesh VehicleInfoBase::m_mesh
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: ldarg.0
IL_0013: ldfld UnityEngine.Mesh VehicleInfoBase::m_mesh
IL_0018: callvirt UnityEngine.Bounds UnityEngine.Mesh::get_bounds()
IL_001D: stloc.0
IL_001E: ldloca.s 0 (UnityEngine.Bounds)
IL_0020: call UnityEngine.Vector3 UnityEngine.Bounds::get_size()
IL_0025: call System.Void
VehicleInfoBase::RefreshLevelOfDetail(UnityEngine.Vector3 size)
IL_002A: // end original
IL_002A: Label0
IL_002A: ret
DONE

### Harmony id=cgameworld.instantreturntodesktop, version=2.0.0.9, location=E:\


Games\data-0000000015990080
### Started from static HarmonyLib.Harmony
CitiesHarmony.Harmony1201SelfPatcher::CreateHarmony(System.Object
oldHarmonyInstance), location E:\Games\data-000000001475B980
### At 2022-11-05 01.21.44
### Patch: UnityEngine.Coroutine LoadingManager::QuitApplication()
### Replacement: static UnityEngine.Coroutine
LoadingManager::QuitApplication_Patch1(LoadingManager this)
IL_0000: Local var 0: UnityEngine.Coroutine
IL_0000: Local var 1: System.Boolean
IL_0000: ldnull
IL_0001: stloc 0 (UnityEngine.Coroutine)
IL_0005: ldc.i4 0
IL_000A: stloc 1 (System.Boolean)
IL_000E: ldc.i4.1
IL_000F: stloc 1 (System.Boolean)
IL_0013: ldloc 1 (System.Boolean)
IL_0017: brfalse.s => Label1
IL_0019: call static System.Boolean InstantReturnToDesktop.Patch::Prefix()
IL_001E: stloc 1 (System.Boolean)
IL_0022: nop
IL_0023: ldloc 1 (System.Boolean)
IL_0027: brfalse => Label0
IL_002C: // start original
IL_002C: ldarg.0
IL_002D: volatile.
IL_002F: ldfld System.Boolean LoadingManager::m_applicationQuitting
IL_0034: brtrue => Label2
IL_0039: ldarg.0
IL_003A: ldfld LoadingWrapper LoadingManager::m_LoadingWrapper
IL_003F: brfalse => Label3
IL_0044: ldarg.0
IL_0045: ldfld LoadingWrapper LoadingManager::m_LoadingWrapper
IL_004A: callvirt System.Void LoadingWrapper::OnLevelUnloading()
IL_004F: Label3
IL_004F: ldarg.0
IL_0050: ldfld LoadingAnimation LoadingManager::m_loadingAnimation
IL_0055: ldc.i4.1
IL_0056: callvirt System.Void UnityEngine.Behaviour::set_enabled(System.Boolean
value)
IL_005B: ldarg.0
IL_005C: ldc.i4.1
IL_005D: volatile.
IL_005F: stfld System.Boolean LoadingManager::m_applicationQuitting
IL_0064: ldarg.0
IL_0065: ldarg.0
IL_0066: call System.Collections.IEnumerator
LoadingManager::QuitApplicationCoroutine()
IL_006B: call UnityEngine.Coroutine
UnityEngine.MonoBehaviour::StartCoroutine(System.Collections.IEnumerator routine)
IL_0070: br => Label4
IL_0075: Label2
IL_0075: ldnull
IL_0076: // end original
IL_0076: Label4
IL_0076: stloc 0 (UnityEngine.Coroutine)
IL_007A: Label0
IL_007A: ldloc 0 (UnityEngine.Coroutine)
IL_007E: ret
DONE

### Harmony id=boformer.TrueLodToggler, version=2.0.0.9, location=E:\Games\data-


0000000015990080
### Started from static HarmonyLib.Harmony
CitiesHarmony.Harmony1201SelfPatcher::CreateHarmony(System.Object
oldHarmonyInstance), location E:\Games\data-000000001475B980
### At 2022-11-05 01.22.26
### Patch: virtual System.Void TreeManager::PopulateGroupData(System.Int32 groupX,
System.Int32 groupZ, System.Int32 layer, System.Int32& vertexIndex, System.Int32&
triangleIndex, UnityEngine.Vector3 groupPosition, MeshData data,
UnityEngine.Vector3& min, UnityEngine.Vector3& max, System.Single&
maxRenderDistance, System.Single& maxInstanceDistance, System.Boolean&
requireSurfaceMaps)
### Replacement: static System.Void
TreeManager::PopulateGroupData_Patch1(TreeManager this, System.Int32 groupX,
System.Int32 groupZ, System.Int32 layer, System.Int32& vertexIndex, System.Int32&
triangleIndex, UnityEngine.Vector3 groupPosition, MeshData data,
UnityEngine.Vector3& min, UnityEngine.Vector3& max, System.Single&
maxRenderDistance, System.Single& maxInstanceDistance, System.Boolean&
requireSurfaceMaps)
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.UInt32
IL_0000: Local var 8: System.Int32
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: ldarg.0
IL_0002: ldfld System.Int32 TreeManager::m_treeLayer
IL_0007: beq => Label0
IL_000C: br => Label9
IL_0011: Label0
IL_0011: ldarg.1
IL_0012: ldc.i4 540
IL_0017: mul
IL_0018: ldc.i4.s 45
IL_001A: div
IL_001B: stloc.0
IL_001C: ldarg.2
IL_001D: ldc.i4 540
IL_0022: mul
IL_0023: ldc.i4.s 45
IL_0025: div
IL_0026: stloc.1
IL_0027: ldarg.1
IL_0028: ldc.i4.1
IL_0029: add
IL_002A: ldc.i4 540
IL_002F: mul
IL_0030: ldc.i4.s 45
IL_0032: div
IL_0033: ldc.i4.1
IL_0034: sub
IL_0035: stloc.2
IL_0036: ldarg.2
IL_0037: ldc.i4.1
IL_0038: add
IL_0039: ldc.i4 540
IL_003E: mul
IL_003F: ldc.i4.s 45
IL_0041: div
IL_0042: ldc.i4.1
IL_0043: sub
IL_0044: stloc.3
IL_0045: ldloc.1
IL_0046: stloc.s 4 (System.Int32)
IL_0048: br => Label1
IL_004D: Label8
IL_004D: ldloc.0
IL_004E: stloc.s 5 (System.Int32)
IL_0050: br => Label2
IL_0055: Label7
IL_0055: ldloc.s 4 (System.Int32)
IL_0057: ldc.i4 540
IL_005C: mul
IL_005D: ldloc.s 5 (System.Int32)
IL_005F: add
IL_0060: stloc.s 6 (System.Int32)
IL_0062: ldarg.0
IL_0063: ldfld System.UInt32[] TreeManager::m_treeGrid
IL_0068: ldloc.s 6 (System.Int32)
IL_006A: ldelem.u4
IL_006B: stloc.s 7 (System.UInt32)
IL_006D: ldc.i4.0
IL_006E: stloc.s 8 (System.Int32)
IL_0070: br => Label3
IL_0075: Label6
IL_0075: ldarg.0
IL_0076: ldfld Array32`1<TreeInstance> TreeManager::m_trees
IL_007B: ldfld TreeInstance[] Array32`1<TreeInstance>::m_buffer
IL_0080: ldloc.s 7 (System.UInt32)
IL_0082: conv.u
IL_0083: ldelema TreeInstance
IL_0088: ldloc.s 7 (System.UInt32)
IL_008A: ldarg.3
IL_008B: ldarg.s 4
IL_008D: ldarg.s 5
IL_008F: ldarg.s 6
IL_0091: ldarg.s 7
IL_0093: ldarg.s 8
IL_0095: ldarg.s 9
IL_0097: ldarg.s 10
IL_0099: ldarg.s 11
IL_009B: call System.Void TreeInstance::PopulateGroupData(System.UInt32
treeID, System.Int32 layer, System.Int32& vertexIndex, System.Int32& triangleIndex,
UnityEngine.Vector3 groupPosition, MeshData data, UnityEngine.Vector3& min,
UnityEngine.Vector3& max, System.Single& maxRenderDistance, System.Single&
maxInstanceDistance)
IL_00A0: ldarg.0
IL_00A1: ldfld Array32`1<TreeInstance> TreeManager::m_trees
IL_00A6: ldfld TreeInstance[] Array32`1<TreeInstance>::m_buffer
IL_00AB: ldloc.s 7 (System.UInt32)
IL_00AD: conv.u
IL_00AE: ldelema TreeInstance
IL_00B3: ldfld System.UInt32 TreeInstance::m_nextGridTree
IL_00B8: stloc.s 7 (System.UInt32)
IL_00BA: ldloc.s 8 (System.Int32)
IL_00BC: ldc.i4.1
IL_00BD: add
IL_00BE: dup
IL_00BF: stloc.s 8 (System.Int32)
IL_00C1: ldc.i4 262144
IL_00C6: blt => Label4
IL_00CB: ldc.i4.1
IL_00CC: ldstr "Invalid list detected!\n"
IL_00D1: call static System.String System.Environment::get_StackTrace()
IL_00D6: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_00DB: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Error(LogChannel ll, System.String
msg)
IL_00E0: br => Label5
IL_00E5: Label3
IL_00E5: Label4
IL_00E5: ldloc.s 7 (System.UInt32)
IL_00E7: brtrue => Label6
IL_00EC: Label5
IL_00EC: ldloc.s 5 (System.Int32)
IL_00EE: ldc.i4.1
IL_00EF: add
IL_00F0: stloc.s 5 (System.Int32)
IL_00F2: Label2
IL_00F2: ldloc.s 5 (System.Int32)
IL_00F4: ldloc.2
IL_00F5: ble => Label7
IL_00FA: ldloc.s 4 (System.Int32)
IL_00FC: ldc.i4.1
IL_00FD: add
IL_00FE: stloc.s 4 (System.Int32)
IL_0100: Label1
IL_0100: ldloc.s 4 (System.Int32)
IL_0102: ldloc.3
IL_0103: ble => Label8
IL_0108: // end original
IL_0108: Label9
IL_0108: ldarg 3
IL_010C: ldarg 11
IL_0110: call static System.Void
TrueLodToggler.TreeManagerPopulateGroupDataPatch::Postfix(System.Int32 layer,
System.Single& maxInstanceDistance)
IL_0115: ret
DONE

### Harmony id=boformer.TrueLodToggler, version=2.0.0.9, location=E:\Games\data-


0000000015990080
### Started from static HarmonyLib.Harmony
CitiesHarmony.Harmony1201SelfPatcher::CreateHarmony(System.Object
oldHarmonyInstance), location E:\Games\data-000000001475B980
### At 2022-11-05 01.22.26
### Harmony id=boformer.TrueLodToggler, version=2.0.0.9, location=E:\Games\data-
0000000015990080
### Started from static HarmonyLib.Harmony
CitiesHarmony.Harmony1201SelfPatcher::CreateHarmony(System.Object
oldHarmonyInstance), location E:\Games\data-000000001475B980
### At 2022-11-05 01.22.26
### Patch: virtual System.Void TreeInfo::RefreshLevelOfDetail()
### Replacement: static System.Void TreeInfo::RefreshLevelOfDetail_Patch1(TreeInfo
this)
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: call static System.Single RenderManager::get_LevelOfDetailFactor()
IL_0006: ldc.r4 300
IL_000B: mul
IL_000C: stfld System.Single TreeInfo::m_lodRenderDistance
IL_0011: // end original
IL_0011: ldarg.0
IL_0012: call static System.Void
TrueLodToggler.TreeInfoRefreshLevelOfDetailPatch::Postfix(TreeInfo __instance)
IL_0017: ret
DONE

### Harmony id=boformer.TrueLodToggler, version=2.0.0.9, location=E:\Games\data-


0000000015990080
### Started from static HarmonyLib.Harmony
CitiesHarmony.Harmony1201SelfPatcher::CreateHarmony(System.Object
oldHarmonyInstance), location E:\Games\data-000000001475B980
### At 2022-11-05 01.22.26
### Harmony id=boformer.TrueLodToggler, version=2.0.0.9, location=E:\Games\data-
0000000015990080
### Started from static HarmonyLib.Harmony
CitiesHarmony.Harmony1201SelfPatcher::CreateHarmony(System.Object
oldHarmonyInstance), location E:\Games\data-000000001475B980
### At 2022-11-05 01.22.26
### Patch: virtual System.Void PropInfo::RefreshLevelOfDetail()
### Replacement: static System.Void PropInfo::RefreshLevelOfDetail_Patch1(PropInfo
this)
IL_0000: Local var 0: System.Single
IL_0000: Local var 1: System.Int32
IL_0000: // start original
IL_0000: call static System.Single RenderManager::get_LevelOfDetailFactor()
IL_0005: ldc.r4 100
IL_000A: mul
IL_000B: stloc.0
IL_000C: ldarg.0
IL_000D: ldfld PropInfoGen PropInfo::m_generatedInfo
IL_0012: ldfld System.Single PropInfoGen::m_triangleArea
IL_0017: ldc.r4 0
IL_001C: bne.un => Label0
IL_0021: ldarg.0
IL_0022: ldc.r4 1000
IL_0027: stfld System.Single PropInfo::m_maxRenderDistance
IL_002C: br => Label1
IL_0031: Label0
IL_0031: ldarg.0
IL_0032: ldarg.0
IL_0033: ldfld PropInfoGen PropInfo::m_generatedInfo
IL_0038: ldfld System.Single PropInfoGen::m_triangleArea
IL_003D: call static System.Single UnityEngine.Mathf::Sqrt(System.Single f)
IL_0042: ldloc.0
IL_0043: mul
IL_0044: ldc.r4 100
IL_0049: add
IL_004A: stfld System.Single PropInfo::m_maxRenderDistance
IL_004F: ldarg.0
IL_0050: ldc.r4 1000
IL_0055: ldarg.0
IL_0056: ldfld System.Single PropInfo::m_maxRenderDistance
IL_005B: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_0060: stfld System.Single PropInfo::m_maxRenderDistance
IL_0065: Label1
IL_0065: ldarg.0
IL_0066: ldfld System.Boolean PropInfo::m_isDecal
IL_006B: brtrue => Label2
IL_0070: ldarg.0
IL_0071: ldfld System.Boolean PropInfo::m_isMarker
IL_0076: brfalse => Label3
IL_007B: Label2
IL_007B: ldarg.0
IL_007C: ldc.r4 0
IL_0081: stfld System.Single PropInfo::m_lodRenderDistance
IL_0086: br => Label4
IL_008B: Label3
IL_008B: ldarg.0
IL_008C: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0091: ldnull
IL_0092: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0097: brfalse => Label5
IL_009C: ldarg.0
IL_009D: ldarg.0
IL_009E: ldfld System.Single PropInfo::m_maxRenderDistance
IL_00A3: ldc.r4 0.25
IL_00A8: mul
IL_00A9: stfld System.Single PropInfo::m_lodRenderDistance
IL_00AE: br => Label6
IL_00B3: Label5
IL_00B3: ldarg.0
IL_00B4: ldarg.0
IL_00B5: ldfld System.Single PropInfo::m_maxRenderDistance
IL_00BA: stfld System.Single PropInfo::m_lodRenderDistance
IL_00BF: Label4
IL_00BF: Label6
IL_00BF: ldarg.0
IL_00C0: ldfld Effect[] PropInfo::m_effects
IL_00C5: brfalse => Label7
IL_00CA: ldc.i4.0
IL_00CB: stloc.1
IL_00CC: br => Label8
IL_00D1: Label10
IL_00D1: ldarg.0
IL_00D2: ldfld Effect[] PropInfo::m_effects
IL_00D7: ldloc.1
IL_00D8: ldelema PropInfo+Effect
IL_00DD: ldfld EffectInfo Effect::m_effect
IL_00E2: ldnull
IL_00E3: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_00E8: brfalse => Label9
IL_00ED: ldarg.0
IL_00EE: ldarg.0
IL_00EF: ldfld System.Single PropInfo::m_maxRenderDistance
IL_00F4: ldarg.0
IL_00F5: ldfld Effect[] PropInfo::m_effects
IL_00FA: ldloc.1
IL_00FB: ldelema PropInfo+Effect
IL_0100: ldfld EffectInfo Effect::m_effect
IL_0105: callvirt virtual System.Single EffectInfo::RenderDistance()
IL_010A: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_010F: stfld System.Single PropInfo::m_maxRenderDistance
IL_0114: Label9
IL_0114: ldloc.1
IL_0115: ldc.i4.1
IL_0116: add
IL_0117: stloc.1
IL_0118: Label8
IL_0118: ldloc.1
IL_0119: ldarg.0
IL_011A: ldfld Effect[] PropInfo::m_effects
IL_011F: ldlen
IL_0120: conv.i4
IL_0121: blt => Label10
IL_0126: ldarg.0
IL_0127: ldc.r4 1000
IL_012C: ldarg.0
IL_012D: ldfld System.Single PropInfo::m_maxRenderDistance
IL_0132: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_0137: stfld System.Single PropInfo::m_maxRenderDistance
IL_013C: // end original
IL_013C: Label7
IL_013C: ldarg.0
IL_013D: call static System.Void
TrueLodToggler.PropInfoRefreshLevelOfDetailPatch::Postfix(PropInfo __instance)
IL_0142: ret
DONE

### Harmony id=boformer.TrueLodToggler, version=2.0.0.9, location=E:\Games\data-


0000000015990080
### Started from static HarmonyLib.Harmony
CitiesHarmony.Harmony1201SelfPatcher::CreateHarmony(System.Object
oldHarmonyInstance), location E:\Games\data-000000001475B980
### At 2022-11-05 01.22.26
### Harmony id=boformer.TrueLodToggler, version=2.0.0.9, location=E:\Games\data-
0000000015990080
### Started from static HarmonyLib.Harmony
CitiesHarmony.Harmony1201SelfPatcher::CreateHarmony(System.Object
oldHarmonyInstance), location E:\Games\data-000000001475B980
### At 2022-11-05 01.22.26
### Patch: virtual System.Void BuildingAI::PopulateGroupData(System.UInt16
buildingID, Building& buildingData, System.Single& height, System.Int32 groupX,
System.Int32 groupZ, System.Int32 layer, System.Int32& vertexIndex, System.Int32&
triangleIndex, UnityEngine.Vector3 groupPosition, MeshData data,
UnityEngine.Vector3& min, UnityEngine.Vector3& max, System.Single&
maxRenderDistance, System.Single& maxInstanceDistance)
### Replacement: static System.Void BuildingAI::PopulateGroupData_Patch1(BuildingAI
this, System.UInt16 buildingID, Building& buildingData, System.Single& height,
System.Int32 groupX, System.Int32 groupZ, System.Int32 layer, System.Int32&
vertexIndex, System.Int32& triangleIndex, UnityEngine.Vector3 groupPosition,
MeshData data, UnityEngine.Vector3& min, UnityEngine.Vector3& max, System.Single&
maxRenderDistance, System.Single& maxInstanceDistance)
IL_0000: Local var 0: System.Int32
IL_0000: Local var 1: System.Int32
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: 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: UnityEngine.Vector3
IL_0000: Local var 13: UnityEngine.Quaternion
IL_0000: Local var 14: UnityEngine.Matrix4x4
IL_0000: Local var 15: System.UInt16
IL_0000: Local var 16: UnityEngine.Vector4
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: RenderGroup/VertexArrays
IL_0000: Local var 23: UnityEngine.Vector3[]
IL_0000: Local var 24: UnityEngine.Vector3[]
IL_0000: Local var 25: UnityEngine.Vector4[]
IL_0000: Local var 26: UnityEngine.Vector2[]
IL_0000: Local var 27: UnityEngine.Vector2[]
IL_0000: Local var 28: UnityEngine.Vector2[]
IL_0000: Local var 29: UnityEngine.Color32[]
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: System.Int32
IL_0000: Local var 32: UnityEngine.Color32
IL_0000: Local var 33: UnityEngine.Vector3
IL_0000: Local var 34: UnityEngine.Vector3
IL_0000: Local var 35: UnityEngine.Vector4
IL_0000: Local var 36: UnityEngine.Vector3
IL_0000: Local var 37: UnityEngine.Color32
IL_0000: Local var 38: UnityEngine.Vector2
IL_0000: Local var 39: System.Int32
IL_0000: Local var 40: System.Int32
IL_0000: Local var 41: UnityEngine.Color32
IL_0000: Local var 42: UnityEngine.Vector3
IL_0000: Local var 43: UnityEngine.Vector3
IL_0000: Local var 44: UnityEngine.Vector4
IL_0000: Local var 45: UnityEngine.Vector3
IL_0000: Local var 46: UnityEngine.Vector2
IL_0000: Local var 47: UnityEngine.Color32
IL_0000: Local var 48: UnityEngine.Vector2
IL_0000: Local var 49: System.Int32
IL_0000: Local var 50: BuildingInfo/MeshInfo
IL_0000: Local var 51: BuildingInfoSub
IL_0000: Local var 52: System.Int32
IL_0000: Local var 53: System.Int32
IL_0000: Local var 54: BuildingInfoSub
IL_0000: Local var 55: BuildingInfo/MeshInfo
IL_0000: Local var 56: UnityEngine.Vector3
IL_0000: Local var 57: UnityEngine.Quaternion
IL_0000: Local var 58: UnityEngine.Matrix4x4
IL_0000: Local var 59: System.UInt16
IL_0000: Local var 60: UnityEngine.Vector4
IL_0000: Local var 61: UnityEngine.Vector2
IL_0000: Local var 62: System.Int32[]
IL_0000: Local var 63: System.Int32
IL_0000: Local var 64: System.Int32
IL_0000: Local var 65: RenderGroup/VertexArrays
IL_0000: Local var 66: UnityEngine.Vector3[]
IL_0000: Local var 67: UnityEngine.Vector3[]
IL_0000: Local var 68: UnityEngine.Vector4[]
IL_0000: Local var 69: UnityEngine.Vector2[]
IL_0000: Local var 70: UnityEngine.Vector2[]
IL_0000: Local var 71: UnityEngine.Vector2[]
IL_0000: Local var 72: UnityEngine.Color32[]
IL_0000: Local var 73: System.Int32
IL_0000: Local var 74: System.Int32
IL_0000: Local var 75: UnityEngine.Color32
IL_0000: Local var 76: UnityEngine.Vector3
IL_0000: Local var 77: UnityEngine.Vector3
IL_0000: Local var 78: UnityEngine.Vector4
IL_0000: Local var 79: UnityEngine.Vector3
IL_0000: Local var 80: UnityEngine.Color32
IL_0000: Local var 81: UnityEngine.Vector2
IL_0000: Local var 82: System.Int32
IL_0000: Local var 83: System.Int32
IL_0000: Local var 84: UnityEngine.Color32
IL_0000: Local var 85: UnityEngine.Vector3
IL_0000: Local var 86: UnityEngine.Vector3
IL_0000: Local var 87: UnityEngine.Vector4
IL_0000: Local var 88: UnityEngine.Vector3
IL_0000: Local var 89: UnityEngine.Vector2
IL_0000: Local var 90: UnityEngine.Color32
IL_0000: Local var 91: UnityEngine.Vector2
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: ldarg.2
IL_0003: ldc.i4.1
IL_0004: ldc.i4.1
IL_0005: ldarg.s 4
IL_0007: ldarg.s 5
IL_0009: ldarg.s 6
IL_000B: ldarg.s 7
IL_000D: ldarg.s 8
IL_000F: ldarg.s 9
IL_0011: ldarg.s 10
IL_0013: ldarg.s 11
IL_0015: ldarg.s 12
IL_0017: ldarg.s 13
IL_0019: ldarg.s 14
IL_001B: callvirt virtual System.Void
BuildingAI::PopulatePropGroupData(System.UInt16 buildingID, Building& buildingData,
System.Boolean props, System.Boolean trees, System.Int32 groupX, System.Int32
groupZ, System.Int32 layer, System.Int32& vertexIndex, System.Int32& triangleIndex,
UnityEngine.Vector3 groupPosition, MeshData data, UnityEngine.Vector3& min,
UnityEngine.Vector3& max, System.Single& maxRenderDistance, System.Single&
maxInstanceDistance)
IL_0020: ldarg.0
IL_0021: ldfld BuildingInfo BuildingAI::m_info
IL_0026: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_002B: ldarg.s 6
IL_002D: bne.un => Label0
IL_0032: ldarg.2
IL_0033: call System.Int32 Building::get_Width()
IL_0038: stloc.0
IL_0039: ldarg.2
IL_003A: call System.Int32 Building::get_Length()
IL_003F: stloc.1
IL_0040: ldarg.2
IL_0041: ldfld System.Single Building::m_angle
IL_0046: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_004B: ldc.r4 0
IL_0050: ldarg.2
IL_0051: ldfld System.Single Building::m_angle
IL_0056: call static System.Single UnityEngine.Mathf::Sin(System.Single f)
IL_005B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0060: ldc.r4 8
IL_0065: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_006A: stloc.2
IL_006B: ldloca.s 3 (UnityEngine.Vector3)
IL_006D: ldloca.s 2 (UnityEngine.Vector3)
IL_006F: ldfld System.Single UnityEngine.Vector3::z
IL_0074: ldc.r4 0
IL_0079: ldloca.s 2 (UnityEngine.Vector3)
IL_007B: ldfld System.Single UnityEngine.Vector3::x
IL_0080: neg
IL_0081: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0086: ldarg.2
IL_0087: ldfld UnityEngine.Vector3 Building::m_position
IL_008C: ldloc.0
IL_008D: conv.r4
IL_008E: ldc.r4 0.5
IL_0093: mul
IL_0094: ldloc.2
IL_0095: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_009A: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_009F: ldloc.1
IL_00A0: conv.r4
IL_00A1: ldc.r4 0.5
IL_00A6: mul
IL_00A7: ldloc.3
IL_00A8: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_00AD: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_00B2: stloc.s 4 (UnityEngine.Vector3)
IL_00B4: ldarg.2
IL_00B5: ldfld UnityEngine.Vector3 Building::m_position
IL_00BA: ldloc.0
IL_00BB: conv.r4
IL_00BC: ldc.r4 0.5
IL_00C1: mul
IL_00C2: ldloc.2
IL_00C3: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_00C8: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_00CD: ldloc.1
IL_00CE: conv.r4
IL_00CF: ldc.r4 0.5
IL_00D4: mul
IL_00D5: ldloc.3
IL_00D6: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_00DB: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_00E0: stloc.s 5 (UnityEngine.Vector3)
IL_00E2: ldarg.2
IL_00E3: ldfld UnityEngine.Vector3 Building::m_position
IL_00E8: ldloc.0
IL_00E9: conv.r4
IL_00EA: ldc.r4 0.5
IL_00EF: mul
IL_00F0: ldloc.2
IL_00F1: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_00F6: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_00FB: ldloc.1
IL_00FC: conv.r4
IL_00FD: ldc.r4 0.5
IL_0102: mul
IL_0103: ldloc.3
IL_0104: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_0109: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_010E: stloc.s 6 (UnityEngine.Vector3)
IL_0110: ldarg.2
IL_0111: ldfld UnityEngine.Vector3 Building::m_position
IL_0116: ldloc.0
IL_0117: conv.r4
IL_0118: ldc.r4 0.5
IL_011D: mul
IL_011E: ldloc.2
IL_011F: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_0124: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0129: ldloc.1
IL_012A: conv.r4
IL_012B: ldc.r4 0.5
IL_0130: mul
IL_0131: ldloc.3
IL_0132: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_0137: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_013C: stloc.s 7 (UnityEngine.Vector3)
IL_013E: ldloca.s 4 (UnityEngine.Vector3)
IL_0140: ldfld System.Single UnityEngine.Vector3::x
IL_0145: ldloca.s 5 (UnityEngine.Vector3)
IL_0147: ldfld System.Single UnityEngine.Vector3::x
IL_014C: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_0151: ldloca.s 6 (UnityEngine.Vector3)
IL_0153: ldfld System.Single UnityEngine.Vector3::x
IL_0158: ldloca.s 7 (UnityEngine.Vector3)
IL_015A: ldfld System.Single UnityEngine.Vector3::x
IL_015F: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_0164: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_0169: stloc.s 8 (System.Single)
IL_016B: ldloca.s 4 (UnityEngine.Vector3)
IL_016D: ldfld System.Single UnityEngine.Vector3::z
IL_0172: ldloca.s 5 (UnityEngine.Vector3)
IL_0174: ldfld System.Single UnityEngine.Vector3::z
IL_0179: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_017E: ldloca.s 6 (UnityEngine.Vector3)
IL_0180: ldfld System.Single UnityEngine.Vector3::z
IL_0185: ldloca.s 7 (UnityEngine.Vector3)
IL_0187: ldfld System.Single UnityEngine.Vector3::z
IL_018C: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_0191: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_0196: stloc.s 9 (System.Single)
IL_0198: ldloca.s 4 (UnityEngine.Vector3)
IL_019A: ldfld System.Single UnityEngine.Vector3::x
IL_019F: ldloca.s 5 (UnityEngine.Vector3)
IL_01A1: ldfld System.Single UnityEngine.Vector3::x
IL_01A6: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_01AB: ldloca.s 6 (UnityEngine.Vector3)
IL_01AD: ldfld System.Single UnityEngine.Vector3::x
IL_01B2: ldloca.s 7 (UnityEngine.Vector3)
IL_01B4: ldfld System.Single UnityEngine.Vector3::x
IL_01B9: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_01BE: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_01C3: stloc.s 10 (System.Single)
IL_01C5: ldloca.s 4 (UnityEngine.Vector3)
IL_01C7: ldfld System.Single UnityEngine.Vector3::z
IL_01CC: ldloca.s 5 (UnityEngine.Vector3)
IL_01CE: ldfld System.Single UnityEngine.Vector3::z
IL_01D3: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_01D8: ldloca.s 6 (UnityEngine.Vector3)
IL_01DA: ldfld System.Single UnityEngine.Vector3::z
IL_01DF: ldloca.s 7 (UnityEngine.Vector3)
IL_01E1: ldfld System.Single UnityEngine.Vector3::z
IL_01E6: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_01EB: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_01F0: stloc.s 11 (System.Single)
IL_01F2: ldarg.s 11
IL_01F4: ldarg.s 11
IL_01F6: ldobj UnityEngine.Vector3
IL_01FB: ldloc.s 8 (System.Single)
IL_01FD: ldarg.2
IL_01FE: ldflda UnityEngine.Vector3 Building::m_position
IL_0203: ldfld System.Single UnityEngine.Vector3::y
IL_0208: ldarg.2
IL_0209: ldfld System.Byte Building::m_baseHeight
IL_020E: conv.r4
IL_020F: sub
IL_0210: ldloc.s 9 (System.Single)
IL_0212: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0217: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_021C: stobj UnityEngine.Vector3
IL_0221: ldarg.s 12
IL_0223: ldarg.s 12
IL_0225: ldobj UnityEngine.Vector3
IL_022A: ldloc.s 10 (System.Single)
IL_022C: ldarg.2
IL_022D: ldflda UnityEngine.Vector3 Building::m_position
IL_0232: ldfld System.Single UnityEngine.Vector3::y
IL_0237: ldarg.0
IL_0238: ldfld BuildingInfo BuildingAI::m_info
IL_023D: ldflda UnityEngine.Vector3 BuildingInfo::m_size
IL_0242: ldfld System.Single UnityEngine.Vector3::y
IL_0247: add
IL_0248: ldloc.s 11 (System.Single)
IL_024A: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_024F: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_0254: stobj UnityEngine.Vector3
IL_0259: ldarg.s 13
IL_025B: ldarg.s 13
IL_025D: ldind.r4
IL_025E: ldc.r4 20000
IL_0263: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0268: stind.r4
IL_0269: ldarg.s 14
IL_026B: ldarg.s 14
IL_026D: ldind.r4
IL_026E: ldc.r4 1000
IL_0273: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0278: stind.r4
IL_0279: ldarg.0
IL_027A: ldfld BuildingInfo BuildingAI::m_info
IL_027F: ldfld BuildingAI BuildingInfo::m_buildingAI
IL_0284: ldarg.1
IL_0285: ldarg.2
IL_0286: callvirt virtual System.Boolean
BuildingAI::CanUseGroupMesh(System.UInt16 buildingID, Building& buildingData)
IL_028B: brfalse => Label1
IL_0290: ldarg.0
IL_0291: ldfld BuildingInfo BuildingAI::m_info
IL_0296: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_029B: brfalse => Label2
IL_02A0: ldarg.2
IL_02A1: ldloca.s 12 (UnityEngine.Vector3)
IL_02A3: ldloca.s 13 (UnityEngine.Quaternion)
IL_02A5: call System.Void
Building::CalculateMeshPosition(UnityEngine.Vector3& meshPosition,
UnityEngine.Quaternion& meshRotation)
IL_02AA: ldloc.s 12 (UnityEngine.Vector3)
IL_02AC: ldarg.s 9
IL_02AE: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_02B3: ldloc.s 13 (UnityEngine.Quaternion)
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_one()
IL_02BA: call static UnityEngine.Matrix4x4
UnityEngine.Matrix4x4::TRS(UnityEngine.Vector3 pos, UnityEngine.Quaternion q,
UnityEngine.Vector3 s)
IL_02BF: stloc.s 14 (UnityEngine.Matrix4x4)
IL_02C1: ldarg.2
IL_02C2: ldfld System.UInt16 Building::m_parentBuilding
IL_02C7: brfalse => Label3
IL_02CC: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_02D1: callvirt InfoMode InfoManager::get_CurrentMode()
IL_02D6: brfalse => Label4
IL_02DB: Label3
IL_02DB: ldarg.1
IL_02DC: br => Label5
IL_02E1: Label4
IL_02E1: ldarg.1
IL_02E2: call static System.UInt16 Building::FindParentBuilding(System.UInt16
buildingID)
IL_02E7: Label5
IL_02E7: stloc.s 15 (System.UInt16)
IL_02E9: ldloc.s 15 (System.UInt16)
IL_02EB: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_02F0: stloc.s 16 (UnityEngine.Vector4)
IL_02F2: ldloca.s 17 (UnityEngine.Vector2)
IL_02F4: ldloca.s 16 (UnityEngine.Vector4)
IL_02F6: ldfld System.Single UnityEngine.Vector4::x
IL_02FB: ldloca.s 16 (UnityEngine.Vector4)
IL_02FD: ldfld System.Single UnityEngine.Vector4::y
IL_0302: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_0307: ldarg.0
IL_0308: ldfld BuildingInfo BuildingAI::m_info
IL_030D: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_0312: ldfld System.Int32[] MeshData::m_triangles
IL_0317: stloc.s 18 (System.Int32[])
IL_0319: ldloc.s 18 (System.Int32[])
IL_031B: ldlen
IL_031C: conv.i4
IL_031D: stloc.s 19 (System.Int32)
IL_031F: ldc.i4.0
IL_0320: stloc.s 20 (System.Int32)
IL_0322: br => Label6
IL_0327: Label7
IL_0327: ldarg.s 10
IL_0329: ldfld System.Int32[] MeshData::m_triangles
IL_032E: ldarg.s 8
IL_0330: ldarg.s 8
IL_0332: ldind.i4
IL_0333: dup
IL_0334: stloc.s 21 (System.Int32)
IL_0336: ldc.i4.1
IL_0337: add
IL_0338: stind.i4
IL_0339: ldloc.s 21 (System.Int32)
IL_033B: ldloc.s 18 (System.Int32[])
IL_033D: ldloc.s 20 (System.Int32)
IL_033F: ldelem.i4
IL_0340: ldarg.s 7
IL_0342: ldind.i4
IL_0343: add
IL_0344: stelem.i4
IL_0345: ldloc.s 20 (System.Int32)
IL_0347: ldc.i4.1
IL_0348: add
IL_0349: stloc.s 20 (System.Int32)
IL_034B: Label6
IL_034B: ldloc.s 20 (System.Int32)
IL_034D: ldloc.s 19 (System.Int32)
IL_034F: blt => Label7
IL_0354: ldarg.0
IL_0355: ldfld BuildingInfo BuildingAI::m_info
IL_035A: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_035F: callvirt VertexArrays MeshData::VertexArrayMask()
IL_0364: stloc.s 22 (RenderGroup+VertexArrays)
IL_0366: ldarg.0
IL_0367: ldfld BuildingInfo BuildingAI::m_info
IL_036C: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_0371: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0376: stloc.s 23 (UnityEngine.Vector3[])
IL_0378: ldarg.0
IL_0379: ldfld BuildingInfo BuildingAI::m_info
IL_037E: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_0383: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0388: stloc.s 24 (UnityEngine.Vector3[])
IL_038A: ldarg.0
IL_038B: ldfld BuildingInfo BuildingAI::m_info
IL_0390: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_0395: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_039A: stloc.s 25 (UnityEngine.Vector4[])
IL_039C: ldarg.0
IL_039D: ldfld BuildingInfo BuildingAI::m_info
IL_03A2: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_03A7: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_03AC: stloc.s 26 (UnityEngine.Vector2[])
IL_03AE: ldarg.0
IL_03AF: ldfld BuildingInfo BuildingAI::m_info
IL_03B4: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_03B9: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_03BE: stloc.s 27 (UnityEngine.Vector2[])
IL_03C0: ldarg.0
IL_03C1: ldfld BuildingInfo BuildingAI::m_info
IL_03C6: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_03CB: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_03D0: stloc.s 28 (UnityEngine.Vector2[])
IL_03D2: ldarg.0
IL_03D3: ldfld BuildingInfo BuildingAI::m_info
IL_03D8: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_03DD: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_03E2: stloc.s 29 (UnityEngine.Color32[])
IL_03E4: ldloc.s 23 (UnityEngine.Vector3[])
IL_03E6: ldlen
IL_03E7: conv.i4
IL_03E8: stloc.s 30 (System.Int32)
IL_03EA: ldc.i4.0
IL_03EB: stloc.s 31 (System.Int32)
IL_03ED: br => Label8
IL_03F2: Label19
IL_03F2: ldarg.0
IL_03F3: ldfld BuildingInfo BuildingAI::m_info
IL_03F8: ldfld BuildingAI BuildingInfo::m_buildingAI
IL_03FD: ldarg.1
IL_03FE: ldarg.2
IL_03FF: ldarg.0
IL_0400: ldfld BuildingInfo BuildingAI::m_info
IL_0405: ldloc.s 31 (System.Int32)
IL_0407: ldc.i4.0
IL_0408: callvirt virtual UnityEngine.Color32
BuildingAI::GetGroupVertexColor(System.UInt16 buildingID, Building& buildingData,
BuildingInfoBase info, System.Int32 vertexIndex, System.Boolean baseVertex)
IL_040D: stloc.s 32 (UnityEngine.Color32)
IL_040F: ldloc.s 23 (UnityEngine.Vector3[])
IL_0411: ldloc.s 31 (System.Int32)
IL_0413: ldelema UnityEngine.Vector3
IL_0418: ldobj UnityEngine.Vector3
IL_041D: stloc.s 33 (UnityEngine.Vector3)
IL_041F: ldloca.s 14 (UnityEngine.Matrix4x4)
IL_0421: ldloc.s 33 (UnityEngine.Vector3)
IL_0423: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_0428: stloc.s 34 (UnityEngine.Vector3)
IL_042A: ldarg.0
IL_042B: ldfld BuildingInfo BuildingAI::m_info
IL_0430: ldfld System.Boolean BuildingInfoBase::m_requireHeightMap
IL_0435: brfalse => Label9
IL_043A: ldloca.s 34 (UnityEngine.Vector3)
IL_043C: ldloca.s 33 (UnityEngine.Vector3)
IL_043E: ldfld System.Single UnityEngine.Vector3::y
IL_0443: call static TerrainManager
ColossalFramework.Singleton`1<TerrainManager>::get_instance()
IL_0448: ldloc.s 34 (UnityEngine.Vector3)
IL_044A: ldarg.s 9
IL_044C: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0451: callvirt System.Single
TerrainManager::SampleDetailHeight(UnityEngine.Vector3 worldPos)
IL_0456: add
IL_0457: stfld System.Single UnityEngine.Vector3::y
IL_045C: Label9
IL_045C: ldarg.s 10
IL_045E: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0463: ldarg.s 7
IL_0465: ldind.i4
IL_0466: ldelema UnityEngine.Vector3
IL_046B: ldloc.s 34 (UnityEngine.Vector3)
IL_046D: stobj UnityEngine.Vector3
IL_0472: ldloc.s 22 (RenderGroup+VertexArrays)
IL_0474: ldc.i4.2
IL_0475: and
IL_0476: brfalse => Label10
IL_047B: ldarg.s 10
IL_047D: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0482: ldarg.s 7
IL_0484: ldind.i4
IL_0485: ldelema UnityEngine.Vector3
IL_048A: ldloca.s 14 (UnityEngine.Matrix4x4)
IL_048C: ldloc.s 24 (UnityEngine.Vector3[])
IL_048E: ldloc.s 31 (System.Int32)
IL_0490: ldelema UnityEngine.Vector3
IL_0495: ldobj UnityEngine.Vector3
IL_049A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_049F: stobj UnityEngine.Vector3
IL_04A4: br => Label11
IL_04A9: Label10
IL_04A9: ldarg.s 10
IL_04AB: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_04B0: ldarg.s 7
IL_04B2: ldind.i4
IL_04B3: ldelema UnityEngine.Vector3
IL_04B8: ldc.r4 0
IL_04BD: ldc.r4 1
IL_04C2: ldc.r4 0
IL_04C7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_04CC: stobj UnityEngine.Vector3
IL_04D1: Label11
IL_04D1: ldloc.s 22 (RenderGroup+VertexArrays)
IL_04D3: ldc.i4.4
IL_04D4: and
IL_04D5: brfalse => Label12
IL_04DA: ldloc.s 25 (UnityEngine.Vector4[])
IL_04DC: ldloc.s 31 (System.Int32)
IL_04DE: ldelema UnityEngine.Vector4
IL_04E3: ldobj UnityEngine.Vector4
IL_04E8: stloc.s 35 (UnityEngine.Vector4)
IL_04EA: ldloca.s 14 (UnityEngine.Matrix4x4)
IL_04EC: ldloc.s 35 (UnityEngine.Vector4)
IL_04EE: call static UnityEngine.Vector3
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_04F3: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_04F8: stloc.s 36 (UnityEngine.Vector3)
IL_04FA: ldloca.s 35 (UnityEngine.Vector4)
IL_04FC: ldloca.s 36 (UnityEngine.Vector3)
IL_04FE: ldfld System.Single UnityEngine.Vector3::x
IL_0503: stfld System.Single UnityEngine.Vector4::x
IL_0508: ldloca.s 35 (UnityEngine.Vector4)
IL_050A: ldloca.s 36 (UnityEngine.Vector3)
IL_050C: ldfld System.Single UnityEngine.Vector3::y
IL_0511: stfld System.Single UnityEngine.Vector4::y
IL_0516: ldloca.s 35 (UnityEngine.Vector4)
IL_0518: ldloca.s 36 (UnityEngine.Vector3)
IL_051A: ldfld System.Single UnityEngine.Vector3::z
IL_051F: stfld System.Single UnityEngine.Vector4::z
IL_0524: ldarg.s 10
IL_0526: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_052B: ldarg.s 7
IL_052D: ldind.i4
IL_052E: ldelema UnityEngine.Vector4
IL_0533: ldloc.s 35 (UnityEngine.Vector4)
IL_0535: stobj UnityEngine.Vector4
IL_053A: br => Label13
IL_053F: Label12
IL_053F: ldarg.s 10
IL_0541: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0546: ldarg.s 7
IL_0548: ldind.i4
IL_0549: ldelema UnityEngine.Vector4
IL_054E: ldc.r4 1
IL_0553: ldc.r4 0
IL_0558: ldc.r4 0
IL_055D: ldc.r4 1
IL_0562: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0567: stobj UnityEngine.Vector4
IL_056C: Label13
IL_056C: ldloc.s 22 (RenderGroup+VertexArrays)
IL_056E: ldc.i4.8
IL_056F: and
IL_0570: brfalse => Label14
IL_0575: ldarg.s 10
IL_0577: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_057C: ldarg.s 7
IL_057E: ldind.i4
IL_057F: ldelema UnityEngine.Vector2
IL_0584: ldloc.s 26 (UnityEngine.Vector2[])
IL_0586: ldloc.s 31 (System.Int32)
IL_0588: ldelema UnityEngine.Vector2
IL_058D: ldobj UnityEngine.Vector2
IL_0592: stobj UnityEngine.Vector2
IL_0597: br => Label15
IL_059C: Label14
IL_059C: ldarg.s 10
IL_059E: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_05A3: ldarg.s 7
IL_05A5: ldind.i4
IL_05A6: ldelema UnityEngine.Vector2
IL_05AB: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_05B0: stobj UnityEngine.Vector2
IL_05B5: Label15
IL_05B5: ldarg.s 10
IL_05B7: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_05BC: ldarg.s 7
IL_05BE: ldind.i4
IL_05BF: ldelema UnityEngine.Color32
IL_05C4: ldloc.s 32 (UnityEngine.Color32)
IL_05C6: stobj UnityEngine.Color32
IL_05CB: ldarg.s 10
IL_05CD: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_05D2: ldarg.s 7
IL_05D4: ldind.i4
IL_05D5: ldelema UnityEngine.Vector2
IL_05DA: ldloc.s 17 (UnityEngine.Vector2)
IL_05DC: stobj UnityEngine.Vector2
IL_05E1: ldloc.s 29 (UnityEngine.Color32[])
IL_05E3: ldloc.s 31 (System.Int32)
IL_05E5: ldelema UnityEngine.Color32
IL_05EA: ldobj UnityEngine.Color32
IL_05EF: stloc.s 37 (UnityEngine.Color32)
IL_05F1: ldloc.s 28 (UnityEngine.Vector2[])
IL_05F3: ldloc.s 31 (System.Int32)
IL_05F5: ldelema UnityEngine.Vector2
IL_05FA: ldobj UnityEngine.Vector2
IL_05FF: stloc.s 38 (UnityEngine.Vector2)
IL_0601: ldloca.s 37 (UnityEngine.Color32)
IL_0603: ldfld System.Byte UnityEngine.Color32::r
IL_0608: ldc.i4 255
IL_060D: bne.un => Label16
IL_0612: ldloca.s 37 (UnityEngine.Color32)
IL_0614: ldfld System.Byte UnityEngine.Color32::g
IL_0619: ldc.i4 255
IL_061E: bne.un => Label17
IL_0623: ldloca.s 37 (UnityEngine.Color32)
IL_0625: ldfld System.Byte UnityEngine.Color32::b
IL_062A: ldc.i4.5
IL_062B: bgt => Label18
IL_0630: ldloca.s 38 (UnityEngine.Vector2)
IL_0632: ldloca.s 38 (UnityEngine.Vector2)
IL_0634: ldfld System.Single UnityEngine.Vector2::x
IL_0639: neg
IL_063A: stfld System.Single UnityEngine.Vector2::x
IL_063F: Label16
IL_063F: Label17
IL_063F: Label18
IL_063F: ldarg.s 10
IL_0641: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0646: ldarg.s 7
IL_0648: ldind.i4
IL_0649: ldelema UnityEngine.Vector2
IL_064E: ldloc.s 27 (UnityEngine.Vector2[])
IL_0650: ldloc.s 31 (System.Int32)
IL_0652: ldelema UnityEngine.Vector2
IL_0657: ldobj UnityEngine.Vector2
IL_065C: stobj UnityEngine.Vector2
IL_0661: ldarg.s 10
IL_0663: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0668: ldarg.s 7
IL_066A: ldind.i4
IL_066B: ldelema UnityEngine.Vector2
IL_0670: ldloc.s 38 (UnityEngine.Vector2)
IL_0672: stobj UnityEngine.Vector2
IL_0677: ldarg.s 7
IL_0679: ldarg.s 7
IL_067B: ldind.i4
IL_067C: ldc.i4.1
IL_067D: add
IL_067E: stind.i4
IL_067F: ldloc.s 31 (System.Int32)
IL_0681: ldc.i4.1
IL_0682: add
IL_0683: stloc.s 31 (System.Int32)
IL_0685: Label8
IL_0685: ldloc.s 31 (System.Int32)
IL_0687: ldloc.s 30 (System.Int32)
IL_0689: blt => Label19
IL_068E: ldarg.0
IL_068F: ldfld BuildingInfo BuildingAI::m_info
IL_0694: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0699: brfalse => Label20
IL_069E: ldarg.2
IL_069F: ldfld System.Byte Building::m_baseHeight
IL_06A4: ldc.i4.3
IL_06A5: blt => Label21
IL_06AA: ldarg.0
IL_06AB: ldfld BuildingInfo BuildingAI::m_info
IL_06B0: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_06B5: ldfld System.Int32[] MeshData::m_triangles
IL_06BA: stloc.s 18 (System.Int32[])
IL_06BC: ldloc.s 18 (System.Int32[])
IL_06BE: ldlen
IL_06BF: conv.i4
IL_06C0: stloc.s 19 (System.Int32)
IL_06C2: ldc.i4.0
IL_06C3: stloc.s 39 (System.Int32)
IL_06C5: br => Label22
IL_06CA: Label23
IL_06CA: ldarg.s 10
IL_06CC: ldfld System.Int32[] MeshData::m_triangles
IL_06D1: ldarg.s 8
IL_06D3: ldarg.s 8
IL_06D5: ldind.i4
IL_06D6: dup
IL_06D7: stloc.s 21 (System.Int32)
IL_06D9: ldc.i4.1
IL_06DA: add
IL_06DB: stind.i4
IL_06DC: ldloc.s 21 (System.Int32)
IL_06DE: ldloc.s 18 (System.Int32[])
IL_06E0: ldloc.s 39 (System.Int32)
IL_06E2: ldelem.i4
IL_06E3: ldarg.s 7
IL_06E5: ldind.i4
IL_06E6: add
IL_06E7: stelem.i4
IL_06E8: ldloc.s 39 (System.Int32)
IL_06EA: ldc.i4.1
IL_06EB: add
IL_06EC: stloc.s 39 (System.Int32)
IL_06EE: Label22
IL_06EE: ldloc.s 39 (System.Int32)
IL_06F0: ldloc.s 19 (System.Int32)
IL_06F2: blt => Label23
IL_06F7: ldarg.0
IL_06F8: ldfld BuildingInfo BuildingAI::m_info
IL_06FD: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0702: callvirt VertexArrays MeshData::VertexArrayMask()
IL_0707: stloc.s 22 (RenderGroup+VertexArrays)
IL_0709: ldarg.0
IL_070A: ldfld BuildingInfo BuildingAI::m_info
IL_070F: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0714: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0719: stloc.s 23 (UnityEngine.Vector3[])
IL_071B: ldarg.0
IL_071C: ldfld BuildingInfo BuildingAI::m_info
IL_0721: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0726: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_072B: stloc.s 24 (UnityEngine.Vector3[])
IL_072D: ldarg.0
IL_072E: ldfld BuildingInfo BuildingAI::m_info
IL_0733: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0738: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_073D: stloc.s 25 (UnityEngine.Vector4[])
IL_073F: ldarg.0
IL_0740: ldfld BuildingInfo BuildingAI::m_info
IL_0745: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_074A: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_074F: stloc.s 26 (UnityEngine.Vector2[])
IL_0751: ldarg.0
IL_0752: ldfld BuildingInfo BuildingAI::m_info
IL_0757: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_075C: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0761: stloc.s 27 (UnityEngine.Vector2[])
IL_0763: ldarg.0
IL_0764: ldfld BuildingInfo BuildingAI::m_info
IL_0769: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_076E: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0773: stloc.s 28 (UnityEngine.Vector2[])
IL_0775: ldarg.0
IL_0776: ldfld BuildingInfo BuildingAI::m_info
IL_077B: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0780: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0785: stloc.s 29 (UnityEngine.Color32[])
IL_0787: ldloc.s 23 (UnityEngine.Vector3[])
IL_0789: ldlen
IL_078A: conv.i4
IL_078B: stloc.s 30 (System.Int32)
IL_078D: ldc.i4.0
IL_078E: stloc.s 40 (System.Int32)
IL_0790: br => Label24
IL_0795: Label35
IL_0795: ldarg.0
IL_0796: ldfld BuildingInfo BuildingAI::m_info
IL_079B: ldfld BuildingAI BuildingInfo::m_buildingAI
IL_07A0: ldarg.1
IL_07A1: ldarg.2
IL_07A2: ldarg.0
IL_07A3: ldfld BuildingInfo BuildingAI::m_info
IL_07A8: ldloc.s 40 (System.Int32)
IL_07AA: ldc.i4.1
IL_07AB: callvirt virtual UnityEngine.Color32
BuildingAI::GetGroupVertexColor(System.UInt16 buildingID, Building& buildingData,
BuildingInfoBase info, System.Int32 vertexIndex, System.Boolean baseVertex)
IL_07B0: stloc.s 41 (UnityEngine.Color32)
IL_07B2: ldloc.s 23 (UnityEngine.Vector3[])
IL_07B4: ldloc.s 40 (System.Int32)
IL_07B6: ldelema UnityEngine.Vector3
IL_07BB: ldobj UnityEngine.Vector3
IL_07C0: stloc.s 42 (UnityEngine.Vector3)
IL_07C2: ldloca.s 42 (UnityEngine.Vector3)
IL_07C4: dup
IL_07C5: ldfld System.Single UnityEngine.Vector3::y
IL_07CA: ldarg.2
IL_07CB: ldfld System.Byte Building::m_baseHeight
IL_07D0: conv.r4
IL_07D1: mul
IL_07D2: stfld System.Single UnityEngine.Vector3::y
IL_07D7: ldloca.s 14 (UnityEngine.Matrix4x4)
IL_07D9: ldloc.s 42 (UnityEngine.Vector3)
IL_07DB: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_07E0: stloc.s 43 (UnityEngine.Vector3)
IL_07E2: ldarg.0
IL_07E3: ldfld BuildingInfo BuildingAI::m_info
IL_07E8: ldfld System.Boolean BuildingInfoBase::m_requireHeightMap
IL_07ED: brfalse => Label25
IL_07F2: ldloca.s 43 (UnityEngine.Vector3)
IL_07F4: ldloca.s 42 (UnityEngine.Vector3)
IL_07F6: ldfld System.Single UnityEngine.Vector3::y
IL_07FB: call static TerrainManager
ColossalFramework.Singleton`1<TerrainManager>::get_instance()
IL_0800: ldloc.s 43 (UnityEngine.Vector3)
IL_0802: ldarg.s 9
IL_0804: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0809: callvirt System.Single
TerrainManager::SampleDetailHeight(UnityEngine.Vector3 worldPos)
IL_080E: add
IL_080F: stfld System.Single UnityEngine.Vector3::y
IL_0814: Label25
IL_0814: ldarg.s 10
IL_0816: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_081B: ldarg.s 7
IL_081D: ldind.i4
IL_081E: ldelema UnityEngine.Vector3
IL_0823: ldloc.s 43 (UnityEngine.Vector3)
IL_0825: stobj UnityEngine.Vector3
IL_082A: ldloc.s 22 (RenderGroup+VertexArrays)
IL_082C: ldc.i4.2
IL_082D: and
IL_082E: brfalse => Label26
IL_0833: ldarg.s 10
IL_0835: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_083A: ldarg.s 7
IL_083C: ldind.i4
IL_083D: ldelema UnityEngine.Vector3
IL_0842: ldloca.s 14 (UnityEngine.Matrix4x4)
IL_0844: ldloc.s 24 (UnityEngine.Vector3[])
IL_0846: ldloc.s 40 (System.Int32)
IL_0848: ldelema UnityEngine.Vector3
IL_084D: ldobj UnityEngine.Vector3
IL_0852: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0857: stobj UnityEngine.Vector3
IL_085C: br => Label27
IL_0861: Label26
IL_0861: ldarg.s 10
IL_0863: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0868: ldarg.s 7
IL_086A: ldind.i4
IL_086B: ldelema UnityEngine.Vector3
IL_0870: ldc.r4 0
IL_0875: ldc.r4 1
IL_087A: ldc.r4 0
IL_087F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0884: stobj UnityEngine.Vector3
IL_0889: Label27
IL_0889: ldloc.s 22 (RenderGroup+VertexArrays)
IL_088B: ldc.i4.4
IL_088C: and
IL_088D: brfalse => Label28
IL_0892: ldloc.s 25 (UnityEngine.Vector4[])
IL_0894: ldloc.s 40 (System.Int32)
IL_0896: ldelema UnityEngine.Vector4
IL_089B: ldobj UnityEngine.Vector4
IL_08A0: stloc.s 44 (UnityEngine.Vector4)
IL_08A2: ldloca.s 14 (UnityEngine.Matrix4x4)
IL_08A4: ldloc.s 44 (UnityEngine.Vector4)
IL_08A6: call static UnityEngine.Vector3
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_08AB: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_08B0: stloc.s 45 (UnityEngine.Vector3)
IL_08B2: ldloca.s 44 (UnityEngine.Vector4)
IL_08B4: ldloca.s 45 (UnityEngine.Vector3)
IL_08B6: ldfld System.Single UnityEngine.Vector3::x
IL_08BB: stfld System.Single UnityEngine.Vector4::x
IL_08C0: ldloca.s 44 (UnityEngine.Vector4)
IL_08C2: ldloca.s 45 (UnityEngine.Vector3)
IL_08C4: ldfld System.Single UnityEngine.Vector3::y
IL_08C9: stfld System.Single UnityEngine.Vector4::y
IL_08CE: ldloca.s 44 (UnityEngine.Vector4)
IL_08D0: ldloca.s 45 (UnityEngine.Vector3)
IL_08D2: ldfld System.Single UnityEngine.Vector3::z
IL_08D7: stfld System.Single UnityEngine.Vector4::z
IL_08DC: ldarg.s 10
IL_08DE: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_08E3: ldarg.s 7
IL_08E5: ldind.i4
IL_08E6: ldelema UnityEngine.Vector4
IL_08EB: ldloc.s 44 (UnityEngine.Vector4)
IL_08ED: stobj UnityEngine.Vector4
IL_08F2: br => Label29
IL_08F7: Label28
IL_08F7: ldarg.s 10
IL_08F9: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_08FE: ldarg.s 7
IL_0900: ldind.i4
IL_0901: ldelema UnityEngine.Vector4
IL_0906: ldc.r4 1
IL_090B: ldc.r4 0
IL_0910: ldc.r4 0
IL_0915: ldc.r4 1
IL_091A: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_091F: stobj UnityEngine.Vector4
IL_0924: Label29
IL_0924: ldloc.s 22 (RenderGroup+VertexArrays)
IL_0926: ldc.i4.8
IL_0927: and
IL_0928: brfalse => Label30
IL_092D: ldloc.s 26 (UnityEngine.Vector2[])
IL_092F: ldloc.s 40 (System.Int32)
IL_0931: ldelema UnityEngine.Vector2
IL_0936: ldobj UnityEngine.Vector2
IL_093B: stloc.s 46 (UnityEngine.Vector2)
IL_093D: ldloca.s 46 (UnityEngine.Vector2)
IL_093F: dup
IL_0940: ldfld System.Single UnityEngine.Vector2::y
IL_0945: ldarg.2
IL_0946: ldfld System.Byte Building::m_baseHeight
IL_094B: conv.r4
IL_094C: mul
IL_094D: stfld System.Single UnityEngine.Vector2::y
IL_0952: ldarg.s 10
IL_0954: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0959: ldarg.s 7
IL_095B: ldind.i4
IL_095C: ldelema UnityEngine.Vector2
IL_0961: ldloc.s 46 (UnityEngine.Vector2)
IL_0963: stobj UnityEngine.Vector2
IL_0968: br => Label31
IL_096D: Label30
IL_096D: ldarg.s 10
IL_096F: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0974: ldarg.s 7
IL_0976: ldind.i4
IL_0977: ldelema UnityEngine.Vector2
IL_097C: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0981: stobj UnityEngine.Vector2
IL_0986: Label31
IL_0986: ldarg.s 10
IL_0988: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_098D: ldarg.s 7
IL_098F: ldind.i4
IL_0990: ldelema UnityEngine.Color32
IL_0995: ldloc.s 41 (UnityEngine.Color32)
IL_0997: stobj UnityEngine.Color32
IL_099C: ldarg.s 10
IL_099E: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_09A3: ldarg.s 7
IL_09A5: ldind.i4
IL_09A6: ldelema UnityEngine.Vector2
IL_09AB: ldloc.s 17 (UnityEngine.Vector2)
IL_09AD: stobj UnityEngine.Vector2
IL_09B2: ldloc.s 29 (UnityEngine.Color32[])
IL_09B4: ldloc.s 40 (System.Int32)
IL_09B6: ldelema UnityEngine.Color32
IL_09BB: ldobj UnityEngine.Color32
IL_09C0: stloc.s 47 (UnityEngine.Color32)
IL_09C2: ldloc.s 28 (UnityEngine.Vector2[])
IL_09C4: ldloc.s 40 (System.Int32)
IL_09C6: ldelema UnityEngine.Vector2
IL_09CB: ldobj UnityEngine.Vector2
IL_09D0: stloc.s 48 (UnityEngine.Vector2)
IL_09D2: ldloca.s 47 (UnityEngine.Color32)
IL_09D4: ldfld System.Byte UnityEngine.Color32::r
IL_09D9: ldc.i4 255
IL_09DE: bne.un => Label32
IL_09E3: ldloca.s 47 (UnityEngine.Color32)
IL_09E5: ldfld System.Byte UnityEngine.Color32::g
IL_09EA: ldc.i4 255
IL_09EF: bne.un => Label33
IL_09F4: ldloca.s 47 (UnityEngine.Color32)
IL_09F6: ldfld System.Byte UnityEngine.Color32::b
IL_09FB: ldc.i4.5
IL_09FC: bgt => Label34
IL_0A01: ldloca.s 48 (UnityEngine.Vector2)
IL_0A03: ldloca.s 48 (UnityEngine.Vector2)
IL_0A05: ldfld System.Single UnityEngine.Vector2::x
IL_0A0A: neg
IL_0A0B: stfld System.Single UnityEngine.Vector2::x
IL_0A10: Label32
IL_0A10: Label33
IL_0A10: Label34
IL_0A10: ldarg.s 10
IL_0A12: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0A17: ldarg.s 7
IL_0A19: ldind.i4
IL_0A1A: ldelema UnityEngine.Vector2
IL_0A1F: ldloc.s 27 (UnityEngine.Vector2[])
IL_0A21: ldloc.s 40 (System.Int32)
IL_0A23: ldelema UnityEngine.Vector2
IL_0A28: ldobj UnityEngine.Vector2
IL_0A2D: stobj UnityEngine.Vector2
IL_0A32: ldarg.s 10
IL_0A34: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0A39: ldarg.s 7
IL_0A3B: ldind.i4
IL_0A3C: ldelema UnityEngine.Vector2
IL_0A41: ldloc.s 48 (UnityEngine.Vector2)
IL_0A43: stobj UnityEngine.Vector2
IL_0A48: ldarg.s 7
IL_0A4A: ldarg.s 7
IL_0A4C: ldind.i4
IL_0A4D: ldc.i4.1
IL_0A4E: add
IL_0A4F: stind.i4
IL_0A50: ldloc.s 40 (System.Int32)
IL_0A52: ldc.i4.1
IL_0A53: add
IL_0A54: stloc.s 40 (System.Int32)
IL_0A56: Label24
IL_0A56: ldloc.s 40 (System.Int32)
IL_0A58: ldloc.s 30 (System.Int32)
IL_0A5A: blt => Label35
IL_0A5F: Label2
IL_0A5F: Label20
IL_0A5F: Label21
IL_0A5F: ldarg.0
IL_0A60: ldfld BuildingInfo BuildingAI::m_info
IL_0A65: ldfld MeshInfo[] BuildingInfo::m_subMeshes
IL_0A6A: brfalse => Label36
IL_0A6F: ldc.i4.0
IL_0A70: stloc.s 49 (System.Int32)
IL_0A72: br => Label37
IL_0A77: Label83
IL_0A77: ldarg.0
IL_0A78: ldfld BuildingInfo BuildingAI::m_info
IL_0A7D: ldfld MeshInfo[] BuildingInfo::m_subMeshes
IL_0A82: ldloc.s 49 (System.Int32)
IL_0A84: ldelem.ref
IL_0A85: stloc.s 50 (BuildingInfo+MeshInfo)
IL_0A87: ldloc.s 50 (BuildingInfo+MeshInfo)
IL_0A89: ldfld Flags MeshInfo::m_flagsRequired
IL_0A8E: ldloc.s 50 (BuildingInfo+MeshInfo)
IL_0A90: ldfld Flags MeshInfo::m_flagsForbidden
IL_0A95: or
IL_0A96: ldarg.2
IL_0A97: ldfld Flags Building::m_flags
IL_0A9C: and
IL_0A9D: ldloc.s 50 (BuildingInfo+MeshInfo)
IL_0A9F: ldfld Flags MeshInfo::m_flagsRequired
IL_0AA4: bne.un => Label38
IL_0AA9: ldloc.s 50 (BuildingInfo+MeshInfo)
IL_0AAB: ldfld BuildingInfoBase MeshInfo::m_subInfo
IL_0AB0: isinst BuildingInfoSub
IL_0AB5: stloc.s 51 (BuildingInfoSub)
IL_0AB7: ldloc.s 51 (BuildingInfoSub)
IL_0AB9: ldfld MeshInfo[] BuildingInfoSub::m_subMeshes
IL_0ABE: brfalse => Label39
IL_0AC3: ldloc.s 51 (BuildingInfoSub)
IL_0AC5: ldfld MeshInfo[] BuildingInfoSub::m_subMeshes
IL_0ACA: ldlen
IL_0ACB: conv.i4
IL_0ACC: brfalse => Label40
IL_0AD1: ldloc.s 51 (BuildingInfoSub)
IL_0AD3: ldfld MeshInfo[] BuildingInfoSub::m_subMeshes
IL_0AD8: ldlen
IL_0AD9: conv.i4
IL_0ADA: stloc.s 52 (System.Int32)
IL_0ADC: br => Label41
IL_0AE1: Label39
IL_0AE1: Label40
IL_0AE1: ldc.i4.1
IL_0AE2: stloc.s 52 (System.Int32)
IL_0AE4: Label41
IL_0AE4: ldc.i4.0
IL_0AE5: stloc.s 53 (System.Int32)
IL_0AE7: br => Label42
IL_0AEC: Label82
IL_0AEC: ldloc.s 51 (BuildingInfoSub)
IL_0AEE: ldfld MeshInfo[] BuildingInfoSub::m_subMeshes
IL_0AF3: brfalse => Label43
IL_0AF8: ldloc.s 51 (BuildingInfoSub)
IL_0AFA: ldfld MeshInfo[] BuildingInfoSub::m_subMeshes
IL_0AFF: ldlen
IL_0B00: conv.i4
IL_0B01: brfalse => Label44
IL_0B06: ldloc.s 51 (BuildingInfoSub)
IL_0B08: ldfld MeshInfo[] BuildingInfoSub::m_subMeshes
IL_0B0D: ldloc.s 53 (System.Int32)
IL_0B0F: ldelem.ref
IL_0B10: stloc.s 55 (BuildingInfo+MeshInfo)
IL_0B12: ldloc.s 55 (BuildingInfo+MeshInfo)
IL_0B14: ldfld BuildingInfoBase MeshInfo::m_subInfo
IL_0B19: isinst BuildingInfoSub
IL_0B1E: stloc.s 54 (BuildingInfoSub)
IL_0B20: ldloc.s 55 (BuildingInfo+MeshInfo)
IL_0B22: ldfld Flags MeshInfo::m_flagsRequired
IL_0B27: ldloc.s 55 (BuildingInfo+MeshInfo)
IL_0B29: ldfld Flags MeshInfo::m_flagsForbidden
IL_0B2E: or
IL_0B2F: ldarg.2
IL_0B30: ldfld Flags Building::m_flags
IL_0B35: and
IL_0B36: ldloc.s 55 (BuildingInfo+MeshInfo)
IL_0B38: ldfld Flags MeshInfo::m_flagsRequired
IL_0B3D: beq => Label45
IL_0B42: br => Label46
IL_0B47: Label45
IL_0B47: br => Label47
IL_0B4C: Label43
IL_0B4C: Label44
IL_0B4C: ldloc.s 51 (BuildingInfoSub)
IL_0B4E: stloc.s 54 (BuildingInfoSub)
IL_0B50: Label47
IL_0B50: ldloc.s 54 (BuildingInfoSub)
IL_0B52: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_0B57: brfalse => Label48
IL_0B5C: ldarg.2
IL_0B5D: ldloca.s 56 (UnityEngine.Vector3)
IL_0B5F: ldloca.s 57 (UnityEngine.Quaternion)
IL_0B61: call System.Void
Building::CalculateMeshPosition(UnityEngine.Vector3& meshPosition,
UnityEngine.Quaternion& meshRotation)
IL_0B66: ldloc.s 56 (UnityEngine.Vector3)
IL_0B68: ldarg.s 9
IL_0B6A: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0B6F: ldloc.s 57 (UnityEngine.Quaternion)
IL_0B71: call static UnityEngine.Vector3 UnityEngine.Vector3::get_one()
IL_0B76: call static UnityEngine.Matrix4x4
UnityEngine.Matrix4x4::TRS(UnityEngine.Vector3 pos, UnityEngine.Quaternion q,
UnityEngine.Vector3 s)
IL_0B7B: ldloc.s 50 (BuildingInfo+MeshInfo)
IL_0B7D: ldfld UnityEngine.Matrix4x4 MeshInfo::m_matrix
IL_0B82: call static UnityEngine.Matrix4x4
UnityEngine.Matrix4x4::op_Multiply(UnityEngine.Matrix4x4 lhs, UnityEngine.Matrix4x4
rhs)
IL_0B87: stloc.s 58 (UnityEngine.Matrix4x4)
IL_0B89: ldarg.2
IL_0B8A: ldfld System.UInt16 Building::m_parentBuilding
IL_0B8F: brfalse => Label49
IL_0B94: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0B99: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0B9E: brfalse => Label50
IL_0BA3: Label49
IL_0BA3: ldarg.1
IL_0BA4: br => Label51
IL_0BA9: Label50
IL_0BA9: ldarg.1
IL_0BAA: call static System.UInt16 Building::FindParentBuilding(System.UInt16
buildingID)
IL_0BAF: Label51
IL_0BAF: stloc.s 59 (System.UInt16)
IL_0BB1: ldloc.s 59 (System.UInt16)
IL_0BB3: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_0BB8: stloc.s 60 (UnityEngine.Vector4)
IL_0BBA: ldloca.s 61 (UnityEngine.Vector2)
IL_0BBC: ldloca.s 60 (UnityEngine.Vector4)
IL_0BBE: ldfld System.Single UnityEngine.Vector4::x
IL_0BC3: ldloca.s 60 (UnityEngine.Vector4)
IL_0BC5: ldfld System.Single UnityEngine.Vector4::y
IL_0BCA: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_0BCF: ldloc.s 54 (BuildingInfoSub)
IL_0BD1: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_0BD6: ldfld System.Int32[] MeshData::m_triangles
IL_0BDB: stloc.s 62 (System.Int32[])
IL_0BDD: ldloc.s 62 (System.Int32[])
IL_0BDF: ldlen
IL_0BE0: conv.i4
IL_0BE1: stloc.s 63 (System.Int32)
IL_0BE3: ldc.i4.0
IL_0BE4: stloc.s 64 (System.Int32)
IL_0BE6: br => Label52
IL_0BEB: Label53
IL_0BEB: ldarg.s 10
IL_0BED: ldfld System.Int32[] MeshData::m_triangles
IL_0BF2: ldarg.s 8
IL_0BF4: ldarg.s 8
IL_0BF6: ldind.i4
IL_0BF7: dup
IL_0BF8: stloc.s 21 (System.Int32)
IL_0BFA: ldc.i4.1
IL_0BFB: add
IL_0BFC: stind.i4
IL_0BFD: ldloc.s 21 (System.Int32)
IL_0BFF: ldloc.s 62 (System.Int32[])
IL_0C01: ldloc.s 64 (System.Int32)
IL_0C03: ldelem.i4
IL_0C04: ldarg.s 7
IL_0C06: ldind.i4
IL_0C07: add
IL_0C08: stelem.i4
IL_0C09: ldloc.s 64 (System.Int32)
IL_0C0B: ldc.i4.1
IL_0C0C: add
IL_0C0D: stloc.s 64 (System.Int32)
IL_0C0F: Label52
IL_0C0F: ldloc.s 64 (System.Int32)
IL_0C11: ldloc.s 63 (System.Int32)
IL_0C13: blt => Label53
IL_0C18: ldloc.s 54 (BuildingInfoSub)
IL_0C1A: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_0C1F: callvirt VertexArrays MeshData::VertexArrayMask()
IL_0C24: stloc.s 65 (RenderGroup+VertexArrays)
IL_0C26: ldloc.s 54 (BuildingInfoSub)
IL_0C28: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_0C2D: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0C32: stloc.s 66 (UnityEngine.Vector3[])
IL_0C34: ldloc.s 54 (BuildingInfoSub)
IL_0C36: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_0C3B: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0C40: stloc.s 67 (UnityEngine.Vector3[])
IL_0C42: ldloc.s 54 (BuildingInfoSub)
IL_0C44: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_0C49: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0C4E: stloc.s 68 (UnityEngine.Vector4[])
IL_0C50: ldloc.s 54 (BuildingInfoSub)
IL_0C52: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_0C57: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0C5C: stloc.s 69 (UnityEngine.Vector2[])
IL_0C5E: ldloc.s 54 (BuildingInfoSub)
IL_0C60: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_0C65: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0C6A: stloc.s 70 (UnityEngine.Vector2[])
IL_0C6C: ldloc.s 54 (BuildingInfoSub)
IL_0C6E: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_0C73: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0C78: stloc.s 71 (UnityEngine.Vector2[])
IL_0C7A: ldloc.s 54 (BuildingInfoSub)
IL_0C7C: ldfld MeshData BuildingInfoBase::m_lodMeshData
IL_0C81: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0C86: stloc.s 72 (UnityEngine.Color32[])
IL_0C88: ldloc.s 66 (UnityEngine.Vector3[])
IL_0C8A: ldlen
IL_0C8B: conv.i4
IL_0C8C: stloc.s 73 (System.Int32)
IL_0C8E: ldc.i4.0
IL_0C8F: stloc.s 74 (System.Int32)
IL_0C91: br => Label54
IL_0C96: Label65
IL_0C96: ldarg.0
IL_0C97: ldfld BuildingInfo BuildingAI::m_info
IL_0C9C: ldfld BuildingAI BuildingInfo::m_buildingAI
IL_0CA1: ldarg.1
IL_0CA2: ldarg.2
IL_0CA3: ldloc.s 54 (BuildingInfoSub)
IL_0CA5: ldloc.s 74 (System.Int32)
IL_0CA7: ldc.i4.0
IL_0CA8: callvirt virtual UnityEngine.Color32
BuildingAI::GetGroupVertexColor(System.UInt16 buildingID, Building& buildingData,
BuildingInfoBase info, System.Int32 vertexIndex, System.Boolean baseVertex)
IL_0CAD: stloc.s 75 (UnityEngine.Color32)
IL_0CAF: ldloc.s 66 (UnityEngine.Vector3[])
IL_0CB1: ldloc.s 74 (System.Int32)
IL_0CB3: ldelema UnityEngine.Vector3
IL_0CB8: ldobj UnityEngine.Vector3
IL_0CBD: stloc.s 76 (UnityEngine.Vector3)
IL_0CBF: ldloca.s 58 (UnityEngine.Matrix4x4)
IL_0CC1: ldloc.s 76 (UnityEngine.Vector3)
IL_0CC3: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_0CC8: stloc.s 77 (UnityEngine.Vector3)
IL_0CCA: ldloc.s 54 (BuildingInfoSub)
IL_0CCC: ldfld System.Boolean BuildingInfoBase::m_requireHeightMap
IL_0CD1: brfalse => Label55
IL_0CD6: ldloca.s 77 (UnityEngine.Vector3)
IL_0CD8: ldloca.s 76 (UnityEngine.Vector3)
IL_0CDA: ldfld System.Single UnityEngine.Vector3::y
IL_0CDF: call static TerrainManager
ColossalFramework.Singleton`1<TerrainManager>::get_instance()
IL_0CE4: ldloc.s 77 (UnityEngine.Vector3)
IL_0CE6: ldarg.s 9
IL_0CE8: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0CED: callvirt System.Single
TerrainManager::SampleDetailHeight(UnityEngine.Vector3 worldPos)
IL_0CF2: add
IL_0CF3: stfld System.Single UnityEngine.Vector3::y
IL_0CF8: Label55
IL_0CF8: ldarg.s 10
IL_0CFA: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0CFF: ldarg.s 7
IL_0D01: ldind.i4
IL_0D02: ldelema UnityEngine.Vector3
IL_0D07: ldloc.s 77 (UnityEngine.Vector3)
IL_0D09: stobj UnityEngine.Vector3
IL_0D0E: ldloc.s 65 (RenderGroup+VertexArrays)
IL_0D10: ldc.i4.2
IL_0D11: and
IL_0D12: brfalse => Label56
IL_0D17: ldarg.s 10
IL_0D19: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0D1E: ldarg.s 7
IL_0D20: ldind.i4
IL_0D21: ldelema UnityEngine.Vector3
IL_0D26: ldloca.s 58 (UnityEngine.Matrix4x4)
IL_0D28: ldloc.s 67 (UnityEngine.Vector3[])
IL_0D2A: ldloc.s 74 (System.Int32)
IL_0D2C: ldelema UnityEngine.Vector3
IL_0D31: ldobj UnityEngine.Vector3
IL_0D36: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0D3B: stobj UnityEngine.Vector3
IL_0D40: br => Label57
IL_0D45: Label56
IL_0D45: ldarg.s 10
IL_0D47: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0D4C: ldarg.s 7
IL_0D4E: ldind.i4
IL_0D4F: ldelema UnityEngine.Vector3
IL_0D54: ldc.r4 0
IL_0D59: ldc.r4 1
IL_0D5E: ldc.r4 0
IL_0D63: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0D68: stobj UnityEngine.Vector3
IL_0D6D: Label57
IL_0D6D: ldloc.s 65 (RenderGroup+VertexArrays)
IL_0D6F: ldc.i4.4
IL_0D70: and
IL_0D71: brfalse => Label58
IL_0D76: ldloc.s 68 (UnityEngine.Vector4[])
IL_0D78: ldloc.s 74 (System.Int32)
IL_0D7A: ldelema UnityEngine.Vector4
IL_0D7F: ldobj UnityEngine.Vector4
IL_0D84: stloc.s 78 (UnityEngine.Vector4)
IL_0D86: ldloca.s 58 (UnityEngine.Matrix4x4)
IL_0D88: ldloc.s 78 (UnityEngine.Vector4)
IL_0D8A: call static UnityEngine.Vector3
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0D8F: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0D94: stloc.s 79 (UnityEngine.Vector3)
IL_0D96: ldloca.s 78 (UnityEngine.Vector4)
IL_0D98: ldloca.s 79 (UnityEngine.Vector3)
IL_0D9A: ldfld System.Single UnityEngine.Vector3::x
IL_0D9F: stfld System.Single UnityEngine.Vector4::x
IL_0DA4: ldloca.s 78 (UnityEngine.Vector4)
IL_0DA6: ldloca.s 79 (UnityEngine.Vector3)
IL_0DA8: ldfld System.Single UnityEngine.Vector3::y
IL_0DAD: stfld System.Single UnityEngine.Vector4::y
IL_0DB2: ldloca.s 78 (UnityEngine.Vector4)
IL_0DB4: ldloca.s 79 (UnityEngine.Vector3)
IL_0DB6: ldfld System.Single UnityEngine.Vector3::z
IL_0DBB: stfld System.Single UnityEngine.Vector4::z
IL_0DC0: ldarg.s 10
IL_0DC2: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0DC7: ldarg.s 7
IL_0DC9: ldind.i4
IL_0DCA: ldelema UnityEngine.Vector4
IL_0DCF: ldloc.s 78 (UnityEngine.Vector4)
IL_0DD1: stobj UnityEngine.Vector4
IL_0DD6: br => Label59
IL_0DDB: Label58
IL_0DDB: ldarg.s 10
IL_0DDD: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0DE2: ldarg.s 7
IL_0DE4: ldind.i4
IL_0DE5: ldelema UnityEngine.Vector4
IL_0DEA: ldc.r4 1
IL_0DEF: ldc.r4 0
IL_0DF4: ldc.r4 0
IL_0DF9: ldc.r4 1
IL_0DFE: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0E03: stobj UnityEngine.Vector4
IL_0E08: Label59
IL_0E08: ldloc.s 65 (RenderGroup+VertexArrays)
IL_0E0A: ldc.i4.8
IL_0E0B: and
IL_0E0C: brfalse => Label60
IL_0E11: ldarg.s 10
IL_0E13: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0E18: ldarg.s 7
IL_0E1A: ldind.i4
IL_0E1B: ldelema UnityEngine.Vector2
IL_0E20: ldloc.s 69 (UnityEngine.Vector2[])
IL_0E22: ldloc.s 74 (System.Int32)
IL_0E24: ldelema UnityEngine.Vector2
IL_0E29: ldobj UnityEngine.Vector2
IL_0E2E: stobj UnityEngine.Vector2
IL_0E33: br => Label61
IL_0E38: Label60
IL_0E38: ldarg.s 10
IL_0E3A: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0E3F: ldarg.s 7
IL_0E41: ldind.i4
IL_0E42: ldelema UnityEngine.Vector2
IL_0E47: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0E4C: stobj UnityEngine.Vector2
IL_0E51: Label61
IL_0E51: ldarg.s 10
IL_0E53: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0E58: ldarg.s 7
IL_0E5A: ldind.i4
IL_0E5B: ldelema UnityEngine.Color32
IL_0E60: ldloc.s 75 (UnityEngine.Color32)
IL_0E62: stobj UnityEngine.Color32
IL_0E67: ldarg.s 10
IL_0E69: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0E6E: ldarg.s 7
IL_0E70: ldind.i4
IL_0E71: ldelema UnityEngine.Vector2
IL_0E76: ldloc.s 61 (UnityEngine.Vector2)
IL_0E78: stobj UnityEngine.Vector2
IL_0E7D: ldloc.s 72 (UnityEngine.Color32[])
IL_0E7F: ldloc.s 74 (System.Int32)
IL_0E81: ldelema UnityEngine.Color32
IL_0E86: ldobj UnityEngine.Color32
IL_0E8B: stloc.s 80 (UnityEngine.Color32)
IL_0E8D: ldloc.s 71 (UnityEngine.Vector2[])
IL_0E8F: ldloc.s 74 (System.Int32)
IL_0E91: ldelema UnityEngine.Vector2
IL_0E96: ldobj UnityEngine.Vector2
IL_0E9B: stloc.s 81 (UnityEngine.Vector2)
IL_0E9D: ldloca.s 80 (UnityEngine.Color32)
IL_0E9F: ldfld System.Byte UnityEngine.Color32::r
IL_0EA4: ldc.i4 255
IL_0EA9: bne.un => Label62
IL_0EAE: ldloca.s 80 (UnityEngine.Color32)
IL_0EB0: ldfld System.Byte UnityEngine.Color32::g
IL_0EB5: ldc.i4 255
IL_0EBA: bne.un => Label63
IL_0EBF: ldloca.s 80 (UnityEngine.Color32)
IL_0EC1: ldfld System.Byte UnityEngine.Color32::b
IL_0EC6: ldc.i4.5
IL_0EC7: bgt => Label64
IL_0ECC: ldloca.s 81 (UnityEngine.Vector2)
IL_0ECE: ldloca.s 81 (UnityEngine.Vector2)
IL_0ED0: ldfld System.Single UnityEngine.Vector2::x
IL_0ED5: neg
IL_0ED6: stfld System.Single UnityEngine.Vector2::x
IL_0EDB: Label62
IL_0EDB: Label63
IL_0EDB: Label64
IL_0EDB: ldarg.s 10
IL_0EDD: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0EE2: ldarg.s 7
IL_0EE4: ldind.i4
IL_0EE5: ldelema UnityEngine.Vector2
IL_0EEA: ldloc.s 70 (UnityEngine.Vector2[])
IL_0EEC: ldloc.s 74 (System.Int32)
IL_0EEE: ldelema UnityEngine.Vector2
IL_0EF3: ldobj UnityEngine.Vector2
IL_0EF8: stobj UnityEngine.Vector2
IL_0EFD: ldarg.s 10
IL_0EFF: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0F04: ldarg.s 7
IL_0F06: ldind.i4
IL_0F07: ldelema UnityEngine.Vector2
IL_0F0C: ldloc.s 81 (UnityEngine.Vector2)
IL_0F0E: stobj UnityEngine.Vector2
IL_0F13: ldarg.s 7
IL_0F15: ldarg.s 7
IL_0F17: ldind.i4
IL_0F18: ldc.i4.1
IL_0F19: add
IL_0F1A: stind.i4
IL_0F1B: ldloc.s 74 (System.Int32)
IL_0F1D: ldc.i4.1
IL_0F1E: add
IL_0F1F: stloc.s 74 (System.Int32)
IL_0F21: Label54
IL_0F21: ldloc.s 74 (System.Int32)
IL_0F23: ldloc.s 73 (System.Int32)
IL_0F25: blt => Label65
IL_0F2A: ldloc.s 54 (BuildingInfoSub)
IL_0F2C: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0F31: brfalse => Label66
IL_0F36: ldarg.2
IL_0F37: ldfld System.Byte Building::m_baseHeight
IL_0F3C: ldc.i4.3
IL_0F3D: blt => Label67
IL_0F42: ldloc.s 54 (BuildingInfoSub)
IL_0F44: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0F49: ldfld System.Int32[] MeshData::m_triangles
IL_0F4E: stloc.s 62 (System.Int32[])
IL_0F50: ldloc.s 62 (System.Int32[])
IL_0F52: ldlen
IL_0F53: conv.i4
IL_0F54: stloc.s 63 (System.Int32)
IL_0F56: ldc.i4.0
IL_0F57: stloc.s 82 (System.Int32)
IL_0F59: br => Label68
IL_0F5E: Label69
IL_0F5E: ldarg.s 10
IL_0F60: ldfld System.Int32[] MeshData::m_triangles
IL_0F65: ldarg.s 8
IL_0F67: ldarg.s 8
IL_0F69: ldind.i4
IL_0F6A: dup
IL_0F6B: stloc.s 21 (System.Int32)
IL_0F6D: ldc.i4.1
IL_0F6E: add
IL_0F6F: stind.i4
IL_0F70: ldloc.s 21 (System.Int32)
IL_0F72: ldloc.s 62 (System.Int32[])
IL_0F74: ldloc.s 82 (System.Int32)
IL_0F76: ldelem.i4
IL_0F77: ldarg.s 7
IL_0F79: ldind.i4
IL_0F7A: add
IL_0F7B: stelem.i4
IL_0F7C: ldloc.s 82 (System.Int32)
IL_0F7E: ldc.i4.1
IL_0F7F: add
IL_0F80: stloc.s 82 (System.Int32)
IL_0F82: Label68
IL_0F82: ldloc.s 82 (System.Int32)
IL_0F84: ldloc.s 63 (System.Int32)
IL_0F86: blt => Label69
IL_0F8B: ldloc.s 54 (BuildingInfoSub)
IL_0F8D: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0F92: callvirt VertexArrays MeshData::VertexArrayMask()
IL_0F97: stloc.s 65 (RenderGroup+VertexArrays)
IL_0F99: ldloc.s 54 (BuildingInfoSub)
IL_0F9B: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0FA0: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0FA5: stloc.s 66 (UnityEngine.Vector3[])
IL_0FA7: ldloc.s 54 (BuildingInfoSub)
IL_0FA9: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0FAE: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0FB3: stloc.s 67 (UnityEngine.Vector3[])
IL_0FB5: ldloc.s 54 (BuildingInfoSub)
IL_0FB7: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0FBC: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0FC1: stloc.s 68 (UnityEngine.Vector4[])
IL_0FC3: ldloc.s 54 (BuildingInfoSub)
IL_0FC5: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0FCA: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0FCF: stloc.s 69 (UnityEngine.Vector2[])
IL_0FD1: ldloc.s 54 (BuildingInfoSub)
IL_0FD3: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0FD8: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0FDD: stloc.s 70 (UnityEngine.Vector2[])
IL_0FDF: ldloc.s 54 (BuildingInfoSub)
IL_0FE1: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0FE6: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0FEB: stloc.s 71 (UnityEngine.Vector2[])
IL_0FED: ldloc.s 54 (BuildingInfoSub)
IL_0FEF: ldfld MeshData BuildingInfoBase::m_lodMeshBase
IL_0FF4: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0FF9: stloc.s 72 (UnityEngine.Color32[])
IL_0FFB: ldloc.s 66 (UnityEngine.Vector3[])
IL_0FFD: ldlen
IL_0FFE: conv.i4
IL_0FFF: stloc.s 73 (System.Int32)
IL_1001: ldc.i4.0
IL_1002: stloc.s 83 (System.Int32)
IL_1004: br => Label70
IL_1009: Label81
IL_1009: ldarg.0
IL_100A: ldfld BuildingInfo BuildingAI::m_info
IL_100F: ldfld BuildingAI BuildingInfo::m_buildingAI
IL_1014: ldarg.1
IL_1015: ldarg.2
IL_1016: ldloc.s 54 (BuildingInfoSub)
IL_1018: ldloc.s 83 (System.Int32)
IL_101A: ldc.i4.1
IL_101B: callvirt virtual UnityEngine.Color32
BuildingAI::GetGroupVertexColor(System.UInt16 buildingID, Building& buildingData,
BuildingInfoBase info, System.Int32 vertexIndex, System.Boolean baseVertex)
IL_1020: stloc.s 84 (UnityEngine.Color32)
IL_1022: ldloc.s 66 (UnityEngine.Vector3[])
IL_1024: ldloc.s 83 (System.Int32)
IL_1026: ldelema UnityEngine.Vector3
IL_102B: ldobj UnityEngine.Vector3
IL_1030: stloc.s 85 (UnityEngine.Vector3)
IL_1032: ldloca.s 85 (UnityEngine.Vector3)
IL_1034: dup
IL_1035: ldfld System.Single UnityEngine.Vector3::y
IL_103A: ldarg.2
IL_103B: ldfld System.Byte Building::m_baseHeight
IL_1040: conv.r4
IL_1041: mul
IL_1042: stfld System.Single UnityEngine.Vector3::y
IL_1047: ldloca.s 58 (UnityEngine.Matrix4x4)
IL_1049: ldloc.s 85 (UnityEngine.Vector3)
IL_104B: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_1050: stloc.s 86 (UnityEngine.Vector3)
IL_1052: ldloc.s 54 (BuildingInfoSub)
IL_1054: ldfld System.Boolean BuildingInfoBase::m_requireHeightMap
IL_1059: brfalse => Label71
IL_105E: ldloca.s 86 (UnityEngine.Vector3)
IL_1060: ldloca.s 85 (UnityEngine.Vector3)
IL_1062: ldfld System.Single UnityEngine.Vector3::y
IL_1067: call static TerrainManager
ColossalFramework.Singleton`1<TerrainManager>::get_instance()
IL_106C: ldloc.s 86 (UnityEngine.Vector3)
IL_106E: ldarg.s 9
IL_1070: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_1075: callvirt System.Single
TerrainManager::SampleDetailHeight(UnityEngine.Vector3 worldPos)
IL_107A: add
IL_107B: stfld System.Single UnityEngine.Vector3::y
IL_1080: Label71
IL_1080: ldarg.s 10
IL_1082: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_1087: ldarg.s 7
IL_1089: ldind.i4
IL_108A: ldelema UnityEngine.Vector3
IL_108F: ldloc.s 86 (UnityEngine.Vector3)
IL_1091: stobj UnityEngine.Vector3
IL_1096: ldloc.s 65 (RenderGroup+VertexArrays)
IL_1098: ldc.i4.2
IL_1099: and
IL_109A: brfalse => Label72
IL_109F: ldarg.s 10
IL_10A1: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_10A6: ldarg.s 7
IL_10A8: ldind.i4
IL_10A9: ldelema UnityEngine.Vector3
IL_10AE: ldloca.s 58 (UnityEngine.Matrix4x4)
IL_10B0: ldloc.s 67 (UnityEngine.Vector3[])
IL_10B2: ldloc.s 83 (System.Int32)
IL_10B4: ldelema UnityEngine.Vector3
IL_10B9: ldobj UnityEngine.Vector3
IL_10BE: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_10C3: stobj UnityEngine.Vector3
IL_10C8: br => Label73
IL_10CD: Label72
IL_10CD: ldarg.s 10
IL_10CF: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_10D4: ldarg.s 7
IL_10D6: ldind.i4
IL_10D7: ldelema UnityEngine.Vector3
IL_10DC: ldc.r4 0
IL_10E1: ldc.r4 1
IL_10E6: ldc.r4 0
IL_10EB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_10F0: stobj UnityEngine.Vector3
IL_10F5: Label73
IL_10F5: ldloc.s 65 (RenderGroup+VertexArrays)
IL_10F7: ldc.i4.4
IL_10F8: and
IL_10F9: brfalse => Label74
IL_10FE: ldloc.s 68 (UnityEngine.Vector4[])
IL_1100: ldloc.s 83 (System.Int32)
IL_1102: ldelema UnityEngine.Vector4
IL_1107: ldobj UnityEngine.Vector4
IL_110C: stloc.s 87 (UnityEngine.Vector4)
IL_110E: ldloca.s 58 (UnityEngine.Matrix4x4)
IL_1110: ldloc.s 87 (UnityEngine.Vector4)
IL_1112: call static UnityEngine.Vector3
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_1117: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_111C: stloc.s 88 (UnityEngine.Vector3)
IL_111E: ldloca.s 87 (UnityEngine.Vector4)
IL_1120: ldloca.s 88 (UnityEngine.Vector3)
IL_1122: ldfld System.Single UnityEngine.Vector3::x
IL_1127: stfld System.Single UnityEngine.Vector4::x
IL_112C: ldloca.s 87 (UnityEngine.Vector4)
IL_112E: ldloca.s 88 (UnityEngine.Vector3)
IL_1130: ldfld System.Single UnityEngine.Vector3::y
IL_1135: stfld System.Single UnityEngine.Vector4::y
IL_113A: ldloca.s 87 (UnityEngine.Vector4)
IL_113C: ldloca.s 88 (UnityEngine.Vector3)
IL_113E: ldfld System.Single UnityEngine.Vector3::z
IL_1143: stfld System.Single UnityEngine.Vector4::z
IL_1148: ldarg.s 10
IL_114A: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_114F: ldarg.s 7
IL_1151: ldind.i4
IL_1152: ldelema UnityEngine.Vector4
IL_1157: ldloc.s 87 (UnityEngine.Vector4)
IL_1159: stobj UnityEngine.Vector4
IL_115E: br => Label75
IL_1163: Label74
IL_1163: ldarg.s 10
IL_1165: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_116A: ldarg.s 7
IL_116C: ldind.i4
IL_116D: ldelema UnityEngine.Vector4
IL_1172: ldc.r4 1
IL_1177: ldc.r4 0
IL_117C: ldc.r4 0
IL_1181: ldc.r4 1
IL_1186: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_118B: stobj UnityEngine.Vector4
IL_1190: Label75
IL_1190: ldloc.s 65 (RenderGroup+VertexArrays)
IL_1192: ldc.i4.8
IL_1193: and
IL_1194: brfalse => Label76
IL_1199: ldloc.s 69 (UnityEngine.Vector2[])
IL_119B: ldloc.s 83 (System.Int32)
IL_119D: ldelema UnityEngine.Vector2
IL_11A2: ldobj UnityEngine.Vector2
IL_11A7: stloc.s 89 (UnityEngine.Vector2)
IL_11A9: ldloca.s 89 (UnityEngine.Vector2)
IL_11AB: dup
IL_11AC: ldfld System.Single UnityEngine.Vector2::y
IL_11B1: ldarg.2
IL_11B2: ldfld System.Byte Building::m_baseHeight
IL_11B7: conv.r4
IL_11B8: mul
IL_11B9: stfld System.Single UnityEngine.Vector2::y
IL_11BE: ldarg.s 10
IL_11C0: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_11C5: ldarg.s 7
IL_11C7: ldind.i4
IL_11C8: ldelema UnityEngine.Vector2
IL_11CD: ldloc.s 89 (UnityEngine.Vector2)
IL_11CF: stobj UnityEngine.Vector2
IL_11D4: br => Label77
IL_11D9: Label76
IL_11D9: ldarg.s 10
IL_11DB: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_11E0: ldarg.s 7
IL_11E2: ldind.i4
IL_11E3: ldelema UnityEngine.Vector2
IL_11E8: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_11ED: stobj UnityEngine.Vector2
IL_11F2: Label77
IL_11F2: ldarg.s 10
IL_11F4: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_11F9: ldarg.s 7
IL_11FB: ldind.i4
IL_11FC: ldelema UnityEngine.Color32
IL_1201: ldloc.s 84 (UnityEngine.Color32)
IL_1203: stobj UnityEngine.Color32
IL_1208: ldarg.s 10
IL_120A: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_120F: ldarg.s 7
IL_1211: ldind.i4
IL_1212: ldelema UnityEngine.Vector2
IL_1217: ldloc.s 61 (UnityEngine.Vector2)
IL_1219: stobj UnityEngine.Vector2
IL_121E: ldloc.s 72 (UnityEngine.Color32[])
IL_1220: ldloc.s 83 (System.Int32)
IL_1222: ldelema UnityEngine.Color32
IL_1227: ldobj UnityEngine.Color32
IL_122C: stloc.s 90 (UnityEngine.Color32)
IL_122E: ldloc.s 71 (UnityEngine.Vector2[])
IL_1230: ldloc.s 83 (System.Int32)
IL_1232: ldelema UnityEngine.Vector2
IL_1237: ldobj UnityEngine.Vector2
IL_123C: stloc.s 91 (UnityEngine.Vector2)
IL_123E: ldloca.s 90 (UnityEngine.Color32)
IL_1240: ldfld System.Byte UnityEngine.Color32::r
IL_1245: ldc.i4 255
IL_124A: bne.un => Label78
IL_124F: ldloca.s 90 (UnityEngine.Color32)
IL_1251: ldfld System.Byte UnityEngine.Color32::g
IL_1256: ldc.i4 255
IL_125B: bne.un => Label79
IL_1260: ldloca.s 90 (UnityEngine.Color32)
IL_1262: ldfld System.Byte UnityEngine.Color32::b
IL_1267: ldc.i4.5
IL_1268: bgt => Label80
IL_126D: ldloca.s 91 (UnityEngine.Vector2)
IL_126F: ldloca.s 91 (UnityEngine.Vector2)
IL_1271: ldfld System.Single UnityEngine.Vector2::x
IL_1276: neg
IL_1277: stfld System.Single UnityEngine.Vector2::x
IL_127C: Label78
IL_127C: Label79
IL_127C: Label80
IL_127C: ldarg.s 10
IL_127E: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_1283: ldarg.s 7
IL_1285: ldind.i4
IL_1286: ldelema UnityEngine.Vector2
IL_128B: ldloc.s 70 (UnityEngine.Vector2[])
IL_128D: ldloc.s 83 (System.Int32)
IL_128F: ldelema UnityEngine.Vector2
IL_1294: ldobj UnityEngine.Vector2
IL_1299: stobj UnityEngine.Vector2
IL_129E: ldarg.s 10
IL_12A0: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_12A5: ldarg.s 7
IL_12A7: ldind.i4
IL_12A8: ldelema UnityEngine.Vector2
IL_12AD: ldloc.s 91 (UnityEngine.Vector2)
IL_12AF: stobj UnityEngine.Vector2
IL_12B4: ldarg.s 7
IL_12B6: ldarg.s 7
IL_12B8: ldind.i4
IL_12B9: ldc.i4.1
IL_12BA: add
IL_12BB: stind.i4
IL_12BC: ldloc.s 83 (System.Int32)
IL_12BE: ldc.i4.1
IL_12BF: add
IL_12C0: stloc.s 83 (System.Int32)
IL_12C2: Label70
IL_12C2: ldloc.s 83 (System.Int32)
IL_12C4: ldloc.s 73 (System.Int32)
IL_12C6: blt => Label81
IL_12CB: Label46
IL_12CB: Label48
IL_12CB: Label66
IL_12CB: Label67
IL_12CB: ldloc.s 53 (System.Int32)
IL_12CD: ldc.i4.1
IL_12CE: add
IL_12CF: stloc.s 53 (System.Int32)
IL_12D1: Label42
IL_12D1: ldloc.s 53 (System.Int32)
IL_12D3: ldloc.s 52 (System.Int32)
IL_12D5: blt => Label82
IL_12DA: Label38
IL_12DA: ldloc.s 49 (System.Int32)
IL_12DC: ldc.i4.1
IL_12DD: add
IL_12DE: stloc.s 49 (System.Int32)
IL_12E0: Label37
IL_12E0: ldloc.s 49 (System.Int32)
IL_12E2: ldarg.0
IL_12E3: ldfld BuildingInfo BuildingAI::m_info
IL_12E8: ldfld MeshInfo[] BuildingInfo::m_subMeshes
IL_12ED: ldlen
IL_12EE: conv.i4
IL_12EF: blt => Label83
IL_12F4: // end original
IL_12F4: Label0
IL_12F4: Label1
IL_12F4: Label36
IL_12F4: ldarg.0
IL_12F5: ldarg 6
IL_12F9: ldarg 14
IL_12FD: call static System.Void
TrueLodToggler.BuildingAiPopulateGroupDataPatch::Postfix(BuildingAI __instance,
System.Int32 layer, System.Single& maxInstanceDistance)
IL_1302: ret
DONE

### Harmony id=boformer.TrueLodToggler, version=2.0.0.9, location=E:\Games\data-


0000000015990080
### Started from static HarmonyLib.Harmony
CitiesHarmony.Harmony1201SelfPatcher::CreateHarmony(System.Object
oldHarmonyInstance), location E:\Games\data-000000001475B980
### At 2022-11-05 01.22.26
### Patch: virtual System.Void BuildingInfo::RefreshLevelOfDetail()
### Replacement: static System.Void
BuildingInfo::RefreshLevelOfDetail_Patch1(BuildingInfo this)
IL_0000: Local var 0: System.Int32
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldfld UnityEngine.Mesh BuildingInfoBase::m_mesh
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: ldarg.0
IL_0013: ldfld BuildingInfoGen BuildingInfoBase::m_generatedInfo
IL_0018: ldfld UnityEngine.Vector3 BuildingInfoGen::m_max
IL_001D: ldarg.0
IL_001E: ldfld BuildingInfoGen BuildingInfoBase::m_generatedInfo
IL_0023: ldfld UnityEngine.Vector3 BuildingInfoGen::m_min
IL_0028: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_002D: call System.Void
BuildingInfoBase::RefreshLevelOfDetail(UnityEngine.Vector3 size)
IL_0032: Label0
IL_0032: ldarg.0
IL_0033: ldfld MeshInfo[] BuildingInfo::m_subMeshes
IL_0038: brfalse => Label1
IL_003D: ldc.i4.0
IL_003E: stloc.0
IL_003F: br => Label2
IL_0044: Label3
IL_0044: ldarg.0
IL_0045: ldfld MeshInfo[] BuildingInfo::m_subMeshes
IL_004A: ldloc.0
IL_004B: ldelem.ref
IL_004C: ldfld BuildingInfoBase MeshInfo::m_subInfo
IL_0051: callvirt virtual System.Void PrefabInfo::RefreshLevelOfDetail()
IL_0056: ldloc.0
IL_0057: ldc.i4.1
IL_0058: add
IL_0059: stloc.0
IL_005A: Label2
IL_005A: ldloc.0
IL_005B: ldarg.0
IL_005C: ldfld MeshInfo[] BuildingInfo::m_subMeshes
IL_0061: ldlen
IL_0062: conv.i4
IL_0063: blt => Label3
IL_0068: // end original
IL_0068: Label1
IL_0068: ldarg.0
IL_0069: call static System.Void
TrueLodToggler.BuildingInfoRefreshLevelOfDetailPatch::Postfix(BuildingInfo
__instance)
IL_006E: ret
DONE

### Harmony id=boformer.TrueLodToggler, version=2.0.0.9, location=E:\Games\data-


0000000015990080
### Started from static HarmonyLib.Harmony
CitiesHarmony.Harmony1201SelfPatcher::CreateHarmony(System.Object
oldHarmonyInstance), location E:\Games\data-000000001475B980
### At 2022-11-05 01.22.26
### Patch: virtual System.Void BuildingInfoSub::RefreshLevelOfDetail()
### Replacement: static System.Void
BuildingInfoSub::RefreshLevelOfDetail_Patch1(BuildingInfoSub this)
IL_0000: Local var 0: System.Int32
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldfld UnityEngine.Mesh BuildingInfoBase::m_mesh
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: ldarg.0
IL_0013: ldfld BuildingInfoGen BuildingInfoBase::m_generatedInfo
IL_0018: ldfld UnityEngine.Vector3 BuildingInfoGen::m_max
IL_001D: ldarg.0
IL_001E: ldfld BuildingInfoGen BuildingInfoBase::m_generatedInfo
IL_0023: ldfld UnityEngine.Vector3 BuildingInfoGen::m_min
IL_0028: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_002D: call System.Void
BuildingInfoBase::RefreshLevelOfDetail(UnityEngine.Vector3 size)
IL_0032: Label0
IL_0032: ldarg.0
IL_0033: ldfld MeshInfo[] BuildingInfoSub::m_subMeshes
IL_0038: brfalse => Label1
IL_003D: ldc.i4.0
IL_003E: stloc.0
IL_003F: br => Label2
IL_0044: Label3
IL_0044: ldarg.0
IL_0045: ldfld MeshInfo[] BuildingInfoSub::m_subMeshes
IL_004A: ldloc.0
IL_004B: ldelem.ref
IL_004C: ldfld BuildingInfoBase MeshInfo::m_subInfo
IL_0051: callvirt virtual System.Void PrefabInfo::RefreshLevelOfDetail()
IL_0056: ldloc.0
IL_0057: ldc.i4.1
IL_0058: add
IL_0059: stloc.0
IL_005A: Label2
IL_005A: ldloc.0
IL_005B: ldarg.0
IL_005C: ldfld MeshInfo[] BuildingInfoSub::m_subMeshes
IL_0061: ldlen
IL_0062: conv.i4
IL_0063: blt => Label3
IL_0068: // end original
IL_0068: Label1
IL_0068: ldarg.0
IL_0069: call static System.Void
TrueLodToggler.BuildingInfoSubRefreshLevelOfDetailPatch::Postfix(BuildingInfoSub
__instance)
IL_006E: ret
DONE

### Harmony id=boformer.TrueLodToggler, version=2.0.0.9, location=E:\Games\data-


0000000015990080
### Started from static HarmonyLib.Harmony
CitiesHarmony.Harmony1201SelfPatcher::CreateHarmony(System.Object
oldHarmonyInstance), location E:\Games\data-000000001475B980
### At 2022-11-05 01.22.26
### Patch: virtual System.Void NetManager::PopulateGroupData(System.Int32 groupX,
System.Int32 groupZ, System.Int32 layer, System.Int32& vertexIndex, System.Int32&
triangleIndex, UnityEngine.Vector3 groupPosition, MeshData data,
UnityEngine.Vector3& min, UnityEngine.Vector3& max, System.Single&
maxRenderDistance, System.Single& maxInstanceDistance, System.Boolean&
requireSurfaceMaps)
### Replacement: static System.Void NetManager::PopulateGroupData_Patch1(NetManager
this, System.Int32 groupX, System.Int32 groupZ, System.Int32 layer, System.Int32&
vertexIndex, System.Int32& triangleIndex, UnityEngine.Vector3 groupPosition,
MeshData data, UnityEngine.Vector3& min, UnityEngine.Vector3& max, System.Single&
maxRenderDistance, System.Single& maxInstanceDistance, System.Boolean&
requireSurfaceMaps)
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.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.Int32
IL_0000: Local var 12: System.UInt16
IL_0000: Local var 13: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldc.i4 270
IL_0006: mul
IL_0007: ldc.i4.s 45
IL_0009: div
IL_000A: stloc.0
IL_000B: ldarg.2
IL_000C: ldc.i4 270
IL_0011: mul
IL_0012: ldc.i4.s 45
IL_0014: div
IL_0015: stloc.1
IL_0016: ldarg.1
IL_0017: ldc.i4.1
IL_0018: add
IL_0019: ldc.i4 270
IL_001E: mul
IL_001F: ldc.i4.s 45
IL_0021: div
IL_0022: ldc.i4.1
IL_0023: sub
IL_0024: stloc.2
IL_0025: ldarg.2
IL_0026: ldc.i4.1
IL_0027: add
IL_0028: ldc.i4 270
IL_002D: mul
IL_002E: ldc.i4.s 45
IL_0030: div
IL_0031: ldc.i4.1
IL_0032: sub
IL_0033: stloc.3
IL_0034: ldloc.1
IL_0035: stloc.s 4 (System.Int32)
IL_0037: br => Label0
IL_003C: Label7
IL_003C: ldloc.0
IL_003D: stloc.s 5 (System.Int32)
IL_003F: br => Label1
IL_0044: Label6
IL_0044: ldloc.s 4 (System.Int32)
IL_0046: ldc.i4 270
IL_004B: mul
IL_004C: ldloc.s 5 (System.Int32)
IL_004E: add
IL_004F: stloc.s 6 (System.Int32)
IL_0051: ldarg.0
IL_0052: ldfld System.UInt16[] NetManager::m_nodeGrid
IL_0057: ldloc.s 6 (System.Int32)
IL_0059: ldelem.u2
IL_005A: stloc.s 7 (System.UInt16)
IL_005C: ldc.i4.0
IL_005D: stloc.s 8 (System.Int32)
IL_005F: br => Label2
IL_0064: Label5
IL_0064: ldarg.0
IL_0065: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_006A: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_006F: ldloc.s 7 (System.UInt16)
IL_0071: ldelema NetNode
IL_0076: ldloc.s 7 (System.UInt16)
IL_0078: ldarg.1
IL_0079: ldarg.2
IL_007A: ldarg.3
IL_007B: ldarg.s 4
IL_007D: ldarg.s 5
IL_007F: ldarg.s 6
IL_0081: ldarg.s 7
IL_0083: ldarg.s 8
IL_0085: ldarg.s 9
IL_0087: ldarg.s 10
IL_0089: ldarg.s 11
IL_008B: ldarg.s 12
IL_008D: call System.Void NetNode::PopulateGroupData(System.UInt16 nodeID,
System.Int32 groupX, System.Int32 groupZ, System.Int32 layer, System.Int32&
vertexIndex, System.Int32& triangleIndex, UnityEngine.Vector3 groupPosition,
MeshData data, UnityEngine.Vector3& min, UnityEngine.Vector3& max, System.Single&
maxRenderDistance, System.Single& maxInstanceDistance, System.Boolean&
requireSurfaceMaps)
IL_0092: ldarg.0
IL_0093: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0098: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_009D: ldloc.s 7 (System.UInt16)
IL_009F: ldelema NetNode
IL_00A4: ldfld System.UInt16 NetNode::m_nextGridNode
IL_00A9: stloc.s 7 (System.UInt16)
IL_00AB: ldloc.s 8 (System.Int32)
IL_00AD: ldc.i4.1
IL_00AE: add
IL_00AF: dup
IL_00B0: stloc.s 8 (System.Int32)
IL_00B2: ldc.i4 32768
IL_00B7: blt => Label3
IL_00BC: ldc.i4.1
IL_00BD: ldstr "Invalid list detected!\n"
IL_00C2: call static System.String System.Environment::get_StackTrace()
IL_00C7: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_00CC: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Error(LogChannel ll, System.String
msg)
IL_00D1: br => Label4
IL_00D6: Label2
IL_00D6: Label3
IL_00D6: ldloc.s 7 (System.UInt16)
IL_00D8: brtrue => Label5
IL_00DD: Label4
IL_00DD: ldloc.s 5 (System.Int32)
IL_00DF: ldc.i4.1
IL_00E0: add
IL_00E1: stloc.s 5 (System.Int32)
IL_00E3: Label1
IL_00E3: ldloc.s 5 (System.Int32)
IL_00E5: ldloc.2
IL_00E6: ble => Label6
IL_00EB: ldloc.s 4 (System.Int32)
IL_00ED: ldc.i4.1
IL_00EE: add
IL_00EF: stloc.s 4 (System.Int32)
IL_00F1: Label0
IL_00F1: ldloc.s 4 (System.Int32)
IL_00F3: ldloc.3
IL_00F4: ble => Label7
IL_00F9: ldloc.1
IL_00FA: stloc.s 9 (System.Int32)
IL_00FC: br => Label8
IL_0101: Label15
IL_0101: ldloc.0
IL_0102: stloc.s 10 (System.Int32)
IL_0104: br => Label9
IL_0109: Label14
IL_0109: ldloc.s 9 (System.Int32)
IL_010B: ldc.i4 270
IL_0110: mul
IL_0111: ldloc.s 10 (System.Int32)
IL_0113: add
IL_0114: stloc.s 11 (System.Int32)
IL_0116: ldarg.0
IL_0117: ldfld System.UInt16[] NetManager::m_segmentGrid
IL_011C: ldloc.s 11 (System.Int32)
IL_011E: ldelem.u2
IL_011F: stloc.s 12 (System.UInt16)
IL_0121: ldc.i4.0
IL_0122: stloc.s 13 (System.Int32)
IL_0124: br => Label10
IL_0129: Label13
IL_0129: ldarg.0
IL_012A: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_012F: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0134: ldloc.s 12 (System.UInt16)
IL_0136: ldelema NetSegment
IL_013B: ldloc.s 12 (System.UInt16)
IL_013D: ldarg.1
IL_013E: ldarg.2
IL_013F: ldarg.3
IL_0140: ldarg.s 4
IL_0142: ldarg.s 5
IL_0144: ldarg.s 6
IL_0146: ldarg.s 7
IL_0148: ldarg.s 8
IL_014A: ldarg.s 9
IL_014C: ldarg.s 10
IL_014E: ldarg.s 11
IL_0150: ldarg.s 12
IL_0152: call System.Void NetSegment::PopulateGroupData(System.UInt16
segmentID, System.Int32 groupX, System.Int32 groupZ, System.Int32 layer,
System.Int32& vertexIndex, System.Int32& triangleIndex, UnityEngine.Vector3
groupPosition, MeshData data, UnityEngine.Vector3& min, UnityEngine.Vector3& max,
System.Single& maxRenderDistance, System.Single& maxInstanceDistance,
System.Boolean& requireSurfaceMaps)
IL_0157: ldarg.0
IL_0158: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_015D: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0162: ldloc.s 12 (System.UInt16)
IL_0164: ldelema NetSegment
IL_0169: ldfld System.UInt16 NetSegment::m_nextGridSegment
IL_016E: stloc.s 12 (System.UInt16)
IL_0170: ldloc.s 13 (System.Int32)
IL_0172: ldc.i4.1
IL_0173: add
IL_0174: dup
IL_0175: stloc.s 13 (System.Int32)
IL_0177: ldc.i4 36864
IL_017C: blt => Label11
IL_0181: ldc.i4.1
IL_0182: ldstr "Invalid list detected!\n"
IL_0187: call static System.String System.Environment::get_StackTrace()
IL_018C: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_0191: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Error(LogChannel ll, System.String
msg)
IL_0196: br => Label12
IL_019B: Label10
IL_019B: Label11
IL_019B: ldloc.s 12 (System.UInt16)
IL_019D: brtrue => Label13
IL_01A2: Label12
IL_01A2: ldloc.s 10 (System.Int32)
IL_01A4: ldc.i4.1
IL_01A5: add
IL_01A6: stloc.s 10 (System.Int32)
IL_01A8: Label9
IL_01A8: ldloc.s 10 (System.Int32)
IL_01AA: ldloc.2
IL_01AB: ble => Label14
IL_01B0: ldloc.s 9 (System.Int32)
IL_01B2: ldc.i4.1
IL_01B3: add
IL_01B4: stloc.s 9 (System.Int32)
IL_01B6: Label8
IL_01B6: ldloc.s 9 (System.Int32)
IL_01B8: ldloc.3
IL_01B9: ble => Label15
IL_01BE: // end original
IL_01BE: ldarg 3
IL_01C2: ldarg 11
IL_01C6: call static System.Void
TrueLodToggler.NetManagerPopulateGroupDataPatch::Postfix(System.Int32 layer,
System.Single& maxInstanceDistance)
IL_01CB: ret
DONE

### Harmony id=boformer.TrueLodToggler, version=2.0.0.9, location=E:\Games\data-


0000000015990080
### Started from static HarmonyLib.Harmony
CitiesHarmony.Harmony1201SelfPatcher::CreateHarmony(System.Object
oldHarmonyInstance), location E:\Games\data-000000001475B980
### At 2022-11-05 01.22.26
### Patch: virtual System.Void NetInfo::RefreshLevelOfDetail()
### Replacement: static System.Void NetInfo::RefreshLevelOfDetail_Patch1(NetInfo
this)
IL_0000: Local var 0: System.Single
IL_0000: Local var 1: System.Single
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: NetLaneProps
IL_0000: Local var 6: System.Int32
IL_0000: // start original
IL_0000: call static System.Single RenderManager::get_LevelOfDetailFactor()
IL_0005: stloc.0
IL_0006: ldc.r4 100
IL_000B: ldloc.0
IL_000C: ldarg.0
IL_000D: ldfld System.Single NetInfo::m_halfWidth
IL_0012: ldc.r4 50
IL_0017: mul
IL_0018: ldarg.0
IL_0019: ldfld System.Single NetInfo::m_maxHeight
IL_001E: ldarg.0
IL_001F: ldfld System.Single NetInfo::m_minHeight
IL_0024: sub
IL_0025: ldc.r4 80
IL_002A: mul
IL_002B: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0030: mul
IL_0031: add
IL_0032: ldc.r4 100
IL_0037: ldc.r4 1000
IL_003C: call static System.Single UnityEngine.Mathf::Clamp(System.Single
value, System.Single min, System.Single max)
IL_0041: stloc.1
IL_0042: ldarg.0
IL_0043: ldfld Segment[] NetInfo::m_segments
IL_0048: brfalse => Label0
IL_004D: ldc.i4.0
IL_004E: stloc.2
IL_004F: br => Label1
IL_0054: Label4
IL_0054: ldarg.0
IL_0055: ldfld Segment[] NetInfo::m_segments
IL_005A: ldloc.2
IL_005B: ldelem.ref
IL_005C: ldfld UnityEngine.Mesh Segment::m_lodMesh
IL_0061: ldnull
IL_0062: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0067: brfalse => Label2
IL_006C: ldarg.0
IL_006D: ldfld Segment[] NetInfo::m_segments
IL_0072: ldloc.2
IL_0073: ldelem.ref
IL_0074: ldloc.1
IL_0075: stfld System.Single Segment::m_lodRenderDistance
IL_007A: br => Label3
IL_007F: Label2
IL_007F: ldarg.0
IL_0080: ldfld Segment[] NetInfo::m_segments
IL_0085: ldloc.2
IL_0086: ldelem.ref
IL_0087: ldc.r4 100000
IL_008C: stfld System.Single Segment::m_lodRenderDistance
IL_0091: Label3
IL_0091: ldloc.2
IL_0092: ldc.i4.1
IL_0093: add
IL_0094: stloc.2
IL_0095: Label1
IL_0095: ldloc.2
IL_0096: ldarg.0
IL_0097: ldfld Segment[] NetInfo::m_segments
IL_009C: ldlen
IL_009D: conv.i4
IL_009E: blt => Label4
IL_00A3: Label0
IL_00A3: ldarg.0
IL_00A4: ldfld Node[] NetInfo::m_nodes
IL_00A9: brfalse => Label5
IL_00AE: ldc.i4.0
IL_00AF: stloc.3
IL_00B0: br => Label6
IL_00B5: Label9
IL_00B5: ldarg.0
IL_00B6: ldfld Node[] NetInfo::m_nodes
IL_00BB: ldloc.3
IL_00BC: ldelem.ref
IL_00BD: ldfld UnityEngine.Mesh Node::m_lodMesh
IL_00C2: ldnull
IL_00C3: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_00C8: brfalse => Label7
IL_00CD: ldarg.0
IL_00CE: ldfld Node[] NetInfo::m_nodes
IL_00D3: ldloc.3
IL_00D4: ldelem.ref
IL_00D5: ldloc.1
IL_00D6: stfld System.Single Node::m_lodRenderDistance
IL_00DB: br => Label8
IL_00E0: Label7
IL_00E0: ldarg.0
IL_00E1: ldfld Node[] NetInfo::m_nodes
IL_00E6: ldloc.3
IL_00E7: ldelem.ref
IL_00E8: ldc.r4 100000
IL_00ED: stfld System.Single Node::m_lodRenderDistance
IL_00F2: Label8
IL_00F2: ldloc.3
IL_00F3: ldc.i4.1
IL_00F4: add
IL_00F5: stloc.3
IL_00F6: Label6
IL_00F6: ldloc.3
IL_00F7: ldarg.0
IL_00F8: ldfld Node[] NetInfo::m_nodes
IL_00FD: ldlen
IL_00FE: conv.i4
IL_00FF: blt => Label9
IL_0104: Label5
IL_0104: ldarg.0
IL_0105: ldc.r4 0
IL_010A: stfld System.Single NetInfo::m_maxPropDistance
IL_010F: ldarg.0
IL_0110: ldfld Lane[] NetInfo::m_lanes
IL_0115: brfalse => Label10
IL_011A: ldc.i4.0
IL_011B: stloc.s 4 (System.Int32)
IL_011D: br => Label11
IL_0122: Label17
IL_0122: ldarg.0
IL_0123: ldfld Lane[] NetInfo::m_lanes
IL_0128: ldloc.s 4 (System.Int32)
IL_012A: ldelem.ref
IL_012B: ldfld NetLaneProps Lane::m_laneProps
IL_0130: stloc.s 5 (NetLaneProps)
IL_0132: ldloc.s 5 (NetLaneProps)
IL_0134: ldnull
IL_0135: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_013A: brfalse => Label12
IL_013F: ldloc.s 5 (NetLaneProps)
IL_0141: ldfld Prop[] NetLaneProps::m_props
IL_0146: brfalse => Label13
IL_014B: ldc.i4.0
IL_014C: stloc.s 6 (System.Int32)
IL_014E: br => Label14
IL_0153: Label16
IL_0153: ldloc.s 5 (NetLaneProps)
IL_0155: ldfld Prop[] NetLaneProps::m_props
IL_015A: ldloc.s 6 (System.Int32)
IL_015C: ldelem.ref
IL_015D: ldfld PropInfo Prop::m_finalProp
IL_0162: ldnull
IL_0163: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0168: brfalse => Label15
IL_016D: ldarg.0
IL_016E: ldarg.0
IL_016F: ldfld System.Single NetInfo::m_maxPropDistance
IL_0174: ldloc.s 5 (NetLaneProps)
IL_0176: ldfld Prop[] NetLaneProps::m_props
IL_017B: ldloc.s 6 (System.Int32)
IL_017D: ldelem.ref
IL_017E: ldfld PropInfo Prop::m_finalProp
IL_0183: ldfld System.Single PropInfo::m_maxRenderDistance
IL_0188: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_018D: stfld System.Single NetInfo::m_maxPropDistance
IL_0192: Label15
IL_0192: ldloc.s 6 (System.Int32)
IL_0194: ldc.i4.1
IL_0195: add
IL_0196: stloc.s 6 (System.Int32)
IL_0198: Label14
IL_0198: ldloc.s 6 (System.Int32)
IL_019A: ldloc.s 5 (NetLaneProps)
IL_019C: ldfld Prop[] NetLaneProps::m_props
IL_01A1: ldlen
IL_01A2: conv.i4
IL_01A3: blt => Label16
IL_01A8: Label12
IL_01A8: Label13
IL_01A8: ldloc.s 4 (System.Int32)
IL_01AA: ldc.i4.1
IL_01AB: add
IL_01AC: stloc.s 4 (System.Int32)
IL_01AE: Label11
IL_01AE: ldloc.s 4 (System.Int32)
IL_01B0: ldarg.0
IL_01B1: ldfld Lane[] NetInfo::m_lanes
IL_01B6: ldlen
IL_01B7: conv.i4
IL_01B8: blt => Label17
IL_01BD: // end original
IL_01BD: Label10
IL_01BD: ldarg.0
IL_01BE: call static System.Void
TrueLodToggler.NetInfoRefreshLevelOfDetailPatch::Postfix(NetInfo __instance)
IL_01C3: ret
DONE

### Harmony id=boformer.TrueLodToggler, version=2.0.0.9, location=E:\Games\data-


0000000015990080
### Started from static HarmonyLib.Harmony
CitiesHarmony.Harmony1201SelfPatcher::CreateHarmony(System.Object
oldHarmonyInstance), location E:\Games\data-000000001475B980
### At 2022-11-05 01.22.26
### Patch: virtual System.Void VehicleInfo::RefreshLevelOfDetail()
### Replacement: static System.Void
VehicleInfo::RefreshLevelOfDetail_Patch1(VehicleInfo this)
IL_0000: Local var 0: System.Int32
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldfld UnityEngine.Mesh VehicleInfoBase::m_mesh
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: ldarg.0
IL_0013: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo
IL_0018: ldfld UnityEngine.Vector3 VehicleInfoGen::m_size
IL_001D: call System.Void
VehicleInfoBase::RefreshLevelOfDetail(UnityEngine.Vector3 size)
IL_0022: Label0
IL_0022: ldarg.0
IL_0023: ldfld System.Boolean VehicleInfo::m_isLargeVehicle
IL_0028: brtrue => Label1
IL_002D: ldarg.0
IL_002E: ldarg.0
IL_002F: ldfld System.Single VehicleInfoBase::m_maxRenderDistance
IL_0034: ldc.r4 2000
IL_0039: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_003E: stfld System.Single VehicleInfoBase::m_maxRenderDistance
IL_0043: Label1
IL_0043: ldarg.0
IL_0044: ldfld UnityEngine.Mesh VehicleInfoBase::m_lodMesh
IL_0049: ldnull
IL_004A: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_004F: brfalse => Label2
IL_0054: ldarg.0
IL_0055: ldarg.0
IL_0056: ldfld System.Single VehicleInfoBase::m_maxRenderDistance
IL_005B: ldc.r4 0.2
IL_0060: mul
IL_0061: ldc.r4 1000
IL_0066: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_006B: stfld System.Single VehicleInfoBase::m_lodRenderDistance
IL_0070: br => Label3
IL_0075: Label2
IL_0075: ldarg.0
IL_0076: ldarg.0
IL_0077: ldfld System.Single VehicleInfoBase::m_maxRenderDistance
IL_007C: stfld System.Single VehicleInfoBase::m_lodRenderDistance
IL_0081: Label3
IL_0081: ldarg.0
IL_0082: ldfld MeshInfo[] VehicleInfo::m_subMeshes
IL_0087: brfalse => Label4
IL_008C: ldc.i4.0
IL_008D: stloc.0
IL_008E: br => Label5
IL_0093: Label7
IL_0093: ldarg.0
IL_0094: ldfld MeshInfo[] VehicleInfo::m_subMeshes
IL_0099: ldloc.0
IL_009A: ldelem.ref
IL_009B: ldfld VehicleInfoBase MeshInfo::m_subInfo
IL_00A0: ldnull
IL_00A1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_00A6: brfalse => Label6
IL_00AB: ldarg.0
IL_00AC: ldfld MeshInfo[] VehicleInfo::m_subMeshes
IL_00B1: ldloc.0
IL_00B2: ldelem.ref
IL_00B3: ldfld VehicleInfoBase MeshInfo::m_subInfo
IL_00B8: callvirt virtual System.Void PrefabInfo::RefreshLevelOfDetail()
IL_00BD: Label6
IL_00BD: ldloc.0
IL_00BE: ldc.i4.1
IL_00BF: add
IL_00C0: stloc.0
IL_00C1: Label5
IL_00C1: ldloc.0
IL_00C2: ldarg.0
IL_00C3: ldfld MeshInfo[] VehicleInfo::m_subMeshes
IL_00C8: ldlen
IL_00C9: conv.i4
IL_00CA: blt => Label7
IL_00CF: // end original
IL_00CF: Label4
IL_00CF: ldarg.0
IL_00D0: call static System.Void
TrueLodToggler.VehicleInfoRefreshLevelOfDetailPatch::Postfix(VehicleInfo
__instance)
IL_00D5: ret
DONE

### Harmony id=boformer.TrueLodToggler, version=2.0.0.9, location=E:\Games\data-


0000000015990080
### Started from static HarmonyLib.Harmony
CitiesHarmony.Harmony1201SelfPatcher::CreateHarmony(System.Object
oldHarmonyInstance), location E:\Games\data-000000001475B980
### At 2022-11-05 01.22.26
### Patch: virtual System.Void VehicleInfoSub::RefreshLevelOfDetail()
### Replacement: static System.Void
VehicleInfoSub::RefreshLevelOfDetail_Patch1(VehicleInfoSub this)
IL_0000: Local var 0: UnityEngine.Bounds
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldfld UnityEngine.Mesh VehicleInfoBase::m_mesh
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: ldarg.0
IL_0013: ldfld UnityEngine.Mesh VehicleInfoBase::m_mesh
IL_0018: callvirt UnityEngine.Bounds UnityEngine.Mesh::get_bounds()
IL_001D: stloc.0
IL_001E: ldloca.s 0 (UnityEngine.Bounds)
IL_0020: call UnityEngine.Vector3 UnityEngine.Bounds::get_size()
IL_0025: call System.Void
VehicleInfoBase::RefreshLevelOfDetail(UnityEngine.Vector3 size)
IL_002A: // end original
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call static System.Void
TrueLodToggler.VehicleInfoSubRefreshLevelOfDetailPatch::Postfix(VehicleInfoSub
__instance)
IL_0030: ret
DONE

### Harmony id=de.viathinksoft.tmpe, version=2.0.0.9, location=E:\Games\data-


0000000015990080
### Started from System.Void TrafficManager.Patcher::Install(), location E:\Games\
data-0000000016967040
### At 2022-11-05 01.23.29
### 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::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.s => Label1
IL_001D: ldarg.0
IL_001E: ldarg 1
IL_0022: ldarg 3
IL_0026: call static System.Boolean
TrafficManager.Patch._VehicleManager.CreateVehiclePatch::Prefix(VehicleManager
__instance, System.UInt16& vehicle, VehicleInfo info)
IL_002B: stloc 3 (System.Boolean)
IL_002F: nop
IL_0030: ldloc 3 (System.Boolean)
IL_0034: brfalse => Label0
IL_0039: // start original
IL_0039: ldarg.0
IL_003A: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_003F: ldloca.s 0 (System.UInt16)
IL_0041: ldarg.2
IL_0042: callvirt System.Boolean Array16`1<Vehicle>::CreateItem(System.UInt16&
item, ColossalFramework.Math.Randomizer& r)
IL_0047: brfalse => Label2
IL_004C: ldarg.1
IL_004D: ldloc.0
IL_004E: stind.i2
IL_004F: ldloca.s 1 (Vehicle+Frame)
IL_0051: ldarg.s 4
IL_0053: call static UnityEngine.Quaternion
UnityEngine.Quaternion::get_identity()
IL_0058: call System.Void Frame::.ctor(UnityEngine.Vector3 position,
UnityEngine.Quaternion rotation)
IL_005D: ldarg.0
IL_005E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0063: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0068: ldarg.1
IL_0069: ldind.u2
IL_006A: ldelema Vehicle
IL_006F: ldc.i4.1
IL_0070: stfld Flags Vehicle::m_flags
IL_0075: ldarg.0
IL_0076: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_007B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0080: ldarg.1
IL_0081: ldind.u2
IL_0082: ldelema Vehicle
IL_0087: ldc.i4.0
IL_0088: stfld Flags2 Vehicle::m_flags2
IL_008D: ldarg.s 6
IL_008F: brfalse => Label3
IL_0094: ldarg.0
IL_0095: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_009A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_009F: ldarg.1
IL_00A0: ldind.u2
IL_00A1: ldelema Vehicle
IL_00A6: dup
IL_00A7: ldfld Flags Vehicle::m_flags
IL_00AC: ldc.i4.s 32
IL_00AE: or
IL_00AF: stfld Flags Vehicle::m_flags
IL_00B4: Label3
IL_00B4: ldarg.s 7
IL_00B6: brfalse => Label4
IL_00BB: ldarg.0
IL_00BC: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00C1: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00C6: ldarg.1
IL_00C7: ldind.u2
IL_00C8: ldelema Vehicle
IL_00CD: dup
IL_00CE: ldfld Flags Vehicle::m_flags
IL_00D3: ldc.i4.s 16
IL_00D5: or
IL_00D6: stfld Flags Vehicle::m_flags
IL_00DB: Label4
IL_00DB: ldarg.0
IL_00DC: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00E1: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00E6: ldarg.1
IL_00E7: ldind.u2
IL_00E8: ldelema Vehicle
IL_00ED: ldarg.3
IL_00EE: call System.Void Vehicle::set_Info(VehicleInfo value)
IL_00F3: ldarg.0
IL_00F4: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00F9: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00FE: ldarg.1
IL_00FF: ldind.u2
IL_0100: ldelema Vehicle
IL_0105: ldloc.1
IL_0106: stfld Frame Vehicle::m_frame0
IL_010B: ldarg.0
IL_010C: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0111: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0116: ldarg.1
IL_0117: ldind.u2
IL_0118: ldelema Vehicle
IL_011D: ldloc.1
IL_011E: stfld Frame Vehicle::m_frame1
IL_0123: ldarg.0
IL_0124: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0129: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_012E: ldarg.1
IL_012F: ldind.u2
IL_0130: ldelema Vehicle
IL_0135: ldloc.1
IL_0136: stfld Frame Vehicle::m_frame2
IL_013B: ldarg.0
IL_013C: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0141: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0146: ldarg.1
IL_0147: ldind.u2
IL_0148: ldelema Vehicle
IL_014D: ldloc.1
IL_014E: stfld Frame Vehicle::m_frame3
IL_0153: ldarg.0
IL_0154: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0159: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_015E: ldarg.1
IL_015F: ldind.u2
IL_0160: ldelema Vehicle
IL_0165: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_016A: stfld UnityEngine.Vector4 Vehicle::m_targetPos0
IL_016F: ldarg.0
IL_0170: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0175: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_017A: ldarg.1
IL_017B: ldind.u2
IL_017C: ldelema Vehicle
IL_0181: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_0186: stfld UnityEngine.Vector4 Vehicle::m_targetPos1
IL_018B: ldarg.0
IL_018C: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0191: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0196: ldarg.1
IL_0197: ldind.u2
IL_0198: ldelema Vehicle
IL_019D: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_01A2: stfld UnityEngine.Vector4 Vehicle::m_targetPos2
IL_01A7: ldarg.0
IL_01A8: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01AD: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01B2: ldarg.1
IL_01B3: ldind.u2
IL_01B4: ldelema Vehicle
IL_01B9: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_01BE: stfld UnityEngine.Vector4 Vehicle::m_targetPos3
IL_01C3: ldarg.0
IL_01C4: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01C9: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01CE: ldarg.1
IL_01CF: ldind.u2
IL_01D0: ldelema Vehicle
IL_01D5: ldc.i4.0
IL_01D6: stfld System.UInt16 Vehicle::m_sourceBuilding
IL_01DB: ldarg.0
IL_01DC: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01E1: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01E6: ldarg.1
IL_01E7: ldind.u2
IL_01E8: ldelema Vehicle
IL_01ED: ldc.i4.0
IL_01EE: stfld System.UInt16 Vehicle::m_targetBuilding
IL_01F3: ldarg.0
IL_01F4: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01F9: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01FE: ldarg.1
IL_01FF: ldind.u2
IL_0200: ldelema Vehicle
IL_0205: ldarg.s 5
IL_0207: conv.u1
IL_0208: stfld System.Byte Vehicle::m_transferType
IL_020D: ldarg.0
IL_020E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0213: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0218: ldarg.1
IL_0219: ldind.u2
IL_021A: ldelema Vehicle
IL_021F: ldc.i4.0
IL_0220: stfld System.UInt16 Vehicle::m_transferSize
IL_0225: ldarg.0
IL_0226: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_022B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0230: ldarg.1
IL_0231: ldind.u2
IL_0232: ldelema Vehicle
IL_0237: ldc.i4.0
IL_0238: stfld System.Byte Vehicle::m_waitCounter
IL_023D: ldarg.0
IL_023E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0243: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0248: ldarg.1
IL_0249: ldind.u2
IL_024A: ldelema Vehicle
IL_024F: ldc.i4.0
IL_0250: stfld System.Byte Vehicle::m_blockCounter
IL_0255: ldarg.0
IL_0256: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_025B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0260: ldarg.1
IL_0261: ldind.u2
IL_0262: ldelema Vehicle
IL_0267: ldc.i4.0
IL_0268: stfld System.UInt16 Vehicle::m_nextGridVehicle
IL_026D: ldarg.0
IL_026E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0273: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0278: ldarg.1
IL_0279: ldind.u2
IL_027A: ldelema Vehicle
IL_027F: ldc.i4.0
IL_0280: stfld System.UInt16 Vehicle::m_nextOwnVehicle
IL_0285: ldarg.0
IL_0286: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_028B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0290: ldarg.1
IL_0291: ldind.u2
IL_0292: ldelema Vehicle
IL_0297: ldc.i4.0
IL_0298: stfld System.UInt16 Vehicle::m_nextGuestVehicle
IL_029D: ldarg.0
IL_029E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02A3: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02A8: ldarg.1
IL_02A9: ldind.u2
IL_02AA: ldelema Vehicle
IL_02AF: ldc.i4.0
IL_02B0: stfld System.UInt16 Vehicle::m_nextLineVehicle
IL_02B5: ldarg.0
IL_02B6: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02BB: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02C0: ldarg.1
IL_02C1: ldind.u2
IL_02C2: ldelema Vehicle
IL_02C7: ldc.i4.0
IL_02C8: stfld System.UInt16 Vehicle::m_transportLine
IL_02CD: ldarg.0
IL_02CE: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02D3: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02D8: ldarg.1
IL_02D9: ldind.u2
IL_02DA: ldelema Vehicle
IL_02DF: ldc.i4.0
IL_02E0: stfld System.UInt16 Vehicle::m_leadingVehicle
IL_02E5: ldarg.0
IL_02E6: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02EB: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02F0: ldarg.1
IL_02F1: ldind.u2
IL_02F2: ldelema Vehicle
IL_02F7: ldc.i4.0
IL_02F8: stfld System.UInt16 Vehicle::m_trailingVehicle
IL_02FD: ldarg.0
IL_02FE: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0303: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0308: ldarg.1
IL_0309: ldind.u2
IL_030A: ldelema Vehicle
IL_030F: ldc.i4.0
IL_0310: stfld System.UInt16 Vehicle::m_cargoParent
IL_0315: ldarg.0
IL_0316: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_031B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0320: ldarg.1
IL_0321: ldind.u2
IL_0322: ldelema Vehicle
IL_0327: ldc.i4.0
IL_0328: stfld System.UInt16 Vehicle::m_firstCargo
IL_032D: ldarg.0
IL_032E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0333: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0338: ldarg.1
IL_0339: ldind.u2
IL_033A: ldelema Vehicle
IL_033F: ldc.i4.0
IL_0340: stfld System.UInt16 Vehicle::m_nextCargo
IL_0345: ldarg.0
IL_0346: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_034B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0350: ldarg.1
IL_0351: ldind.u2
IL_0352: ldelema Vehicle
IL_0357: ldc.i4.0
IL_0358: stfld System.UInt32 Vehicle::m_citizenUnits
IL_035D: ldarg.0
IL_035E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0363: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0368: ldarg.1
IL_0369: ldind.u2
IL_036A: ldelema Vehicle
IL_036F: ldc.i4.0
IL_0370: stfld System.UInt32 Vehicle::m_path
IL_0375: ldarg.0
IL_0376: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_037B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0380: ldarg.1
IL_0381: ldind.u2
IL_0382: ldelema Vehicle
IL_0387: ldc.i4.0
IL_0388: stfld System.Byte Vehicle::m_lastFrame
IL_038D: ldarg.0
IL_038E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0393: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0398: ldarg.1
IL_0399: ldind.u2
IL_039A: ldelema Vehicle
IL_039F: ldc.i4.0
IL_03A0: stfld System.Byte Vehicle::m_pathPositionIndex
IL_03A5: ldarg.0
IL_03A6: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03AB: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03B0: ldarg.1
IL_03B1: ldind.u2
IL_03B2: ldelema Vehicle
IL_03B7: ldc.i4.0
IL_03B8: stfld System.Byte Vehicle::m_lastPathOffset
IL_03BD: ldarg.0
IL_03BE: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03C3: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03C8: ldarg.1
IL_03C9: ldind.u2
IL_03CA: ldelema Vehicle
IL_03CF: ldc.i4.0
IL_03D0: stfld System.Byte Vehicle::m_gateIndex
IL_03D5: ldarg.0
IL_03D6: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03DB: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03E0: ldarg.1
IL_03E1: ldind.u2
IL_03E2: ldelema Vehicle
IL_03E7: ldc.i4.0
IL_03E8: stfld System.UInt16 Vehicle::m_waterSource
IL_03ED: ldarg.0
IL_03EE: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03F3: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03F8: ldarg.1
IL_03F9: ldind.u2
IL_03FA: ldelema Vehicle
IL_03FF: ldc.i4.0
IL_0400: stfld System.UInt16 Vehicle::m_touristCount
IL_0405: ldarg.0
IL_0406: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_040B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0410: ldarg.1
IL_0411: ldind.u2
IL_0412: ldelema Vehicle
IL_0417: ldc.i4.0
IL_0418: stfld System.UInt16 Vehicle::m_custom
IL_041D: ldarg.3
IL_041E: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_0423: ldarg.1
IL_0424: ldind.u2
IL_0425: ldarg.0
IL_0426: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_042B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0430: ldarg.1
IL_0431: ldind.u2
IL_0432: ldelema Vehicle
IL_0437: callvirt virtual System.Void VehicleAI::CreateVehicle(System.UInt16
vehicleID, Vehicle& data)
IL_043C: ldarg.3
IL_043D: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_0442: ldarg.1
IL_0443: ldind.u2
IL_0444: ldarg.0
IL_0445: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_044A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_044F: ldarg.1
IL_0450: ldind.u2
IL_0451: ldelema Vehicle
IL_0456: ldarg.0
IL_0457: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_045C: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0461: ldarg.1
IL_0462: ldind.u2
IL_0463: ldelema Vehicle
IL_0468: ldflda Frame Vehicle::m_frame0
IL_046D: callvirt virtual System.Void VehicleAI::FrameDataUpdated(System.UInt16
vehicleID, Vehicle& vehicleData, Frame& frameData)
IL_0472: ldarg.0
IL_0473: ldarg.0
IL_0474: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0479: callvirt System.UInt32 Array16`1<Vehicle>::ItemCount()
IL_047E: ldc.i4.1
IL_047F: sub
IL_0480: stfld System.Int32 VehicleManager::m_vehicleCount
IL_0485: ldc.i4.1
IL_0486: br => Label5
IL_048B: Label2
IL_048B: ldarg.1
IL_048C: ldc.i4.0
IL_048D: stind.i2
IL_048E: ldc.i4.0
IL_048F: // end original
IL_048F: Label5
IL_048F: stloc 2 (System.Boolean)
IL_0493: Label0
IL_0493: ldarg.0
IL_0494: ldloc 2 (System.Boolean)
IL_0498: ldarg 1
IL_049C: call static System.Void
TrafficManager.Patch._VehicleManager.CreateVehiclePatch::Postfix(VehicleManager
__instance, System.Boolean __result, System.UInt16& vehicle)
IL_04A1: ldloc 2 (System.Boolean)
IL_04A5: ret
DONE

### Patch: System.Void VehicleManager::ReleaseVehicle(System.UInt16 vehicle)


### Replacement: static System.Void
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<Vehicle> VehicleManager::m_vehicles
IL_0012: ldfld Vehicle[] Array16`1<Vehicle>::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::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<NetSegment> NetManager::m_segments
IL_0030: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0047: ldfld NetSegment[] Array16`1<NetSegment>::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::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<NetNode> NetManager::m_nodes
IL_0006: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0021: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_00CD: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_00F3: ldfld NetSegment[] Array16`1<NetSegment>::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<LogChannel>::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 RoadBaseAI::TrafficLightSimulationStep(System.UInt16


nodeID, NetNode& data)
### Replacement: static System.Void
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.Int32
IL_0000: Local var 38: System.UInt16
IL_0000: Local var 39: RoadBaseAI/TrafficLightState
IL_0000: Local var 40: RoadBaseAI/TrafficLightState
IL_0000: Local var 41: UnityEngine.Vector3
IL_0000: Local var 42: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 42 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 42 (System.Boolean)
IL_000E: ldloc 42 (System.Boolean)
IL_0012: brfalse.s => Label1
IL_0014: ldnull
IL_0015: ldarg 0
IL_0019: ldarg 1
IL_001D: call static System.Boolean
TrafficManager.Patch._TrainTrackBase.LevelCrossingSimulationStepPatch::Prefix(Train
TrackBaseAI __instance, System.UInt16 nodeID, NetNode& data)
IL_0022: stloc 42 (System.Boolean)
IL_0026: nop
IL_0027: ldloc 42 (System.Boolean)
IL_002B: brfalse => Label0
IL_0030: // start original
IL_0030: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0035: stloc.0
IL_0036: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_003B: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0040: stloc.1
IL_0041: ldarg.1
IL_0042: ldfld System.Byte NetNode::m_maxWaitTime
IL_0047: ldc.i4.3
IL_0048: and
IL_0049: stloc.2
IL_004A: ldarg.1
IL_004B: ldfld System.Byte NetNode::m_maxWaitTime
IL_0050: ldc.i4.2
IL_0051: shr
IL_0052: ldc.i4.7
IL_0053: and
IL_0054: stloc.3
IL_0055: ldarg.1
IL_0056: ldfld System.Byte NetNode::m_maxWaitTime
IL_005B: ldc.i4.5
IL_005C: shr
IL_005D: stloc.s 4 (System.Int32)
IL_005F: ldc.i4.m1
IL_0060: stloc.s 5 (System.Int32)
IL_0062: ldc.i4.m1
IL_0063: stloc.s 6 (System.Int32)
IL_0065: ldc.i4.m1
IL_0066: stloc.s 7 (System.Int32)
IL_0068: ldc.i4.m1
IL_0069: stloc.s 8 (System.Int32)
IL_006B: ldc.i4.m1
IL_006C: stloc.s 9 (System.Int32)
IL_006E: ldc.i4.m1
IL_006F: stloc.s 10 (System.Int32)
IL_0071: ldc.i4.0
IL_0072: stloc.s 11 (System.Int32)
IL_0074: ldc.i4.0
IL_0075: stloc.s 12 (System.Int32)
IL_0077: ldc.i4.0
IL_0078: stloc.s 13 (System.Int32)
IL_007A: ldc.i4.0
IL_007B: stloc.s 14 (System.Int32)
IL_007D: ldc.i4.0
IL_007E: stloc.s 15 (System.Int32)
IL_0080: ldc.i4.0
IL_0081: stloc.s 16 (System.Int32)
IL_0083: br => Label2
IL_0088: Label24
IL_0088: ldarg.1
IL_0089: ldloc.s 16 (System.Int32)
IL_008B: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0090: stloc.s 17 (System.UInt16)
IL_0092: ldloc.s 17 (System.UInt16)
IL_0094: brfalse => Label3
IL_0099: ldc.i4.0
IL_009A: stloc.s 18 (System.Int32)
IL_009C: ldc.i4.0
IL_009D: stloc.s 19 (System.Int32)
IL_009F: ldloc.0
IL_00A0: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_00A5: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00AA: ldloc.s 17 (System.UInt16)
IL_00AC: ldelema NetSegment
IL_00B1: ldloc.s 17 (System.UInt16)
IL_00B3: ldc.i4.s 33
IL_00B5: ldc.i4 65601
IL_00BA: ldloca.s 18 (System.Int32)
IL_00BC: ldloca.s 19 (System.Int32)
IL_00BE: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_00C3: ldloc.0
IL_00C4: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_00C9: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00CE: ldloc.s 17 (System.UInt16)
IL_00D0: ldelema NetSegment
IL_00D5: ldfld System.UInt16 NetSegment::m_startNode
IL_00DA: ldarg.0
IL_00DB: ceq
IL_00DD: stloc.s 20 (System.Boolean)
IL_00DF: ldloc.s 20 (System.Boolean)
IL_00E1: brfalse => Label4
IL_00E6: ldloc.s 19 (System.Int32)
IL_00E8: ldc.i4.0
IL_00E9: ceq
IL_00EB: ldc.i4.0
IL_00EC: ceq
IL_00EE: br => Label5
IL_00F3: Label4
IL_00F3: ldloc.s 18 (System.Int32)
IL_00F5: ldc.i4.0
IL_00F6: ceq
IL_00F8: ldc.i4.0
IL_00F9: ceq
IL_00FB: Label5
IL_00FB: stloc.s 21 (System.Boolean)
IL_00FD: ldloc.s 20 (System.Boolean)
IL_00FF: brfalse => Label6
IL_0104: ldloc.s 18 (System.Int32)
IL_0106: ldc.i4.0
IL_0107: ceq
IL_0109: ldc.i4.0
IL_010A: ceq
IL_010C: br => Label7
IL_0111: Label6
IL_0111: ldloc.s 19 (System.Int32)
IL_0113: ldc.i4.0
IL_0114: ceq
IL_0116: ldc.i4.0
IL_0117: ceq
IL_0119: Label7
IL_0119: stloc.s 22 (System.Boolean)
IL_011B: ldloc.s 21 (System.Boolean)
IL_011D: brfalse => Label8
IL_0122: ldloc.s 11 (System.Int32)
IL_0124: ldc.i4.1
IL_0125: ldloc.s 16 (System.Int32)
IL_0127: ldc.i4.s 31
IL_0129: and
IL_012A: shl
IL_012B: or
IL_012C: stloc.s 11 (System.Int32)
IL_012E: Label8
IL_012E: ldloc.s 22 (System.Boolean)
IL_0130: brfalse => Label9
IL_0135: ldloc.s 12 (System.Int32)
IL_0137: ldc.i4.1
IL_0138: ldloc.s 16 (System.Int32)
IL_013A: ldc.i4.s 31
IL_013C: and
IL_013D: shl
IL_013E: or
IL_013F: stloc.s 12 (System.Int32)
IL_0141: ldloc.s 14 (System.Int32)
IL_0143: ldc.i4.1
IL_0144: add
IL_0145: stloc.s 14 (System.Int32)
IL_0147: Label9
IL_0147: ldarg.0
IL_0148: ldloc.0
IL_0149: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_014E: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0153: ldloc.s 17 (System.UInt16)
IL_0155: ldelema NetSegment
IL_015A: ldloc.1
IL_015B: ldc.i4 256
IL_0160: sub
IL_0161: ldloca.s 23 (RoadBaseAI+TrafficLightState)
IL_0163: ldloca.s 24 (RoadBaseAI+TrafficLightState)
IL_0165: ldloca.s 25 (System.Boolean)
IL_0167: ldloca.s 26 (System.Boolean)
IL_0169: 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_016E: ldloc.s 24 (RoadBaseAI+TrafficLightState)
IL_0170: ldc.i4.2
IL_0171: and
IL_0172: brfalse => Label10
IL_0177: ldloc.s 26 (System.Boolean)
IL_0179: brfalse => Label11
IL_017E: ldloc.s 8 (System.Int32)
IL_0180: ldc.i4.m1
IL_0181: bne.un => Label12
IL_0186: ldloc.s 16 (System.Int32)
IL_0188: stloc.s 8 (System.Int32)
IL_018A: Label12
IL_018A: ldloc.s 10 (System.Int32)
IL_018C: ldc.i4.m1
IL_018D: bne.un => Label13
IL_0192: ldloc.s 15 (System.Int32)
IL_0194: ldloc.s 4 (System.Int32)
IL_0196: blt => Label14
IL_019B: ldloc.s 16 (System.Int32)
IL_019D: stloc.s 10 (System.Int32)
IL_019F: Label10
IL_019F: Label11
IL_019F: Label13
IL_019F: Label14
IL_019F: ldloc.s 15 (System.Int32)
IL_01A1: ldc.i4.1
IL_01A2: add
IL_01A3: stloc.s 15 (System.Int32)
IL_01A5: ldloc.s 21 (System.Boolean)
IL_01A7: brtrue => Label15
IL_01AC: ldloc.s 25 (System.Boolean)
IL_01AE: brfalse => Label16
IL_01B3: Label15
IL_01B3: ldloc.s 23 (RoadBaseAI+TrafficLightState)
IL_01B5: ldc.i4.2
IL_01B6: and
IL_01B7: brtrue => Label17
IL_01BC: ldloc.s 16 (System.Int32)
IL_01BE: stloc.s 6 (System.Int32)
IL_01C0: ldloc.s 25 (System.Boolean)
IL_01C2: brfalse => Label18
IL_01C7: ldloc.s 16 (System.Int32)
IL_01C9: stloc.s 5 (System.Int32)
IL_01CB: Label18
IL_01CB: br => Label19
IL_01D0: Label17
IL_01D0: ldloc.s 25 (System.Boolean)
IL_01D2: brfalse => Label20
IL_01D7: ldloc.s 7 (System.Int32)
IL_01D9: ldc.i4.m1
IL_01DA: bne.un => Label21
IL_01DF: ldloc.s 16 (System.Int32)
IL_01E1: stloc.s 7 (System.Int32)
IL_01E3: Label21
IL_01E3: ldloc.s 9 (System.Int32)
IL_01E5: ldc.i4.m1
IL_01E6: bne.un => Label22
IL_01EB: ldloc.s 13 (System.Int32)
IL_01ED: ldloc.3
IL_01EE: blt => Label23
IL_01F3: ldloc.s 16 (System.Int32)
IL_01F5: stloc.s 9 (System.Int32)
IL_01F7: Label19
IL_01F7: Label20
IL_01F7: Label22
IL_01F7: Label23
IL_01F7: ldloc.s 13 (System.Int32)
IL_01F9: ldc.i4.1
IL_01FA: add
IL_01FB: stloc.s 13 (System.Int32)
IL_01FD: Label3
IL_01FD: Label16
IL_01FD: ldloc.s 16 (System.Int32)
IL_01FF: ldc.i4.1
IL_0200: add
IL_0201: stloc.s 16 (System.Int32)
IL_0203: Label2
IL_0203: ldloc.s 16 (System.Int32)
IL_0205: ldc.i4.8
IL_0206: blt => Label24
IL_020B: ldloc.s 9 (System.Int32)
IL_020D: ldc.i4.m1
IL_020E: bne.un => Label25
IL_0213: ldloc.s 7 (System.Int32)
IL_0215: stloc.s 9 (System.Int32)
IL_0217: Label25
IL_0217: ldloc.s 10 (System.Int32)
IL_0219: ldc.i4.m1
IL_021A: bne.un => Label26
IL_021F: ldloc.s 8 (System.Int32)
IL_0221: stloc.s 10 (System.Int32)
IL_0223: Label26
IL_0223: ldloc.s 6 (System.Int32)
IL_0225: ldc.i4.m1
IL_0226: beq => Label27
IL_022B: ldloc.s 5 (System.Int32)
IL_022D: ldc.i4.m1
IL_022E: beq => Label28
IL_0233: ldloc.2
IL_0234: ldc.i4.1
IL_0235: bgt => Label29
IL_023A: ldc.i4.m1
IL_023B: stloc.s 9 (System.Int32)
IL_023D: ldc.i4.m1
IL_023E: stloc.s 10 (System.Int32)
IL_0240: ldloc.2
IL_0241: ldc.i4.1
IL_0242: add
IL_0243: stloc.2
IL_0244: Label27
IL_0244: Label28
IL_0244: Label29
IL_0244: ldloc.s 10 (System.Int32)
IL_0246: ldc.i4.m1
IL_0247: beq => Label30
IL_024C: ldloc.s 9 (System.Int32)
IL_024E: ldc.i4.m1
IL_024F: beq => Label31
IL_0254: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0259: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_025E: ldc.i4.3
IL_025F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0264: brfalse => Label32
IL_0269: ldc.i4.m1
IL_026A: stloc.s 10 (System.Int32)
IL_026C: Label30
IL_026C: Label31
IL_026C: Label32
IL_026C: ldloc.s 9 (System.Int32)
IL_026E: ldc.i4.m1
IL_026F: beq => Label33
IL_0274: ldloc.s 9 (System.Int32)
IL_0276: stloc.s 6 (System.Int32)
IL_0278: Label33
IL_0278: ldloc.s 10 (System.Int32)
IL_027A: ldloc.s 6 (System.Int32)
IL_027C: bne.un => Label34
IL_0281: ldc.i4.m1
IL_0282: stloc.s 6 (System.Int32)
IL_0284: Label34
IL_0284: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_0289: stloc.s 27 (UnityEngine.Vector3)
IL_028B: ldloc.s 10 (System.Int32)
IL_028D: ldc.i4.m1
IL_028E: beq => Label35
IL_0293: ldarg.1
IL_0294: ldloc.s 10 (System.Int32)
IL_0296: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_029B: stloc.s 28 (System.UInt16)
IL_029D: ldloc.0
IL_029E: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02A3: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02A8: ldloc.s 28 (System.UInt16)
IL_02AA: ldelema NetSegment
IL_02AF: ldarg.0
IL_02B0: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_02B5: stloc.s 27 (UnityEngine.Vector3)
IL_02B7: ldloc.s 6 (System.Int32)
IL_02B9: ldc.i4.m1
IL_02BA: beq => Label36
IL_02BF: ldarg.1
IL_02C0: ldloc.s 6 (System.Int32)
IL_02C2: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_02C7: stloc.s 28 (System.UInt16)
IL_02C9: ldloc.0
IL_02CA: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02CF: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02D4: ldloc.s 28 (System.UInt16)
IL_02D6: ldelema NetSegment
IL_02DB: ldarg.0
IL_02DC: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_02E1: stloc.s 29 (UnityEngine.Vector3)
IL_02E3: ldloca.s 29 (UnityEngine.Vector3)
IL_02E5: ldfld System.Single UnityEngine.Vector3::x
IL_02EA: ldloca.s 27 (UnityEngine.Vector3)
IL_02EC: ldfld System.Single UnityEngine.Vector3::x
IL_02F1: mul
IL_02F2: ldloca.s 29 (UnityEngine.Vector3)
IL_02F4: ldfld System.Single UnityEngine.Vector3::z
IL_02F9: ldloca.s 27 (UnityEngine.Vector3)
IL_02FB: ldfld System.Single UnityEngine.Vector3::z
IL_0300: mul
IL_0301: add
IL_0302: ldc.r4 -0.5
IL_0307: bge.un => Label37
IL_030C: ldc.i4.m1
IL_030D: stloc.s 6 (System.Int32)
IL_030F: Label36
IL_030F: Label37
IL_030F: ldloc.s 6 (System.Int32)
IL_0311: ldc.i4.m1
IL_0312: bne.un => Label38
IL_0317: ldc.i4.0
IL_0318: stloc.s 30 (System.Int32)
IL_031A: br => Label39
IL_031F: Label45
IL_031F: ldloc.s 30 (System.Int32)
IL_0321: ldloc.s 10 (System.Int32)
IL_0323: beq => Label40
IL_0328: ldloc.s 11 (System.Int32)
IL_032A: ldc.i4.1
IL_032B: ldloc.s 30 (System.Int32)
IL_032D: ldc.i4.s 31
IL_032F: and
IL_0330: shl
IL_0331: and
IL_0332: brfalse => Label41
IL_0337: ldarg.1
IL_0338: ldloc.s 30 (System.Int32)
IL_033A: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_033F: stloc.s 28 (System.UInt16)
IL_0341: ldloc.s 28 (System.UInt16)
IL_0343: brfalse => Label42
IL_0348: ldloc.0
IL_0349: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_034E: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0353: ldloc.s 28 (System.UInt16)
IL_0355: ldelema NetSegment
IL_035A: ldarg.0
IL_035B: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0360: stloc.s 31 (UnityEngine.Vector3)
IL_0362: ldloca.s 31 (UnityEngine.Vector3)
IL_0364: ldfld System.Single UnityEngine.Vector3::x
IL_0369: ldloca.s 27 (UnityEngine.Vector3)
IL_036B: ldfld System.Single UnityEngine.Vector3::x
IL_0370: mul
IL_0371: ldloca.s 31 (UnityEngine.Vector3)
IL_0373: ldfld System.Single UnityEngine.Vector3::z
IL_0378: ldloca.s 27 (UnityEngine.Vector3)
IL_037A: ldfld System.Single UnityEngine.Vector3::z
IL_037F: mul
IL_0380: add
IL_0381: ldc.r4 -0.5
IL_0386: blt.un => Label43
IL_038B: ldloc.s 30 (System.Int32)
IL_038D: stloc.s 6 (System.Int32)
IL_038F: br => Label44
IL_0394: Label40
IL_0394: Label41
IL_0394: Label42
IL_0394: Label43
IL_0394: ldloc.s 30 (System.Int32)
IL_0396: ldc.i4.1
IL_0397: add
IL_0398: stloc.s 30 (System.Int32)
IL_039A: Label39
IL_039A: ldloc.s 30 (System.Int32)
IL_039C: ldc.i4.8
IL_039D: blt => Label45
IL_03A2: Label35
IL_03A2: Label38
IL_03A2: Label44
IL_03A2: ldc.i4.m1
IL_03A3: stloc.s 32 (System.Int32)
IL_03A5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_03AA: stloc.s 33 (UnityEngine.Vector3)
IL_03AC: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_03B1: stloc.s 34 (UnityEngine.Vector3)
IL_03B3: ldloc.s 6 (System.Int32)
IL_03B5: ldc.i4.m1
IL_03B6: beq => Label46
IL_03BB: ldarg.1
IL_03BC: ldloc.s 6 (System.Int32)
IL_03BE: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_03C3: stloc.s 35 (System.UInt16)
IL_03C5: ldloc.0
IL_03C6: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_03CB: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_03D0: ldloc.s 35 (System.UInt16)
IL_03D2: ldelema NetSegment
IL_03D7: ldarg.0
IL_03D8: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_03DD: stloc.s 33 (UnityEngine.Vector3)
IL_03DF: ldloc.s 11 (System.Int32)
IL_03E1: ldloc.s 12 (System.Int32)
IL_03E3: and
IL_03E4: ldc.i4.1
IL_03E5: ldloc.s 6 (System.Int32)
IL_03E7: ldc.i4.s 31
IL_03E9: and
IL_03EA: shl
IL_03EB: and
IL_03EC: brfalse => Label47
IL_03F1: ldc.i4.0
IL_03F2: stloc.s 36 (System.Int32)
IL_03F4: br => Label48
IL_03F9: Label59
IL_03F9: ldloc.s 36 (System.Int32)
IL_03FB: ldloc.s 6 (System.Int32)
IL_03FD: beq => Label49
IL_0402: ldloc.s 36 (System.Int32)
IL_0404: ldloc.s 10 (System.Int32)
IL_0406: beq => Label50
IL_040B: ldloc.s 11 (System.Int32)
IL_040D: ldloc.s 12 (System.Int32)
IL_040F: and
IL_0410: ldc.i4.1
IL_0411: ldloc.s 36 (System.Int32)
IL_0413: ldc.i4.s 31
IL_0415: and
IL_0416: shl
IL_0417: and
IL_0418: brfalse => Label51
IL_041D: ldarg.1
IL_041E: ldloc.s 36 (System.Int32)
IL_0420: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0425: stloc.s 35 (System.UInt16)
IL_0427: ldloc.s 35 (System.UInt16)
IL_0429: brfalse => Label52
IL_042E: ldloc.0
IL_042F: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0434: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0439: ldloc.s 35 (System.UInt16)
IL_043B: ldelema NetSegment
IL_0440: ldarg.0
IL_0441: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0446: stloc.s 34 (UnityEngine.Vector3)
IL_0448: ldloc.s 10 (System.Int32)
IL_044A: ldc.i4.m1
IL_044B: beq => Label53
IL_0450: ldloca.s 34 (UnityEngine.Vector3)
IL_0452: ldfld System.Single UnityEngine.Vector3::x
IL_0457: ldloca.s 27 (UnityEngine.Vector3)
IL_0459: ldfld System.Single UnityEngine.Vector3::x
IL_045E: mul
IL_045F: ldloca.s 34 (UnityEngine.Vector3)
IL_0461: ldfld System.Single UnityEngine.Vector3::z
IL_0466: ldloca.s 27 (UnityEngine.Vector3)
IL_0468: ldfld System.Single UnityEngine.Vector3::z
IL_046D: mul
IL_046E: add
IL_046F: ldc.r4 -0.5
IL_0474: blt.un => Label54
IL_0479: Label53
IL_0479: ldloc.s 14 (System.Int32)
IL_047B: ldc.i4.2
IL_047C: bne.un => Label55
IL_0481: ldloc.s 36 (System.Int32)
IL_0483: stloc.s 32 (System.Int32)
IL_0485: br => Label56
IL_048A: Label55
IL_048A: ldloca.s 34 (UnityEngine.Vector3)
IL_048C: ldfld System.Single UnityEngine.Vector3::x
IL_0491: ldloca.s 33 (UnityEngine.Vector3)
IL_0493: ldfld System.Single UnityEngine.Vector3::x
IL_0498: mul
IL_0499: ldloca.s 34 (UnityEngine.Vector3)
IL_049B: ldfld System.Single UnityEngine.Vector3::z
IL_04A0: ldloca.s 33 (UnityEngine.Vector3)
IL_04A2: ldfld System.Single UnityEngine.Vector3::z
IL_04A7: mul
IL_04A8: add
IL_04A9: ldc.r4 -0.9396926
IL_04AE: bge.un => Label57
IL_04B3: ldloc.s 36 (System.Int32)
IL_04B5: stloc.s 32 (System.Int32)
IL_04B7: br => Label58
IL_04BC: Label49
IL_04BC: Label50
IL_04BC: Label51
IL_04BC: Label52
IL_04BC: Label54
IL_04BC: Label57
IL_04BC: ldloc.s 36 (System.Int32)
IL_04BE: ldc.i4.1
IL_04BF: add
IL_04C0: stloc.s 36 (System.Int32)
IL_04C2: Label48
IL_04C2: ldloc.s 36 (System.Int32)
IL_04C4: ldc.i4.8
IL_04C5: blt => Label59
IL_04CA: Label46
IL_04CA: Label47
IL_04CA: Label56
IL_04CA: Label58
IL_04CA: ldc.i4.0
IL_04CB: stloc.s 37 (System.Int32)
IL_04CD: br => Label60
IL_04D2: Label79
IL_04D2: ldarg.1
IL_04D3: ldloc.s 37 (System.Int32)
IL_04D5: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_04DA: stloc.s 38 (System.UInt16)
IL_04DC: ldloc.s 38 (System.UInt16)
IL_04DE: brfalse => Label61
IL_04E3: ldarg.0
IL_04E4: ldloc.0
IL_04E5: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_04EA: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_04EF: ldloc.s 38 (System.UInt16)
IL_04F1: ldelema NetSegment
IL_04F6: ldloc.1
IL_04F7: ldc.i4 256
IL_04FC: sub
IL_04FD: ldloca.s 39 (RoadBaseAI+TrafficLightState)
IL_04FF: ldloca.s 40 (RoadBaseAI+TrafficLightState)
IL_0501: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_0506: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0508: ldc.i4.s -2
IL_050A: and
IL_050B: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_050D: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_050F: ldc.i4.s -2
IL_0511: and
IL_0512: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0514: ldloc.s 6 (System.Int32)
IL_0516: ldloc.s 37 (System.Int32)
IL_0518: beq => Label62
IL_051D: ldloc.s 32 (System.Int32)
IL_051F: ldloc.s 37 (System.Int32)
IL_0521: bne.un => Label63
IL_0526: Label62
IL_0526: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0528: ldc.i4.2
IL_0529: and
IL_052A: brfalse => Label64
IL_052F: ldc.i4.1
IL_0530: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0532: ldc.i4.0
IL_0533: stloc.2
IL_0534: ldloc.3
IL_0535: ldc.i4.1
IL_0536: add
IL_0537: dup
IL_0538: stloc.3
IL_0539: ldloc.s 13 (System.Int32)
IL_053B: blt => Label65
IL_0540: ldc.i4.0
IL_0541: stloc.3
IL_0542: Label64
IL_0542: Label65
IL_0542: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0544: ldc.i4.2
IL_0545: and
IL_0546: brtrue => Label66
IL_054B: ldc.i4.3
IL_054C: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_054E: Label66
IL_054E: br => Label67
IL_0553: Label63
IL_0553: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0555: ldc.i4.2
IL_0556: and
IL_0557: brtrue => Label68
IL_055C: ldc.i4.3
IL_055D: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_055F: Label68
IL_055F: ldloc.0
IL_0560: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0565: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_056A: ldloc.s 38 (System.UInt16)
IL_056C: ldelema NetSegment
IL_0571: ldarg.0
IL_0572: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0577: stloc.s 41 (UnityEngine.Vector3)
IL_0579: ldloc.s 12 (System.Int32)
IL_057B: ldc.i4.1
IL_057C: ldloc.s 37 (System.Int32)
IL_057E: ldc.i4.s 31
IL_0580: and
IL_0581: shl
IL_0582: and
IL_0583: brfalse => Label69
IL_0588: ldloc.s 10 (System.Int32)
IL_058A: ldloc.s 37 (System.Int32)
IL_058C: beq => Label70
IL_0591: ldloc.s 6 (System.Int32)
IL_0593: ldc.i4.m1
IL_0594: beq => Label71
IL_0599: ldloca.s 41 (UnityEngine.Vector3)
IL_059B: ldfld System.Single UnityEngine.Vector3::x
IL_05A0: ldloca.s 33 (UnityEngine.Vector3)
IL_05A2: ldfld System.Single UnityEngine.Vector3::x
IL_05A7: mul
IL_05A8: ldloca.s 41 (UnityEngine.Vector3)
IL_05AA: ldfld System.Single UnityEngine.Vector3::z
IL_05AF: ldloca.s 33 (UnityEngine.Vector3)
IL_05B1: ldfld System.Single UnityEngine.Vector3::z
IL_05B6: mul
IL_05B7: add
IL_05B8: ldc.r4 -0.5
IL_05BD: blt => Label72
IL_05C2: Label71
IL_05C2: ldloc.s 32 (System.Int32)
IL_05C4: ldc.i4.m1
IL_05C5: beq => Label73
IL_05CA: ldloca.s 41 (UnityEngine.Vector3)
IL_05CC: ldfld System.Single UnityEngine.Vector3::x
IL_05D1: ldloca.s 34 (UnityEngine.Vector3)
IL_05D3: ldfld System.Single UnityEngine.Vector3::x
IL_05D8: mul
IL_05D9: ldloca.s 41 (UnityEngine.Vector3)
IL_05DB: ldfld System.Single UnityEngine.Vector3::z
IL_05E0: ldloca.s 34 (UnityEngine.Vector3)
IL_05E2: ldfld System.Single UnityEngine.Vector3::z
IL_05E7: mul
IL_05E8: add
IL_05E9: ldc.r4 -0.5
IL_05EE: bge.un => Label74
IL_05F3: Label72
IL_05F3: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05F5: ldc.i4.2
IL_05F6: and
IL_05F7: brtrue => Label75
IL_05FC: ldc.i4.3
IL_05FD: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05FF: Label75
IL_05FF: br => Label76
IL_0604: Label69
IL_0604: Label70
IL_0604: Label73
IL_0604: Label74
IL_0604: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0606: ldc.i4.2
IL_0607: and
IL_0608: brfalse => Label77
IL_060D: ldc.i4.1
IL_060E: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0610: ldloc.s 4 (System.Int32)
IL_0612: ldc.i4.1
IL_0613: add
IL_0614: dup
IL_0615: stloc.s 4 (System.Int32)
IL_0617: ldloc.s 15 (System.Int32)
IL_0619: blt => Label78
IL_061E: ldc.i4.0
IL_061F: stloc.s 4 (System.Int32)
IL_0621: Label67
IL_0621: Label76
IL_0621: Label77
IL_0621: Label78
IL_0621: ldarg.0
IL_0622: ldloc.0
IL_0623: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0628: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_062D: ldloc.s 38 (System.UInt16)
IL_062F: ldelema NetSegment
IL_0634: ldloc.1
IL_0635: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0637: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0639: ldc.i4.0
IL_063A: ldc.i4.0
IL_063B: 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_0640: Label61
IL_0640: ldloc.s 37 (System.Int32)
IL_0642: ldc.i4.1
IL_0643: add
IL_0644: stloc.s 37 (System.Int32)
IL_0646: Label60
IL_0646: ldloc.s 37 (System.Int32)
IL_0648: ldc.i4.8
IL_0649: blt => Label79
IL_064E: ldarg.1
IL_064F: ldloc.s 4 (System.Int32)
IL_0651: ldc.i4.5
IL_0652: shl
IL_0653: ldloc.3
IL_0654: ldc.i4.2
IL_0655: shl
IL_0656: or
IL_0657: ldloc.2
IL_0658: or
IL_0659: conv.u1
IL_065A: stfld System.Byte NetNode::m_maxWaitTime
IL_065F: // end original
IL_065F: Label0
IL_065F: ret
DONE

### Patch: static System.Void RoadBaseAI::GetTrafficLightNodeState(System.UInt16


nodeID, NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData, Flags&
flags, UnityEngine.Color& color)
### Replacement: static System.Void
RoadBaseAI::GetTrafficLightNodeState_Patch1(System.UInt16 nodeID, NetNode&
nodeData, System.UInt16 segmentID, NetSegment& segmentData, Flags& 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.s => Label1
IL_0014: ldarg 0
IL_0018: ldarg 1
IL_001C: ldarg 2
IL_0020: ldarg 3
IL_0024: ldarg 4
IL_0028: ldarg 5
IL_002C: call static System.Boolean
TrafficManager.Patch._RoadBaseAI.GetTrafficLightNodeStatePatch::Prefix(System.UInt1
6 nodeID, NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData,
Flags& flags, UnityEngine.Color& color)
IL_0031: stloc 5 (System.Boolean)
IL_0035: nop
IL_0036: ldloc 5 (System.Boolean)
IL_003A: brfalse => Label0
IL_003F: // start original
IL_003F: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0044: ldfld System.UInt32 SimulationManager::m_referenceFrameIndex
IL_0049: ldc.i4.s 15
IL_004B: sub
IL_004C: stloc.2
IL_004D: ldarg.0
IL_004E: ldc.i4.8
IL_004F: shl
IL_0050: ldc.i4 32768
IL_0055: div.un
IL_0056: stloc.3
IL_0057: ldloc.2
IL_0058: ldloc.3
IL_0059: sub
IL_005A: ldc.i4 255
IL_005F: and
IL_0060: stloc.s 4 (System.UInt32)
IL_0062: ldarg.0
IL_0063: ldarg.3
IL_0064: ldloc.2
IL_0065: ldloc.3
IL_0066: sub
IL_0067: ldloca.s 0 (RoadBaseAI+TrafficLightState)
IL_0069: ldloca.s 1 (RoadBaseAI+TrafficLightState)
IL_006B: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_0070: ldarg.s 5
IL_0072: ldc.r4 0.5
IL_0077: stfld System.Single UnityEngine.Color::a
IL_007C: ldloc.0
IL_007D: switch => Labels2,3,4,5
IL_0092: br => Label6
IL_0097: Label2
IL_0097: ldarg.s 5
IL_0099: ldc.r4 1
IL_009E: stfld System.Single UnityEngine.Color::g
IL_00A3: br => Label7
IL_00A8: Label3
IL_00A8: ldloc.s 4 (System.UInt32)
IL_00AA: ldc.i4.s 45
IL_00AC: bge.un => Label8
IL_00B1: ldarg.s 5
IL_00B3: ldc.r4 0
IL_00B8: stfld System.Single UnityEngine.Color::g
IL_00BD: br => Label9
IL_00C2: Label8
IL_00C2: ldloc.s 4 (System.UInt32)
IL_00C4: ldc.i4.s 60
IL_00C6: bge.un => Label10
IL_00CB: ldarg.s 5
IL_00CD: ldc.r4 1
IL_00D2: stfld System.Single UnityEngine.Color::r
IL_00D7: br => Label11
IL_00DC: Label10
IL_00DC: ldarg.s 5
IL_00DE: ldc.r4 1
IL_00E3: stfld System.Single UnityEngine.Color::g
IL_00E8: Label9
IL_00E8: Label11
IL_00E8: br => Label12
IL_00ED: Label4
IL_00ED: ldarg.s 5
IL_00EF: ldc.r4 0
IL_00F4: stfld System.Single UnityEngine.Color::g
IL_00F9: br => Label13
IL_00FE: Label5
IL_00FE: ldloc.s 4 (System.UInt32)
IL_0100: ldc.i4.s 45
IL_0102: bge.un => Label14
IL_0107: ldarg.s 5
IL_0109: ldc.r4 1
IL_010E: stfld System.Single UnityEngine.Color::r
IL_0113: br => Label15
IL_0118: Label14
IL_0118: ldarg.s 5
IL_011A: ldc.r4 0
IL_011F: stfld System.Single UnityEngine.Color::g
IL_0124: Label15
IL_0124: br => Label16
IL_0129: Label6
IL_0129: Label7
IL_0129: Label12
IL_0129: Label13
IL_0129: Label16
IL_0129: ldloc.1
IL_012A: switch => Labels17,18,19,20
IL_013F: br => Label21
IL_0144: Label17
IL_0144: ldarg.s 5
IL_0146: ldc.r4 1
IL_014B: stfld System.Single UnityEngine.Color::b
IL_0150: br => Label22
IL_0155: Label18
IL_0155: ldloc.s 4 (System.UInt32)
IL_0157: ldc.i4.s 45
IL_0159: bge.un => Label23
IL_015E: ldarg.s 5
IL_0160: ldc.r4 0
IL_0165: stfld System.Single UnityEngine.Color::b
IL_016A: br => Label24
IL_016F: Label23
IL_016F: ldarg.s 5
IL_0171: ldc.r4 1
IL_0176: stfld System.Single UnityEngine.Color::b
IL_017B: Label24
IL_017B: br => Label25
IL_0180: Label19
IL_0180: ldarg.s 5
IL_0182: ldc.r4 0
IL_0187: stfld System.Single UnityEngine.Color::b
IL_018C: br => Label26
IL_0191: Label20
IL_0191: ldloc.s 4 (System.UInt32)
IL_0193: ldc.i4.s 45
IL_0195: bge.un => Label27
IL_019A: ldloc.s 4 (System.UInt32)
IL_019C: ldc.i4.8
IL_019D: div.un
IL_019E: ldc.i4.1
IL_019F: and
IL_01A0: ldc.i4.1
IL_01A1: bne.un => Label28
IL_01A6: ldarg.s 5
IL_01A8: ldc.r4 1
IL_01AD: stfld System.Single UnityEngine.Color::b
IL_01B2: Label28
IL_01B2: br => Label29
IL_01B7: Label27
IL_01B7: ldarg.s 5
IL_01B9: ldc.r4 0
IL_01BE: stfld System.Single UnityEngine.Color::b
IL_01C3: Label29
IL_01C3: br => Label30
IL_01C8: // end original
IL_01C8: Label21
IL_01C8: Label22
IL_01C8: Label25
IL_01C8: Label26
IL_01C8: Label30
IL_01C8: Label0
IL_01C8: ret
DONE

### Patch: virtual System.Void RoadBaseAI::UpdateNode(System.UInt16 nodeID,


NetNode& data)
### Replacement: static System.Void RoadBaseAI::UpdateNode_Patch1(RoadBaseAI this,
System.UInt16 nodeID, NetNode& data)
IL_0000: Local var 0: Notification/Problem
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 Problem NetNode::m_problems
IL_000E: ldc.i8 72057602627866624
IL_0017: call static Problem Notification::RemoveProblems(Problem problems1,
Problem problems2)
IL_001C: stloc.0
IL_001D: ldc.i4.0
IL_001E: stloc.1
IL_001F: ldc.i4.0
IL_0020: stloc.2
IL_0021: ldarg.2
IL_0022: ldarg.1
IL_0023: ldc.i4.0
IL_0024: ldc.i4.s 33
IL_0026: ldc.i4.1
IL_0027: ldc.i4.1
IL_0028: ldloca.s 1 (System.Int32)
IL_002A: ldloca.s 2 (System.Int32)
IL_002C: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, LaneType laneTypes, VehicleType vehicleTypes,
System.Boolean onePerSegment, System.Int32& forward, System.Int32& backward)
IL_0031: ldarg.2
IL_0032: ldfld Flags NetNode::m_flags
IL_0037: ldc.i4 1024
IL_003C: and
IL_003D: brfalse => Label0
IL_0042: ldarg.2
IL_0043: ldfld System.UInt16 NetNode::m_building
IL_0048: brfalse => Label1
IL_004D: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0052: stloc.3
IL_0053: ldloc.1
IL_0054: brfalse => Label2
IL_0059: ldloc.3
IL_005A: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_005F: ldfld Building[] Array16`1<Building>::m_buffer
IL_0064: ldarg.2
IL_0065: ldfld System.UInt16 NetNode::m_building
IL_006A: ldelema Building
IL_006F: dup
IL_0070: ldfld Flags Building::m_flags
IL_0075: ldc.i4 128
IL_007A: or
IL_007B: stfld Flags Building::m_flags
IL_0080: br => Label3
IL_0085: Label2
IL_0085: ldloc.3
IL_0086: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008B: ldfld Building[] Array16`1<Building>::m_buffer
IL_0090: ldarg.2
IL_0091: ldfld System.UInt16 NetNode::m_building
IL_0096: ldelema Building
IL_009B: dup
IL_009C: ldfld Flags Building::m_flags
IL_00A1: ldc.i4 -129
IL_00A6: and
IL_00A7: stfld Flags Building::m_flags
IL_00AC: Label3
IL_00AC: ldloc.2
IL_00AD: brfalse => Label4
IL_00B2: ldloc.3
IL_00B3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00B8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00BD: ldarg.2
IL_00BE: ldfld System.UInt16 NetNode::m_building
IL_00C3: ldelema Building
IL_00C8: dup
IL_00C9: ldfld Flags Building::m_flags
IL_00CE: ldc.i4.s 64
IL_00D0: or
IL_00D1: stfld Flags Building::m_flags
IL_00D6: br => Label5
IL_00DB: Label4
IL_00DB: ldloc.3
IL_00DC: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00E1: ldfld Building[] Array16`1<Building>::m_buffer
IL_00E6: ldarg.2
IL_00E7: ldfld System.UInt16 NetNode::m_building
IL_00EC: ldelema Building
IL_00F1: dup
IL_00F2: ldfld Flags Building::m_flags
IL_00F7: ldc.i4.s -65
IL_00F9: and
IL_00FA: stfld Flags Building::m_flags
IL_00FF: Label5
IL_00FF: br => Label6
IL_0104: Label0
IL_0104: Label1
IL_0104: ldloc.1
IL_0105: brfalse => Label7
IL_010A: ldloc.2
IL_010B: brfalse => Label8
IL_0110: Label7
IL_0110: ldloc.1
IL_0111: brtrue => Label9
IL_0116: ldloc.2
IL_0117: brfalse => Label10
IL_011C: Label8
IL_011C: ldloc.0
IL_011D: ldc.i4 4096
IL_0122: conv.i8
IL_0123: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0128: stloc.0
IL_0129: Label6
IL_0129: Label9
IL_0129: Label10
IL_0129: ldloc.1
IL_012A: ldc.i4.1
IL_012B: bne.un => Label11
IL_0130: ldarg.2
IL_0131: dup
IL_0132: ldfld Flags NetNode::m_flags
IL_0137: ldc.i4 4194304
IL_013C: or
IL_013D: stfld Flags NetNode::m_flags
IL_0142: br => Label12
IL_0147: Label11
IL_0147: ldarg.2
IL_0148: dup
IL_0149: ldfld Flags NetNode::m_flags
IL_014E: ldc.i4 -4194305
IL_0153: and
IL_0154: stfld Flags NetNode::m_flags
IL_0159: Label12
IL_0159: ldloc.2
IL_015A: ldc.i4.1
IL_015B: bne.un => Label13
IL_0160: ldarg.2
IL_0161: dup
IL_0162: ldfld Flags NetNode::m_flags
IL_0167: ldc.i4 16777216
IL_016C: or
IL_016D: stfld Flags NetNode::m_flags
IL_0172: br => Label14
IL_0177: Label13
IL_0177: ldarg.2
IL_0178: dup
IL_0179: ldfld Flags NetNode::m_flags
IL_017E: ldc.i4 -16777217
IL_0183: and
IL_0184: stfld Flags NetNode::m_flags
IL_0189: Label14
IL_0189: ldarg.2
IL_018A: ldfld Flags NetNode::m_flags
IL_018F: ldc.i4 262144
IL_0194: and
IL_0195: brtrue => Label15
IL_019A: ldc.i4.0
IL_019B: stloc.s 4 (System.Int32)
IL_019D: ldc.i4.0
IL_019E: stloc.1
IL_019F: ldc.i4.0
IL_01A0: stloc.2
IL_01A1: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_01A6: stloc.s 5 (NetManager)
IL_01A8: ldc.i4.0
IL_01A9: stloc.s 6 (System.Int32)
IL_01AB: br => Label16
IL_01B0: Label24
IL_01B0: ldarg.2
IL_01B1: ldloc.s 6 (System.Int32)
IL_01B3: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_01B8: stloc.s 7 (System.UInt16)
IL_01BA: ldloc.s 7 (System.UInt16)
IL_01BC: brfalse => Label17
IL_01C1: ldc.i4.0
IL_01C2: stloc.s 8 (System.Int32)
IL_01C4: ldc.i4.0
IL_01C5: stloc.s 9 (System.Int32)
IL_01C7: ldloc.s 5 (NetManager)
IL_01C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01D3: ldloc.s 7 (System.UInt16)
IL_01D5: ldelema NetSegment
IL_01DA: ldloc.s 7 (System.UInt16)
IL_01DC: ldc.i4.s 33
IL_01DE: ldc.i4.s 64
IL_01E0: ldloca.s 8 (System.Int32)
IL_01E2: ldloca.s 9 (System.Int32)
IL_01E4: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_01E9: ldloc.s 8 (System.Int32)
IL_01EB: brtrue => Label18
IL_01F0: ldloc.s 9 (System.Int32)
IL_01F2: brfalse => Label19
IL_01F7: Label18
IL_01F7: ldloc.s 4 (System.Int32)
IL_01F9: ldc.i4.1
IL_01FA: add
IL_01FB: stloc.s 4 (System.Int32)
IL_01FD: ldloc.s 8 (System.Int32)
IL_01FF: brfalse => Label20
IL_0204: ldc.i4.1
IL_0205: stloc.s 8 (System.Int32)
IL_0207: Label20
IL_0207: ldloc.s 9 (System.Int32)
IL_0209: brfalse => Label21
IL_020E: ldc.i4.1
IL_020F: stloc.s 9 (System.Int32)
IL_0211: Label21
IL_0211: ldloc.s 5 (NetManager)
IL_0213: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0218: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_021D: ldloc.s 7 (System.UInt16)
IL_021F: ldelema NetSegment
IL_0224: ldfld System.UInt16 NetSegment::m_endNode
IL_0229: ldarg.1
IL_022A: bne.un => Label22
IL_022F: ldloc.1
IL_0230: ldloc.s 9 (System.Int32)
IL_0232: add
IL_0233: stloc.1
IL_0234: ldloc.2
IL_0235: ldloc.s 8 (System.Int32)
IL_0237: add
IL_0238: stloc.2
IL_0239: br => Label23
IL_023E: Label22
IL_023E: ldloc.1
IL_023F: ldloc.s 8 (System.Int32)
IL_0241: add
IL_0242: stloc.1
IL_0243: ldloc.2
IL_0244: ldloc.s 9 (System.Int32)
IL_0246: add
IL_0247: stloc.2
IL_0248: Label17
IL_0248: Label19
IL_0248: Label23
IL_0248: ldloc.s 6 (System.Int32)
IL_024A: ldc.i4.1
IL_024B: add
IL_024C: stloc.s 6 (System.Int32)
IL_024E: Label16
IL_024E: ldloc.s 6 (System.Int32)
IL_0250: ldc.i4.8
IL_0251: blt => Label24
IL_0256: ldloc.1
IL_0257: brfalse => Label25
IL_025C: ldloc.2
IL_025D: brfalse => Label26
IL_0262: Label25
IL_0262: ldloc.1
IL_0263: brtrue => Label27
IL_0268: ldloc.2
IL_0269: brtrue => Label28
IL_026E: Label27
IL_026E: ldloc.s 4 (System.Int32)
IL_0270: ldc.i4.1
IL_0271: bne.un => Label29
IL_0276: Label26
IL_0276: Label28
IL_0276: ldloc.0
IL_0277: ldc.i8 8589934592
IL_0280: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0285: stloc.0
IL_0286: Label29
IL_0286: ldc.i4.0
IL_0287: stloc.s 4 (System.Int32)
IL_0289: ldc.i4.0
IL_028A: stloc.1
IL_028B: ldc.i4.0
IL_028C: stloc.2
IL_028D: ldc.i4.0
IL_028E: stloc.s 10 (System.Int32)
IL_0290: br => Label30
IL_0295: Label38
IL_0295: ldarg.2
IL_0296: ldloc.s 10 (System.Int32)
IL_0298: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_029D: stloc.s 11 (System.UInt16)
IL_029F: ldloc.s 11 (System.UInt16)
IL_02A1: brfalse => Label31
IL_02A6: ldc.i4.0
IL_02A7: stloc.s 12 (System.Int32)
IL_02A9: ldc.i4.0
IL_02AA: stloc.s 13 (System.Int32)
IL_02AC: ldloc.s 5 (NetManager)
IL_02AE: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02B3: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02B8: ldloc.s 11 (System.UInt16)
IL_02BA: ldelema NetSegment
IL_02BF: ldloc.s 11 (System.UInt16)
IL_02C1: ldc.i4.s 33
IL_02C3: ldc.i4 65536
IL_02C8: ldloca.s 12 (System.Int32)
IL_02CA: ldloca.s 13 (System.Int32)
IL_02CC: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_02D1: ldloc.s 12 (System.Int32)
IL_02D3: brtrue => Label32
IL_02D8: ldloc.s 13 (System.Int32)
IL_02DA: brfalse => Label33
IL_02DF: Label32
IL_02DF: ldloc.s 4 (System.Int32)
IL_02E1: ldc.i4.1
IL_02E2: add
IL_02E3: stloc.s 4 (System.Int32)
IL_02E5: ldloc.s 12 (System.Int32)
IL_02E7: brfalse => Label34
IL_02EC: ldc.i4.1
IL_02ED: stloc.s 12 (System.Int32)
IL_02EF: Label34
IL_02EF: ldloc.s 13 (System.Int32)
IL_02F1: brfalse => Label35
IL_02F6: ldc.i4.1
IL_02F7: stloc.s 13 (System.Int32)
IL_02F9: Label35
IL_02F9: ldloc.s 5 (NetManager)
IL_02FB: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0300: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0305: ldloc.s 11 (System.UInt16)
IL_0307: ldelema NetSegment
IL_030C: ldfld System.UInt16 NetSegment::m_endNode
IL_0311: ldarg.1
IL_0312: bne.un => Label36
IL_0317: ldloc.1
IL_0318: ldloc.s 13 (System.Int32)
IL_031A: add
IL_031B: stloc.1
IL_031C: ldloc.2
IL_031D: ldloc.s 12 (System.Int32)
IL_031F: add
IL_0320: stloc.2
IL_0321: br => Label37
IL_0326: Label36
IL_0326: ldloc.1
IL_0327: ldloc.s 12 (System.Int32)
IL_0329: add
IL_032A: stloc.1
IL_032B: ldloc.2
IL_032C: ldloc.s 13 (System.Int32)
IL_032E: add
IL_032F: stloc.2
IL_0330: Label31
IL_0330: Label33
IL_0330: Label37
IL_0330: ldloc.s 10 (System.Int32)
IL_0332: ldc.i4.1
IL_0333: add
IL_0334: stloc.s 10 (System.Int32)
IL_0336: Label30
IL_0336: ldloc.s 10 (System.Int32)
IL_0338: ldc.i4.8
IL_0339: blt => Label38
IL_033E: ldloc.1
IL_033F: brfalse => Label39
IL_0344: ldloc.2
IL_0345: brfalse => Label40
IL_034A: Label39
IL_034A: ldloc.1
IL_034B: brtrue => Label41
IL_0350: ldloc.2
IL_0351: brtrue => Label42
IL_0356: Label41
IL_0356: ldloc.s 4 (System.Int32)
IL_0358: ldc.i4.1
IL_0359: bne.un => Label43
IL_035E: Label40
IL_035E: Label42
IL_035E: ldloc.0
IL_035F: ldc.i8 72057594037927936
IL_0368: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_036D: stloc.0
IL_036E: Label15
IL_036E: Label43
IL_036E: ldarg.2
IL_036F: ldloc.0
IL_0370: stfld Problem NetNode::m_problems
IL_0375: // end original
IL_0375: ldarg 1
IL_0379: ldarg 2
IL_037D: call static System.Void
TrafficManager.Patch._RoadBaseAI.UpdateNodePatch::Postfix(System.UInt16 nodeID,
NetNode& data)
IL_0382: ret
DONE

### Patch: virtual System.Void RoadBaseAI::UpdateLanes(System.UInt16 segmentID,


NetSegment& data, System.Boolean loading)
### Replacement: static System.Void 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<NetManager>::get_instance()
IL_0005: stloc.0
IL_0006: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::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<NetNode> NetManager::m_nodes
IL_0176: ldfld NetNode[] Array16`1<NetNode>::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: ldarg.2
IL_0192: ldfld UnityEngine.Vector3 NetSegment::m_endDirection
IL_0197: call static UnityEngine.Vector3
UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a)
IL_019C: ldloca.s 12 (System.Int32)
IL_019E: ldloca.s 13 (System.Int32)
IL_01A0: ldloca.s 14 (System.Int32)
IL_01A2: ldloca.s 15 (System.Int32)
IL_01A4: ldloca.s 16 (System.Int32)
IL_01A6: ldloca.s 17 (System.Int32)
IL_01A8: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, Direction directions, LaneType laneTypes, VehicleType
vehicleTypes, UnityEngine.Vector3 direction, System.Int32& left, System.Int32&
forward, System.Int32& right, System.Int32& left2, System.Int32& forward2,
System.Int32& right2)
IL_01AD: ldloc.0
IL_01AE: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_01B3: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_01B8: ldarg.2
IL_01B9: ldfld System.UInt16 NetSegment::m_endNode
IL_01BE: ldelema NetNode
IL_01C3: ldfld Flags NetNode::m_flags
IL_01C8: ldc.i4 1136
IL_01CD: and
IL_01CE: brfalse => Label2
IL_01D3: ldloc.s 12 (System.Int32)
IL_01D5: ldloc.s 13 (System.Int32)
IL_01D7: add
IL_01D8: ldloc.s 14 (System.Int32)
IL_01DA: add
IL_01DB: brtrue => Label3
IL_01E0: ldc.i4.1
IL_01E1: stloc.s 19 (System.Boolean)
IL_01E3: br => Label4
IL_01E8: Label3
IL_01E8: ldc.i4.1
IL_01E9: stloc.s 18 (System.Boolean)
IL_01EB: Label2
IL_01EB: Label4
IL_01EB: ldc.i4.0
IL_01EC: stloc.s 20 (System.Int32)
IL_01EE: ldc.i4.0
IL_01EF: stloc.s 21 (System.Int32)
IL_01F1: ldc.i4.0
IL_01F2: stloc.s 22 (System.Int32)
IL_01F4: ldc.i4.0
IL_01F5: stloc.s 23 (System.Int32)
IL_01F7: ldc.i4.0
IL_01F8: stloc.s 24 (System.Int32)
IL_01FA: ldc.i4.0
IL_01FB: stloc.s 25 (System.Int32)
IL_01FD: ldc.i4.0
IL_01FE: stloc.s 26 (System.Boolean)
IL_0200: ldc.i4.0
IL_0201: stloc.s 27 (System.Boolean)
IL_0203: ldloc.0
IL_0204: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0209: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_020E: ldarg.2
IL_020F: ldfld System.UInt16 NetSegment::m_startNode
IL_0214: ldelema NetNode
IL_0219: ldarg.2
IL_021A: ldfld System.UInt16 NetSegment::m_startNode
IL_021F: ldarg.1
IL_0220: ldc.i4.1
IL_0221: ldc.i4.s 33
IL_0223: ldc.i4.1
IL_0224: ldarg.2
IL_0225: ldfld UnityEngine.Vector3 NetSegment::m_startDirection
IL_022A: call static UnityEngine.Vector3
UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a)
IL_022F: ldloca.s 20 (System.Int32)
IL_0231: ldloca.s 21 (System.Int32)
IL_0233: ldloca.s 22 (System.Int32)
IL_0235: ldloca.s 23 (System.Int32)
IL_0237: ldloca.s 24 (System.Int32)
IL_0239: ldloca.s 25 (System.Int32)
IL_023B: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, Direction directions, LaneType laneTypes, VehicleType
vehicleTypes, UnityEngine.Vector3 direction, System.Int32& left, System.Int32&
forward, System.Int32& right, System.Int32& left2, System.Int32& forward2,
System.Int32& right2)
IL_0240: ldloc.0
IL_0241: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0246: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_024B: ldarg.2
IL_024C: ldfld System.UInt16 NetSegment::m_startNode
IL_0251: ldelema NetNode
IL_0256: ldfld Flags NetNode::m_flags
IL_025B: ldc.i4 1136
IL_0260: and
IL_0261: brfalse => Label5
IL_0266: ldloc.s 20 (System.Int32)
IL_0268: ldloc.s 21 (System.Int32)
IL_026A: add
IL_026B: ldloc.s 22 (System.Int32)
IL_026D: add
IL_026E: brtrue => Label6
IL_0273: ldc.i4.1
IL_0274: stloc.s 27 (System.Boolean)
IL_0276: br => Label7
IL_027B: Label6
IL_027B: ldc.i4.1
IL_027C: stloc.s 26 (System.Boolean)
IL_027E: Label5
IL_027E: Label7
IL_027E: ldc.i4.0
IL_027F: stloc.s 28 (NetLane+Flags)
IL_0281: ldloc.s 15 (System.Int32)
IL_0283: brfalse => Label8
IL_0288: ldloc.s 12 (System.Int32)
IL_028A: brtrue => Label9
IL_028F: ldloc.s 28 (NetLane+Flags)
IL_0291: ldarg.2
IL_0292: ldfld Flags NetSegment::m_flags
IL_0297: ldc.i4.s 16
IL_0299: and
IL_029A: brfalse => Label10
IL_029F: ldc.i4 4096
IL_02A4: br => Label11
IL_02A9: Label10
IL_02A9: ldc.i4 16384
IL_02AE: Label11
IL_02AE: or
IL_02AF: stloc.s 28 (NetLane+Flags)
IL_02B1: Label8
IL_02B1: Label9
IL_02B1: ldloc.s 17 (System.Int32)
IL_02B3: brfalse => Label12
IL_02B8: ldloc.s 14 (System.Int32)
IL_02BA: brtrue => Label13
IL_02BF: ldloc.s 28 (NetLane+Flags)
IL_02C1: ldarg.2
IL_02C2: ldfld Flags NetSegment::m_flags
IL_02C7: ldc.i4.s 16
IL_02C9: and
IL_02CA: brfalse => Label14
IL_02CF: ldc.i4 8192
IL_02D4: br => Label15
IL_02D9: Label14
IL_02D9: ldc.i4 32768
IL_02DE: Label15
IL_02DE: or
IL_02DF: stloc.s 28 (NetLane+Flags)
IL_02E1: Label12
IL_02E1: Label13
IL_02E1: ldloc.s 23 (System.Int32)
IL_02E3: brfalse => Label16
IL_02E8: ldloc.s 20 (System.Int32)
IL_02EA: brtrue => Label17
IL_02EF: ldloc.s 28 (NetLane+Flags)
IL_02F1: ldarg.2
IL_02F2: ldfld Flags NetSegment::m_flags
IL_02F7: ldc.i4.s 16
IL_02F9: and
IL_02FA: brfalse => Label18
IL_02FF: ldc.i4 16384
IL_0304: br => Label19
IL_0309: Label18
IL_0309: ldc.i4 4096
IL_030E: Label19
IL_030E: or
IL_030F: stloc.s 28 (NetLane+Flags)
IL_0311: Label16
IL_0311: Label17
IL_0311: ldloc.s 25 (System.Int32)
IL_0313: brfalse => Label20
IL_0318: ldloc.s 22 (System.Int32)
IL_031A: brtrue => Label21
IL_031F: ldloc.s 28 (NetLane+Flags)
IL_0321: ldarg.2
IL_0322: ldfld Flags NetSegment::m_flags
IL_0327: ldc.i4.s 16
IL_0329: and
IL_032A: brfalse => Label22
IL_032F: ldc.i4 32768
IL_0334: br => Label23
IL_0339: Label22
IL_0339: ldc.i4 8192
IL_033E: Label23
IL_033E: or
IL_033F: stloc.s 28 (NetLane+Flags)
IL_0341: Label20
IL_0341: Label21
IL_0341: ldarg.2
IL_0342: ldfld Flags NetSegment::m_flags
IL_0347: ldc.i4 1073741824
IL_034C: and
IL_034D: brfalse => Label24
IL_0352: ldloc.s 28 (NetLane+Flags)
IL_0354: ldarg.2
IL_0355: ldfld Flags NetSegment::m_flags
IL_035A: ldc.i4.s 16
IL_035C: and
IL_035D: brfalse => Label25
IL_0362: ldc.i4 2048
IL_0367: br => Label26
IL_036C: Label25
IL_036C: ldc.i4 1024
IL_0371: Label26
IL_0371: or
IL_0372: stloc.s 28 (NetLane+Flags)
IL_0374: Label24
IL_0374: ldarg.2
IL_0375: ldfld Flags NetSegment::m_flags
IL_037A: ldc.i4 -2147483648
IL_037F: and
IL_0380: brfalse => Label27
IL_0385: ldloc.s 28 (NetLane+Flags)
IL_0387: ldarg.2
IL_0388: ldfld Flags NetSegment::m_flags
IL_038D: ldc.i4.s 16
IL_038F: and
IL_0390: brfalse => Label28
IL_0395: ldc.i4 1024
IL_039A: br => Label29
IL_039F: Label28
IL_039F: ldc.i4 2048
IL_03A4: Label29
IL_03A4: or
IL_03A5: stloc.s 28 (NetLane+Flags)
IL_03A7: Label27
IL_03A7: ldc.r4 0
IL_03AC: stloc.s 29 (System.Single)
IL_03AE: ldc.r4 0
IL_03B3: stloc.s 30 (System.Single)
IL_03B5: ldc.i4.0
IL_03B6: stloc.s 31 (System.UInt32)
IL_03B8: ldarg.2
IL_03B9: ldfld System.UInt32 NetSegment::m_lanes
IL_03BE: stloc.s 32 (System.UInt32)
IL_03C0: ldc.i4.0
IL_03C1: stloc.s 33 (System.Int32)
IL_03C3: br => Label30
IL_03C8: Label89
IL_03C8: ldloc.s 32 (System.UInt32)
IL_03CA: brtrue => Label31
IL_03CF: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_03D4: ldloca.s 32 (System.UInt32)
IL_03D6: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_03DB: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_03E0: ldarg.1
IL_03E1: ldc.i4.1
IL_03E2: callvirt System.Boolean NetManager::CreateLanes(System.UInt32&
firstLane, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segment,
System.Int32 count)
IL_03E7: brfalse => Label32
IL_03EC: ldloc.s 31 (System.UInt32)
IL_03EE: brfalse => Label33
IL_03F3: ldloc.0
IL_03F4: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_03F9: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_03FE: ldloc.s 31 (System.UInt32)
IL_0400: conv.u
IL_0401: ldelema NetLane
IL_0406: ldloc.s 32 (System.UInt32)
IL_0408: stfld System.UInt32 NetLane::m_nextLane
IL_040D: br => Label34
IL_0412: Label33
IL_0412: ldarg.2
IL_0413: ldloc.s 32 (System.UInt32)
IL_0415: stfld System.UInt32 NetSegment::m_lanes
IL_041A: Label34
IL_041A: br => Label35
IL_041F: Label32
IL_041F: br => Label36
IL_0424: Label31
IL_0424: Label35
IL_0424: ldarg.0
IL_0425: ldfld NetInfo NetAI::m_info
IL_042A: ldfld Lane[] NetInfo::m_lanes
IL_042F: ldloc.s 33 (System.Int32)
IL_0431: ldelem.ref
IL_0432: stloc.s 34 (NetInfo+Lane)
IL_0434: ldloc.s 34 (NetInfo+Lane)
IL_0436: ldfld System.Single Lane::m_position
IL_043B: ldarg.0
IL_043C: ldfld NetInfo NetAI::m_info
IL_0441: ldfld System.Single NetInfo::m_halfWidth
IL_0446: ldc.r4 2
IL_044B: mul
IL_044C: div
IL_044D: ldc.r4 0.5
IL_0452: add
IL_0453: stloc.s 35 (System.Single)
IL_0455: ldarg.2
IL_0456: ldfld Flags NetSegment::m_flags
IL_045B: ldc.i4.s 16
IL_045D: and
IL_045E: brfalse => Label37
IL_0463: ldc.r4 1
IL_0468: ldloc.s 35 (System.Single)
IL_046A: sub
IL_046B: stloc.s 35 (System.Single)
IL_046D: Label37
IL_046D: ldloc.2
IL_046E: ldloc.3
IL_046F: ldloc.2
IL_0470: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0475: ldloc.s 35 (System.Single)
IL_0477: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_047C: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0481: stloc.s 36 (UnityEngine.Vector3)
IL_0483: ldloc.s 6 (UnityEngine.Vector3)
IL_0485: ldloc.s 7 (UnityEngine.Vector3)
IL_0487: ldloc.s 35 (System.Single)
IL_0489: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_048E: stloc.s 37 (UnityEngine.Vector3)
IL_0490: ldloc.s 4 (UnityEngine.Vector3)
IL_0492: ldloc.s 5 (UnityEngine.Vector3)
IL_0494: ldloc.s 4 (UnityEngine.Vector3)
IL_0496: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_049B: ldloc.s 35 (System.Single)
IL_049D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_04A2: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_04A7: stloc.s 38 (UnityEngine.Vector3)
IL_04A9: ldloc.s 8 (UnityEngine.Vector3)
IL_04AB: ldloc.s 9 (UnityEngine.Vector3)
IL_04AD: ldloc.s 35 (System.Single)
IL_04AF: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_04B4: stloc.s 39 (UnityEngine.Vector3)
IL_04B6: ldloca.s 36 (UnityEngine.Vector3)
IL_04B8: dup
IL_04B9: ldfld System.Single UnityEngine.Vector3::y
IL_04BE: ldloc.s 34 (NetInfo+Lane)
IL_04C0: ldfld System.Single Lane::m_verticalOffset
IL_04C5: add
IL_04C6: stfld System.Single UnityEngine.Vector3::y
IL_04CB: ldloca.s 38 (UnityEngine.Vector3)
IL_04CD: dup
IL_04CE: ldfld System.Single UnityEngine.Vector3::y
IL_04D3: ldloc.s 34 (NetInfo+Lane)
IL_04D5: ldfld System.Single Lane::m_verticalOffset
IL_04DA: add
IL_04DB: stfld System.Single UnityEngine.Vector3::y
IL_04E0: ldloc.s 36 (UnityEngine.Vector3)
IL_04E2: ldloc.s 37 (UnityEngine.Vector3)
IL_04E4: ldloc.s 38 (UnityEngine.Vector3)
IL_04E6: ldloc.s 39 (UnityEngine.Vector3)
IL_04E8: ldloc.s 10 (System.Boolean)
IL_04EA: ldloc.s 11 (System.Boolean)
IL_04EC: ldloca.s 40 (UnityEngine.Vector3)
IL_04EE: ldloca.s 41 (UnityEngine.Vector3)
IL_04F0: 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_04F5: ldloc.0
IL_04F6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_04FB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0500: ldloc.s 32 (System.UInt32)
IL_0502: conv.u
IL_0503: ldelema NetLane
IL_0508: ldfld System.UInt16 NetLane::m_flags
IL_050D: stloc.s 42 (NetLane+Flags)
IL_050F: ldloc.s 28 (NetLane+Flags)
IL_0511: stloc.s 43 (NetLane+Flags)
IL_0513: ldloc.s 42 (NetLane+Flags)
IL_0515: ldc.i4 -64753
IL_051A: and
IL_051B: stloc.s 42 (NetLane+Flags)
IL_051D: ldloc.s 34 (NetInfo+Lane)
IL_051F: ldfld Direction Lane::m_finalDirection
IL_0524: ldc.i4.3
IL_0525: and
IL_0526: conv.u1
IL_0527: ldc.i4.2
IL_0528: bne.un => Label38
IL_052D: ldloc.s 43 (NetLane+Flags)
IL_052F: ldc.i4 -2049
IL_0534: and
IL_0535: stloc.s 43 (NetLane+Flags)
IL_0537: Label38
IL_0537: ldloc.s 34 (NetInfo+Lane)
IL_0539: ldfld Direction Lane::m_finalDirection
IL_053E: ldc.i4.3
IL_053F: and
IL_0540: conv.u1
IL_0541: ldc.i4.1
IL_0542: bne.un => Label39
IL_0547: ldloc.s 43 (NetLane+Flags)
IL_0549: ldc.i4 -1025
IL_054E: and
IL_054F: stloc.s 43 (NetLane+Flags)
IL_0551: Label39
IL_0551: ldloc.s 34 (NetInfo+Lane)
IL_0553: ldfld VehicleType Lane::m_vehicleType
IL_0558: ldc.i4 2048
IL_055D: and
IL_055E: brfalse => Label40
IL_0563: ldloc.s 43 (NetLane+Flags)
IL_0565: ldc.i4 -3073
IL_056A: and
IL_056B: stloc.s 43 (NetLane+Flags)
IL_056D: Label40
IL_056D: ldloc.s 42 (NetLane+Flags)
IL_056F: ldloc.s 43 (NetLane+Flags)
IL_0571: or
IL_0572: stloc.s 42 (NetLane+Flags)
IL_0574: ldloc.1
IL_0575: brfalse => Label41
IL_057A: ldloc.s 42 (NetLane+Flags)
IL_057C: ldc.i4.4
IL_057D: or
IL_057E: stloc.s 42 (NetLane+Flags)
IL_0580: br => Label42
IL_0585: Label41
IL_0585: ldloc.s 42 (NetLane+Flags)
IL_0587: ldc.i4.s -5
IL_0589: and
IL_058A: stloc.s 42 (NetLane+Flags)
IL_058C: Label42
IL_058C: ldc.i4.0
IL_058D: stloc.s 44 (System.Int32)
IL_058F: ldc.i4 255
IL_0594: stloc.s 45 (System.Int32)
IL_0596: ldloc.s 34 (NetInfo+Lane)
IL_0598: ldfld LaneType Lane::m_laneType
IL_059D: ldc.i4.s 33
IL_059F: and
IL_05A0: conv.u1
IL_05A1: brfalse => Label43
IL_05A6: ldloc.s 34 (NetInfo+Lane)
IL_05A8: ldfld Direction Lane::m_finalDirection
IL_05AD: ldc.i4.1
IL_05AE: and
IL_05AF: conv.u1
IL_05B0: ldc.i4.0
IL_05B1: ceq
IL_05B3: ldc.i4.0
IL_05B4: ceq
IL_05B6: ldarg.2
IL_05B7: ldfld Flags NetSegment::m_flags
IL_05BC: ldc.i4.s 16
IL_05BE: and
IL_05BF: ldc.i4.0
IL_05C0: ceq
IL_05C2: ceq
IL_05C4: stloc.s 46 (System.Boolean)
IL_05C6: ldloc.s 46 (System.Boolean)
IL_05C8: brfalse => Label44
IL_05CD: ldloc.s 12 (System.Int32)
IL_05CF: stloc.s 47 (System.Int32)
IL_05D1: ldloc.s 13 (System.Int32)
IL_05D3: stloc.s 48 (System.Int32)
IL_05D5: ldloc.s 14 (System.Int32)
IL_05D7: stloc.s 49 (System.Int32)
IL_05D9: br => Label45
IL_05DE: Label44
IL_05DE: ldloc.s 20 (System.Int32)
IL_05E0: stloc.s 47 (System.Int32)
IL_05E2: ldloc.s 21 (System.Int32)
IL_05E4: stloc.s 48 (System.Int32)
IL_05E6: ldloc.s 22 (System.Int32)
IL_05E8: stloc.s 49 (System.Int32)
IL_05EA: Label45
IL_05EA: ldloc.s 34 (NetInfo+Lane)
IL_05EC: ldfld Direction Lane::m_finalDirection
IL_05F1: ldc.i4.1
IL_05F2: and
IL_05F3: conv.u1
IL_05F4: brfalse => Label46
IL_05F9: ldloc.s 34 (NetInfo+Lane)
IL_05FB: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0600: stloc.s 50 (System.Int32)
IL_0602: ldloc.s 34 (NetInfo+Lane)
IL_0604: ldfld System.Int32 Lane::m_similarLaneCount
IL_0609: ldloc.s 34 (NetInfo+Lane)
IL_060B: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0610: sub
IL_0611: ldc.i4.1
IL_0612: sub
IL_0613: stloc.s 51 (System.Int32)
IL_0615: br => Label47
IL_061A: Label46
IL_061A: ldloc.s 34 (NetInfo+Lane)
IL_061C: ldfld System.Int32 Lane::m_similarLaneCount
IL_0621: ldloc.s 34 (NetInfo+Lane)
IL_0623: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0628: sub
IL_0629: ldc.i4.1
IL_062A: sub
IL_062B: stloc.s 50 (System.Int32)
IL_062D: ldloc.s 34 (NetInfo+Lane)
IL_062F: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0634: stloc.s 51 (System.Int32)
IL_0636: Label47
IL_0636: ldloc.s 47 (System.Int32)
IL_0638: ldloc.s 48 (System.Int32)
IL_063A: add
IL_063B: ldloc.s 49 (System.Int32)
IL_063D: add
IL_063E: stloc.s 52 (System.Int32)
IL_0640: ldc.i4 255
IL_0645: stloc.s 44 (System.Int32)
IL_0647: ldc.i4.0
IL_0648: stloc.s 45 (System.Int32)
IL_064A: ldloc.s 52 (System.Int32)
IL_064C: brfalse => Label48
IL_0651: ldloc.s 34 (NetInfo+Lane)
IL_0653: ldfld System.Int32 Lane::m_similarLaneCount
IL_0658: ldloc.s 52 (System.Int32)
IL_065A: ble => Label49
IL_065F: ldloc.s 52 (System.Int32)
IL_0661: ldc.i4.0
IL_0662: ble => Label50
IL_0667: ldloc.s 52 (System.Int32)
IL_0669: ldloc.s 50 (System.Int32)
IL_066B: mul
IL_066C: ldloc.s 34 (NetInfo+Lane)
IL_066E: ldfld System.Int32 Lane::m_similarLaneCount
IL_0673: div
IL_0674: stloc.s 44 (System.Int32)
IL_0676: ldloc.s 52 (System.Int32)
IL_0678: ldloc.s 52 (System.Int32)
IL_067A: ldloc.s 51 (System.Int32)
IL_067C: mul
IL_067D: ldloc.s 34 (NetInfo+Lane)
IL_067F: ldfld System.Int32 Lane::m_similarLaneCount
IL_0684: div
IL_0685: sub
IL_0686: stloc.s 45 (System.Int32)
IL_0688: ldloc.s 42 (NetLane+Flags)
IL_068A: ldc.i4 128
IL_068F: or
IL_0690: stloc.s 42 (NetLane+Flags)
IL_0692: ldloc.s 44 (System.Int32)
IL_0694: ldloc.s 47 (System.Int32)
IL_0696: bge => Label51
IL_069B: ldloc.s 42 (NetLane+Flags)
IL_069D: ldc.i4.s 32
IL_069F: or
IL_06A0: stloc.s 42 (NetLane+Flags)
IL_06A2: Label51
IL_06A2: ldloc.s 52 (System.Int32)
IL_06A4: ldloc.s 45 (System.Int32)
IL_06A6: sub
IL_06A7: ldloc.s 49 (System.Int32)
IL_06A9: bge => Label52
IL_06AE: ldloc.s 42 (NetLane+Flags)
IL_06B0: ldc.i4.s 64
IL_06B2: or
IL_06B3: stloc.s 42 (NetLane+Flags)
IL_06B5: Label52
IL_06B5: ldloc.s 48 (System.Int32)
IL_06B7: brfalse => Label53
IL_06BC: ldloc.s 44 (System.Int32)
IL_06BE: ldloc.s 47 (System.Int32)
IL_06C0: ldloc.s 48 (System.Int32)
IL_06C2: add
IL_06C3: bge => Label54
IL_06C8: ldloc.s 45 (System.Int32)
IL_06CA: ldloc.s 47 (System.Int32)
IL_06CC: ble => Label55
IL_06D1: ldloc.s 42 (NetLane+Flags)
IL_06D3: ldc.i4.s 16
IL_06D5: or
IL_06D6: stloc.s 42 (NetLane+Flags)
IL_06D8: Label53
IL_06D8: Label54
IL_06D8: Label55
IL_06D8: br => Label56
IL_06DD: Label49
IL_06DD: Label50
IL_06DD: ldloc.s 34 (NetInfo+Lane)
IL_06DF: ldfld System.Int32 Lane::m_similarLaneCount
IL_06E4: ldloc.s 52 (System.Int32)
IL_06E6: blt => Label57
IL_06EB: ldloc.s 47 (System.Int32)
IL_06ED: stloc.s 53 (System.Int32)
IL_06EF: ldloc.s 49 (System.Int32)
IL_06F1: stloc.s 54 (System.Int32)
IL_06F3: br => Label58
IL_06F8: Label57
IL_06F8: ldloc.s 47 (System.Int32)
IL_06FA: ldloc.s 34 (NetInfo+Lane)
IL_06FC: ldfld System.Int32 Lane::m_similarLaneCount
IL_0701: mul
IL_0702: ldloc.s 52 (System.Int32)
IL_0704: ldloc.s 48 (System.Int32)
IL_0706: ldc.i4.1
IL_0707: shr
IL_0708: add
IL_0709: div
IL_070A: stloc.s 53 (System.Int32)
IL_070C: ldloc.s 49 (System.Int32)
IL_070E: ldloc.s 34 (NetInfo+Lane)
IL_0710: ldfld System.Int32 Lane::m_similarLaneCount
IL_0715: mul
IL_0716: ldloc.s 52 (System.Int32)
IL_0718: ldloc.s 48 (System.Int32)
IL_071A: ldc.i4.1
IL_071B: shr
IL_071C: add
IL_071D: div
IL_071E: stloc.s 54 (System.Int32)
IL_0720: Label58
IL_0720: ldloc.s 53 (System.Int32)
IL_0722: stloc.s 55 (System.Int32)
IL_0724: ldloc.s 34 (NetInfo+Lane)
IL_0726: ldfld System.Int32 Lane::m_similarLaneCount
IL_072B: ldloc.s 53 (System.Int32)
IL_072D: sub
IL_072E: ldloc.s 54 (System.Int32)
IL_0730: sub
IL_0731: stloc.s 56 (System.Int32)
IL_0733: ldloc.s 54 (System.Int32)
IL_0735: stloc.s 57 (System.Int32)
IL_0737: ldloc.s 56 (System.Int32)
IL_0739: ldc.i4.0
IL_073A: ble => Label59
IL_073F: ldloc.s 47 (System.Int32)
IL_0741: ldloc.s 53 (System.Int32)
IL_0743: ble => Label60
IL_0748: ldloc.s 55 (System.Int32)
IL_074A: ldc.i4.1
IL_074B: add
IL_074C: stloc.s 55 (System.Int32)
IL_074E: Label60
IL_074E: ldloc.s 49 (System.Int32)
IL_0750: ldloc.s 54 (System.Int32)
IL_0752: ble => Label61
IL_0757: ldloc.s 57 (System.Int32)
IL_0759: ldc.i4.1
IL_075A: add
IL_075B: stloc.s 57 (System.Int32)
IL_075D: Label59
IL_075D: Label61
IL_075D: ldloc.s 50 (System.Int32)
IL_075F: ldloc.s 55 (System.Int32)
IL_0761: bge => Label62
IL_0766: ldloc.s 50 (System.Int32)
IL_0768: ldloc.s 47 (System.Int32)
IL_076A: mul
IL_076B: ldloc.s 55 (System.Int32)
IL_076D: add
IL_076E: ldc.i4.1
IL_076F: sub
IL_0770: ldloc.s 55 (System.Int32)
IL_0772: div
IL_0773: stloc.s 58 (System.Int32)
IL_0775: ldloc.s 50 (System.Int32)
IL_0777: ldc.i4.1
IL_0778: add
IL_0779: ldloc.s 47 (System.Int32)
IL_077B: mul
IL_077C: ldloc.s 55 (System.Int32)
IL_077E: add
IL_077F: ldc.i4.1
IL_0780: sub
IL_0781: ldloc.s 55 (System.Int32)
IL_0783: div
IL_0784: stloc.s 59 (System.Int32)
IL_0786: ldloc.s 59 (System.Int32)
IL_0788: ldloc.s 58 (System.Int32)
IL_078A: ble => Label63
IL_078F: ldloc.s 42 (NetLane+Flags)
IL_0791: ldc.i4.s 32
IL_0793: or
IL_0794: stloc.s 42 (NetLane+Flags)
IL_0796: ldloc.s 44 (System.Int32)
IL_0798: ldloc.s 58 (System.Int32)
IL_079A: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_079F: stloc.s 44 (System.Int32)
IL_07A1: ldloc.s 45 (System.Int32)
IL_07A3: ldloc.s 59 (System.Int32)
IL_07A5: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_07AA: stloc.s 45 (System.Int32)
IL_07AC: Label62
IL_07AC: Label63
IL_07AC: ldloc.s 50 (System.Int32)
IL_07AE: ldloc.s 53 (System.Int32)
IL_07B0: blt => Label64
IL_07B5: ldloc.s 51 (System.Int32)
IL_07B7: ldloc.s 54 (System.Int32)
IL_07B9: blt => Label65
IL_07BE: ldloc.s 48 (System.Int32)
IL_07C0: brfalse => Label66
IL_07C5: ldloc.s 34 (NetInfo+Lane)
IL_07C7: ldfld System.Int32 Lane::m_similarLaneCount
IL_07CC: ldloc.s 52 (System.Int32)
IL_07CE: ble => Label67
IL_07D3: ldloc.s 53 (System.Int32)
IL_07D5: ldc.i4.1
IL_07D6: add
IL_07D7: stloc.s 53 (System.Int32)
IL_07D9: Label67
IL_07D9: ldloc.s 47 (System.Int32)
IL_07DB: ldloc.s 50 (System.Int32)
IL_07DD: ldloc.s 53 (System.Int32)
IL_07DF: sub
IL_07E0: ldloc.s 48 (System.Int32)
IL_07E2: mul
IL_07E3: ldloc.s 56 (System.Int32)
IL_07E5: add
IL_07E6: ldc.i4.1
IL_07E7: sub
IL_07E8: ldloc.s 56 (System.Int32)
IL_07EA: div
IL_07EB: add
IL_07EC: stloc.s 60 (System.Int32)
IL_07EE: ldloc.s 47 (System.Int32)
IL_07F0: ldloc.s 50 (System.Int32)
IL_07F2: ldc.i4.1
IL_07F3: add
IL_07F4: ldloc.s 53 (System.Int32)
IL_07F6: sub
IL_07F7: ldloc.s 48 (System.Int32)
IL_07F9: mul
IL_07FA: ldloc.s 56 (System.Int32)
IL_07FC: add
IL_07FD: ldc.i4.1
IL_07FE: sub
IL_07FF: ldloc.s 56 (System.Int32)
IL_0801: div
IL_0802: add
IL_0803: stloc.s 61 (System.Int32)
IL_0805: ldloc.s 61 (System.Int32)
IL_0807: ldloc.s 60 (System.Int32)
IL_0809: ble => Label68
IL_080E: ldloc.s 42 (NetLane+Flags)
IL_0810: ldc.i4.s 16
IL_0812: or
IL_0813: stloc.s 42 (NetLane+Flags)
IL_0815: ldloc.s 44 (System.Int32)
IL_0817: ldloc.s 60 (System.Int32)
IL_0819: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_081E: stloc.s 44 (System.Int32)
IL_0820: ldloc.s 45 (System.Int32)
IL_0822: ldloc.s 61 (System.Int32)
IL_0824: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0829: stloc.s 45 (System.Int32)
IL_082B: Label64
IL_082B: Label65
IL_082B: Label66
IL_082B: Label68
IL_082B: ldloc.s 51 (System.Int32)
IL_082D: ldloc.s 57 (System.Int32)
IL_082F: bge => Label69
IL_0834: ldloc.s 52 (System.Int32)
IL_0836: ldloc.s 51 (System.Int32)
IL_0838: ldc.i4.1
IL_0839: add
IL_083A: ldloc.s 49 (System.Int32)
IL_083C: mul
IL_083D: ldloc.s 57 (System.Int32)
IL_083F: add
IL_0840: ldc.i4.1
IL_0841: sub
IL_0842: ldloc.s 57 (System.Int32)
IL_0844: div
IL_0845: sub
IL_0846: stloc.s 62 (System.Int32)
IL_0848: ldloc.s 52 (System.Int32)
IL_084A: ldloc.s 51 (System.Int32)
IL_084C: ldloc.s 49 (System.Int32)
IL_084E: mul
IL_084F: ldloc.s 57 (System.Int32)
IL_0851: add
IL_0852: ldc.i4.1
IL_0853: sub
IL_0854: ldloc.s 57 (System.Int32)
IL_0856: div
IL_0857: sub
IL_0858: stloc.s 63 (System.Int32)
IL_085A: ldloc.s 63 (System.Int32)
IL_085C: ldloc.s 62 (System.Int32)
IL_085E: ble => Label70
IL_0863: ldloc.s 42 (NetLane+Flags)
IL_0865: ldc.i4.s 64
IL_0867: or
IL_0868: stloc.s 42 (NetLane+Flags)
IL_086A: ldloc.s 44 (System.Int32)
IL_086C: ldloc.s 62 (System.Int32)
IL_086E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0873: stloc.s 44 (System.Int32)
IL_0875: ldloc.s 45 (System.Int32)
IL_0877: ldloc.s 63 (System.Int32)
IL_0879: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_087E: stloc.s 45 (System.Int32)
IL_0880: Label69
IL_0880: Label70
IL_0880: ldarg.0
IL_0881: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_0886: brfalse => Label71
IL_088B: ldloc.s 42 (NetLane+Flags)
IL_088D: ldc.i4.s 96
IL_088F: and
IL_0890: ldc.i4.s 32
IL_0892: bne.un => Label72
IL_0897: ldloc.s 42 (NetLane+Flags)
IL_0899: ldc.i4.s 16
IL_089B: and
IL_089C: brfalse => Label73
IL_08A1: ldloc.s 48 (System.Int32)
IL_08A3: ldc.i4.2
IL_08A4: blt => Label74
IL_08A9: ldloc.s 47 (System.Int32)
IL_08AB: ldc.i4.1
IL_08AC: bne.un => Label75
IL_08B1: Label73
IL_08B1: ldloc.s 45 (System.Int32)
IL_08B3: ldloc.s 44 (System.Int32)
IL_08B5: ldc.i4.1
IL_08B6: add
IL_08B7: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_08BC: stloc.s 45 (System.Int32)
IL_08BE: Label74
IL_08BE: Label75
IL_08BE: br => Label76
IL_08C3: Label72
IL_08C3: ldloc.s 42 (NetLane+Flags)
IL_08C5: ldc.i4.s 96
IL_08C7: and
IL_08C8: ldc.i4.s 64
IL_08CA: bne.un => Label77
IL_08CF: ldloc.s 42 (NetLane+Flags)
IL_08D1: ldc.i4.s 16
IL_08D3: and
IL_08D4: brfalse => Label78
IL_08D9: ldloc.s 48 (System.Int32)
IL_08DB: ldc.i4.2
IL_08DC: blt => Label79
IL_08E1: ldloc.s 49 (System.Int32)
IL_08E3: ldc.i4.1
IL_08E4: bne.un => Label80
IL_08E9: Label78
IL_08E9: ldloc.s 44 (System.Int32)
IL_08EB: ldloc.s 45 (System.Int32)
IL_08ED: ldc.i4.1
IL_08EE: sub
IL_08EF: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_08F4: stloc.s 44 (System.Int32)
IL_08F6: Label48
IL_08F6: Label56
IL_08F6: Label71
IL_08F6: Label76
IL_08F6: Label77
IL_08F6: Label79
IL_08F6: Label80
IL_08F6: ldloc.s 46 (System.Boolean)
IL_08F8: brfalse => Label81
IL_08FD: ldloc.s 18 (System.Boolean)
IL_08FF: brfalse => Label82
IL_0904: ldloc.s 42 (NetLane+Flags)
IL_0906: ldc.i4.s -113
IL_0908: and
IL_0909: stloc.s 42 (NetLane+Flags)
IL_090B: br => Label83
IL_0910: Label82
IL_0910: ldloc.s 19 (System.Boolean)
IL_0912: brfalse => Label84
IL_0917: ldloc.s 42 (NetLane+Flags)
IL_0919: ldc.i4.s 16
IL_091B: or
IL_091C: stloc.s 42 (NetLane+Flags)
IL_091E: Label83
IL_091E: Label84
IL_091E: br => Label85
IL_0923: Label81
IL_0923: ldloc.s 26 (System.Boolean)
IL_0925: brfalse => Label86
IL_092A: ldloc.s 42 (NetLane+Flags)
IL_092C: ldc.i4.s -113
IL_092E: and
IL_092F: stloc.s 42 (NetLane+Flags)
IL_0931: br => Label87
IL_0936: Label86
IL_0936: ldloc.s 27 (System.Boolean)
IL_0938: brfalse => Label88
IL_093D: ldloc.s 42 (NetLane+Flags)
IL_093F: ldc.i4.s 16
IL_0941: or
IL_0942: stloc.s 42 (NetLane+Flags)
IL_0944: Label43
IL_0944: Label85
IL_0944: Label87
IL_0944: Label88
IL_0944: ldloc.0
IL_0945: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_094A: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_094F: ldloc.s 32 (System.UInt32)
IL_0951: conv.u
IL_0952: ldelema NetLane
IL_0957: ldloc.s 36 (UnityEngine.Vector3)
IL_0959: ldloc.s 40 (UnityEngine.Vector3)
IL_095B: ldloc.s 41 (UnityEngine.Vector3)
IL_095D: ldloc.s 38 (UnityEngine.Vector3)
IL_095F: newobj System.Void
ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3
_b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d)
IL_0964: stfld ColossalFramework.Math.Bezier3 NetLane::m_bezier
IL_0969: ldloc.0
IL_096A: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_096F: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0974: ldloc.s 32 (System.UInt32)
IL_0976: conv.u
IL_0977: ldelema NetLane
IL_097C: ldarg.1
IL_097D: stfld System.UInt16 NetLane::m_segment
IL_0982: ldloc.0
IL_0983: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0988: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_098D: ldloc.s 32 (System.UInt32)
IL_098F: conv.u
IL_0990: ldelema NetLane
IL_0995: ldloc.s 42 (NetLane+Flags)
IL_0997: conv.u2
IL_0998: stfld System.UInt16 NetLane::m_flags
IL_099D: ldloc.0
IL_099E: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09A3: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09A8: ldloc.s 32 (System.UInt32)
IL_09AA: conv.u
IL_09AB: ldelema NetLane
IL_09B0: ldloc.s 44 (System.Int32)
IL_09B2: conv.u1
IL_09B3: stfld System.Byte NetLane::m_firstTarget
IL_09B8: ldloc.0
IL_09B9: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09BE: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09C3: ldloc.s 32 (System.UInt32)
IL_09C5: conv.u
IL_09C6: ldelema NetLane
IL_09CB: ldloc.s 45 (System.Int32)
IL_09CD: conv.u1
IL_09CE: stfld System.Byte NetLane::m_lastTarget
IL_09D3: ldloc.s 29 (System.Single)
IL_09D5: ldloc.0
IL_09D6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09DB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09E0: ldloc.s 32 (System.UInt32)
IL_09E2: conv.u
IL_09E3: ldelema NetLane
IL_09E8: call System.Single NetLane::UpdateLength()
IL_09ED: add
IL_09EE: stloc.s 29 (System.Single)
IL_09F0: ldloc.s 30 (System.Single)
IL_09F2: ldc.r4 1
IL_09F7: add
IL_09F8: stloc.s 30 (System.Single)
IL_09FA: ldloc.s 32 (System.UInt32)
IL_09FC: stloc.s 31 (System.UInt32)
IL_09FE: ldloc.0
IL_09FF: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0A04: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0A09: ldloc.s 32 (System.UInt32)
IL_0A0B: conv.u
IL_0A0C: ldelema NetLane
IL_0A11: ldfld System.UInt32 NetLane::m_nextLane
IL_0A16: stloc.s 32 (System.UInt32)
IL_0A18: ldloc.s 33 (System.Int32)
IL_0A1A: ldc.i4.1
IL_0A1B: add
IL_0A1C: stloc.s 33 (System.Int32)
IL_0A1E: Label30
IL_0A1E: ldloc.s 33 (System.Int32)
IL_0A20: ldarg.0
IL_0A21: ldfld NetInfo NetAI::m_info
IL_0A26: ldfld Lane[] NetInfo::m_lanes
IL_0A2B: ldlen
IL_0A2C: conv.i4
IL_0A2D: blt => Label89
IL_0A32: Label36
IL_0A32: ldloc.s 30 (System.Single)
IL_0A34: ldc.r4 0
IL_0A39: beq => Label90
IL_0A3E: ldarg.2
IL_0A3F: ldloc.s 29 (System.Single)
IL_0A41: ldloc.s 30 (System.Single)
IL_0A43: div
IL_0A44: stfld System.Single NetSegment::m_averageLength
IL_0A49: br => Label91
IL_0A4E: Label90
IL_0A4E: ldarg.2
IL_0A4F: ldc.r4 0
IL_0A54: stfld System.Single NetSegment::m_averageLength
IL_0A59: Label91
IL_0A59: ldc.i4.0
IL_0A5A: stloc.s 64 (System.Boolean)
IL_0A5C: ldarg.2
IL_0A5D: ldfld System.Single NetSegment::m_averageLength
IL_0A62: ldc.r4 11
IL_0A67: bge.un => Label92
IL_0A6C: ldloc.0
IL_0A6D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0A72: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A77: ldarg.2
IL_0A78: ldfld System.UInt16 NetSegment::m_startNode
IL_0A7D: ldelema NetNode
IL_0A82: ldfld Flags NetNode::m_flags
IL_0A87: ldc.i4 128
IL_0A8C: and
IL_0A8D: brfalse => Label93
IL_0A92: ldloc.0
IL_0A93: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0A98: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A9D: ldarg.2
IL_0A9E: ldfld System.UInt16 NetSegment::m_endNode
IL_0AA3: ldelema NetNode
IL_0AA8: ldfld Flags NetNode::m_flags
IL_0AAD: ldc.i4 128
IL_0AB2: and
IL_0AB3: brfalse => Label94
IL_0AB8: ldc.i4.1
IL_0AB9: stloc.s 64 (System.Boolean)
IL_0ABB: Label92
IL_0ABB: Label93
IL_0ABB: Label94
IL_0ABB: ldarg.2
IL_0ABC: ldfld System.UInt32 NetSegment::m_lanes
IL_0AC1: stloc.s 32 (System.UInt32)
IL_0AC3: ldc.i4.0
IL_0AC4: stloc.s 65 (System.Int32)
IL_0AC6: br => Label95
IL_0ACB: Label98
IL_0ACB: ldloc.0
IL_0ACC: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0AD1: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0AD6: ldloc.s 32 (System.UInt32)
IL_0AD8: conv.u
IL_0AD9: ldelema NetLane
IL_0ADE: ldfld System.UInt16 NetLane::m_flags
IL_0AE3: ldc.i4.s -9
IL_0AE5: and
IL_0AE6: stloc.s 66 (NetLane+Flags)
IL_0AE8: ldloc.s 64 (System.Boolean)
IL_0AEA: brfalse => Label96
IL_0AEF: ldloc.s 66 (NetLane+Flags)
IL_0AF1: ldc.i4.8
IL_0AF2: or
IL_0AF3: stloc.s 66 (NetLane+Flags)
IL_0AF5: Label96
IL_0AF5: ldloc.0
IL_0AF6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0AFB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0B00: ldloc.s 32 (System.UInt32)
IL_0B02: conv.u
IL_0B03: ldelema NetLane
IL_0B08: ldloc.s 66 (NetLane+Flags)
IL_0B0A: conv.u2
IL_0B0B: stfld System.UInt16 NetLane::m_flags
IL_0B10: ldloc.0
IL_0B11: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0B16: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0B1B: ldloc.s 32 (System.UInt32)
IL_0B1D: conv.u
IL_0B1E: ldelema NetLane
IL_0B23: ldfld System.UInt32 NetLane::m_nextLane
IL_0B28: stloc.s 32 (System.UInt32)
IL_0B2A: ldloc.s 65 (System.Int32)
IL_0B2C: ldc.i4.1
IL_0B2D: add
IL_0B2E: stloc.s 65 (System.Int32)
IL_0B30: Label95
IL_0B30: ldloc.s 65 (System.Int32)
IL_0B32: ldarg.0
IL_0B33: ldfld NetInfo NetAI::m_info
IL_0B38: ldfld Lane[] NetInfo::m_lanes
IL_0B3D: ldlen
IL_0B3E: conv.i4
IL_0B3F: bge => Label97
IL_0B44: ldloc.s 32 (System.UInt32)
IL_0B46: brtrue => Label98
IL_0B4B: Label97
IL_0B4B: ldarg.3
IL_0B4C: brtrue => Label99
IL_0B51: ldarg.2
IL_0B52: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0B57: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0B5C: stloc.s 68 (UnityEngine.Vector3)
IL_0B5E: ldloca.s 68 (UnityEngine.Vector3)
IL_0B60: ldfld System.Single UnityEngine.Vector3::x
IL_0B65: ldc.r4 16
IL_0B6A: sub
IL_0B6B: ldc.r4 64
IL_0B70: div
IL_0B71: ldc.r4 135
IL_0B76: add
IL_0B77: conv.i4
IL_0B78: ldc.i4.0
IL_0B79: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0B7E: stloc.s 67 (System.Int32)
IL_0B80: ldarg.2
IL_0B81: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0B86: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0B8B: stloc.s 70 (UnityEngine.Vector3)
IL_0B8D: ldloca.s 70 (UnityEngine.Vector3)
IL_0B8F: ldfld System.Single UnityEngine.Vector3::z
IL_0B94: ldc.r4 16
IL_0B99: sub
IL_0B9A: ldc.r4 64
IL_0B9F: div
IL_0BA0: ldc.r4 135
IL_0BA5: add
IL_0BA6: conv.i4
IL_0BA7: ldc.i4.0
IL_0BA8: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0BAD: stloc.s 69 (System.Int32)
IL_0BAF: ldarg.2
IL_0BB0: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0BB5: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0BBA: stloc.s 72 (UnityEngine.Vector3)
IL_0BBC: ldloca.s 72 (UnityEngine.Vector3)
IL_0BBE: ldfld System.Single UnityEngine.Vector3::x
IL_0BC3: ldc.r4 16
IL_0BC8: add
IL_0BC9: ldc.r4 64
IL_0BCE: div
IL_0BCF: ldc.r4 135
IL_0BD4: add
IL_0BD5: conv.i4
IL_0BD6: ldc.i4 269
IL_0BDB: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0BE0: stloc.s 71 (System.Int32)
IL_0BE2: ldarg.2
IL_0BE3: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0BE8: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0BED: stloc.s 74 (UnityEngine.Vector3)
IL_0BEF: ldloca.s 74 (UnityEngine.Vector3)
IL_0BF1: ldfld System.Single UnityEngine.Vector3::z
IL_0BF6: ldc.r4 16
IL_0BFB: add
IL_0BFC: ldc.r4 64
IL_0C01: div
IL_0C02: ldc.r4 135
IL_0C07: add
IL_0C08: conv.i4
IL_0C09: ldc.i4 269
IL_0C0E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0C13: stloc.s 73 (System.Int32)
IL_0C15: ldloc.s 69 (System.Int32)
IL_0C17: stloc.s 75 (System.Int32)
IL_0C19: br => Label100
IL_0C1E: Label108
IL_0C1E: ldloc.s 67 (System.Int32)
IL_0C20: stloc.s 76 (System.Int32)
IL_0C22: br => Label101
IL_0C27: Label107
IL_0C27: ldloc.0
IL_0C28: ldfld System.UInt16[] NetManager::m_nodeGrid
IL_0C2D: ldloc.s 75 (System.Int32)
IL_0C2F: ldc.i4 270
IL_0C34: mul
IL_0C35: ldloc.s 76 (System.Int32)
IL_0C37: add
IL_0C38: ldelem.u2
IL_0C39: stloc.s 77 (System.UInt16)
IL_0C3B: ldc.i4.0
IL_0C3C: stloc.s 78 (System.Int32)
IL_0C3E: br => Label102
IL_0C43: Label106
IL_0C43: ldloc.0
IL_0C44: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0C49: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0C4E: ldloc.s 77 (System.UInt16)
IL_0C50: ldelema NetNode
IL_0C55: call NetInfo NetNode::get_Info()
IL_0C5A: stloc.s 79 (NetInfo)
IL_0C5C: ldloc.0
IL_0C5D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0C62: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0C67: ldloc.s 77 (System.UInt16)
IL_0C69: ldelema NetNode
IL_0C6E: ldfld UnityEngine.Vector3 NetNode::m_position
IL_0C73: stloc.s 80 (UnityEngine.Vector3)
IL_0C75: ldarg.2
IL_0C76: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0C7B: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0C80: stloc.s 82 (UnityEngine.Vector3)
IL_0C82: ldloca.s 82 (UnityEngine.Vector3)
IL_0C84: ldfld System.Single UnityEngine.Vector3::x
IL_0C89: ldc.r4 16
IL_0C8E: sub
IL_0C8F: ldloca.s 80 (UnityEngine.Vector3)
IL_0C91: ldfld System.Single UnityEngine.Vector3::x
IL_0C96: sub
IL_0C97: ldarg.2
IL_0C98: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0C9D: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0CA2: stloc.s 83 (UnityEngine.Vector3)
IL_0CA4: ldloca.s 83 (UnityEngine.Vector3)
IL_0CA6: ldfld System.Single UnityEngine.Vector3::z
IL_0CAB: ldc.r4 16
IL_0CB0: sub
IL_0CB1: ldloca.s 80 (UnityEngine.Vector3)
IL_0CB3: ldfld System.Single UnityEngine.Vector3::z
IL_0CB8: sub
IL_0CB9: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0CBE: ldloca.s 80 (UnityEngine.Vector3)
IL_0CC0: ldfld System.Single UnityEngine.Vector3::x
IL_0CC5: ldarg.2
IL_0CC6: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0CCB: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0CD0: stloc.s 84 (UnityEngine.Vector3)
IL_0CD2: ldloca.s 84 (UnityEngine.Vector3)
IL_0CD4: ldfld System.Single UnityEngine.Vector3::x
IL_0CD9: sub
IL_0CDA: ldc.r4 16
IL_0CDF: sub
IL_0CE0: ldloca.s 80 (UnityEngine.Vector3)
IL_0CE2: ldfld System.Single UnityEngine.Vector3::z
IL_0CE7: ldarg.2
IL_0CE8: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0CED: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0CF2: stloc.s 85 (UnityEngine.Vector3)
IL_0CF4: ldloca.s 85 (UnityEngine.Vector3)
IL_0CF6: ldfld System.Single UnityEngine.Vector3::z
IL_0CFB: sub
IL_0CFC: ldc.r4 16
IL_0D01: sub
IL_0D02: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0D07: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0D0C: stloc.s 81 (System.Single)
IL_0D0E: ldloc.s 81 (System.Single)
IL_0D10: ldc.r4 0
IL_0D15: bge.un => Label103
IL_0D1A: ldloc.s 79 (NetInfo)
IL_0D1C: ldfld NetAI NetInfo::m_netAI
IL_0D21: ldloc.s 77 (System.UInt16)
IL_0D23: ldloc.0
IL_0D24: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0D29: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0D2E: ldloc.s 77 (System.UInt16)
IL_0D30: ldelema NetNode
IL_0D35: callvirt virtual System.Void NetAI::NearbyLanesUpdated(System.UInt16
nodeID, NetNode& data)
IL_0D3A: Label103
IL_0D3A: ldloc.0
IL_0D3B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0D40: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0D45: ldloc.s 77 (System.UInt16)
IL_0D47: ldelema NetNode
IL_0D4C: ldfld System.UInt16 NetNode::m_nextGridNode
IL_0D51: stloc.s 77 (System.UInt16)
IL_0D53: ldloc.s 78 (System.Int32)
IL_0D55: ldc.i4.1
IL_0D56: add
IL_0D57: dup
IL_0D58: stloc.s 78 (System.Int32)
IL_0D5A: ldc.i4 32768
IL_0D5F: blt => Label104
IL_0D64: ldc.i4.1
IL_0D65: ldstr "Invalid list detected!\n"
IL_0D6A: call static System.String System.Environment::get_StackTrace()
IL_0D6F: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_0D74: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Error(LogChannel ll, System.String
msg)
IL_0D79: br => Label105
IL_0D7E: Label102
IL_0D7E: Label104
IL_0D7E: ldloc.s 77 (System.UInt16)
IL_0D80: brtrue => Label106
IL_0D85: Label105
IL_0D85: ldloc.s 76 (System.Int32)
IL_0D87: ldc.i4.1
IL_0D88: add
IL_0D89: stloc.s 76 (System.Int32)
IL_0D8B: Label101
IL_0D8B: ldloc.s 76 (System.Int32)
IL_0D8D: ldloc.s 71 (System.Int32)
IL_0D8F: ble => Label107
IL_0D94: ldloc.s 75 (System.Int32)
IL_0D96: ldc.i4.1
IL_0D97: add
IL_0D98: stloc.s 75 (System.Int32)
IL_0D9A: Label100
IL_0D9A: ldloc.s 75 (System.Int32)
IL_0D9C: ldloc.s 73 (System.Int32)
IL_0D9E: ble => Label108
IL_0DA3: ldarg.0
IL_0DA4: ldfld NetInfo NetAI::m_info
IL_0DA9: ldfld System.Boolean NetInfo::m_hasPedestrianLanes
IL_0DAE: brfalse => Label109
IL_0DB3: ldarg.0
IL_0DB4: ldfld NetInfo NetAI::m_info
IL_0DB9: ldfld System.Boolean NetInfo::m_hasForwardVehicleLanes
IL_0DBE: brtrue => Label110
IL_0DC3: ldarg.0
IL_0DC4: ldfld NetInfo NetAI::m_info
IL_0DC9: ldfld System.Boolean NetInfo::m_hasBackwardVehicleLanes
IL_0DCE: brfalse => Label111
IL_0DD3: Label110
IL_0DD3: ldarg.1
IL_0DD4: ldarg.2
IL_0DD5: call static System.Void RoadBaseAI::CheckBuildings(System.UInt16
segmentID, NetSegment& data)
IL_0DDA: // end original
IL_0DDA: Label99
IL_0DDA: Label109
IL_0DDA: Label111
IL_0DDA: ldarg 1
IL_0DDE: ldarg 2
IL_0DE2: ldarg 3
IL_0DE6: call static System.Void
TrafficManager.Patch._RoadBaseAI.UpdateLanesPatch::Postfix(System.UInt16 segmentID,
NetSegment& data, System.Boolean loading)
IL_0DEB: 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::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.s => Label1
IL_0014: 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: 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_0035: stloc 1 (System.Boolean)
IL_0039: nop
IL_003A: ldloc 1 (System.Boolean)
IL_003E: brfalse => Label0
IL_0043: // start original
IL_0043: ldarg.s 4
IL_0045: ldc.i4.2
IL_0046: shl
IL_0047: ldarg.3
IL_0048: or
IL_0049: stloc.0
IL_004A: ldarg.1
IL_004B: ldfld System.UInt16 NetSegment::m_startNode
IL_0050: ldarg.0
IL_0051: bne.un => Label2
IL_0056: ldarg.2
IL_0057: ldc.i4.8
IL_0058: shr.un
IL_0059: ldc.i4.1
IL_005A: and
IL_005B: brtrue => Label3
IL_0060: ldarg.1
IL_0061: ldarg.1
IL_0062: ldfld System.Byte NetSegment::m_trafficLightState0
IL_0067: ldc.i4 240
IL_006C: and
IL_006D: ldloc.0
IL_006E: or
IL_006F: conv.u1
IL_0070: stfld System.Byte NetSegment::m_trafficLightState0
IL_0075: br => Label4
IL_007A: Label3
IL_007A: ldarg.1
IL_007B: ldarg.1
IL_007C: ldfld System.Byte NetSegment::m_trafficLightState1
IL_0081: ldc.i4 240
IL_0086: and
IL_0087: ldloc.0
IL_0088: or
IL_0089: conv.u1
IL_008A: stfld System.Byte NetSegment::m_trafficLightState1
IL_008F: Label4
IL_008F: ldarg.s 5
IL_0091: brfalse => Label5
IL_0096: ldarg.1
IL_0097: dup
IL_0098: ldfld Flags NetSegment::m_flags
IL_009D: ldc.i4 4096
IL_00A2: or
IL_00A3: stfld Flags NetSegment::m_flags
IL_00A8: br => Label6
IL_00AD: Label5
IL_00AD: ldarg.1
IL_00AE: dup
IL_00AF: ldfld Flags NetSegment::m_flags
IL_00B4: ldc.i4 -4097
IL_00B9: and
IL_00BA: stfld Flags NetSegment::m_flags
IL_00BF: Label6
IL_00BF: ldarg.s 6
IL_00C1: brfalse => Label7
IL_00C6: ldarg.1
IL_00C7: dup
IL_00C8: ldfld Flags NetSegment::m_flags
IL_00CD: ldc.i4 16384
IL_00D2: or
IL_00D3: stfld Flags NetSegment::m_flags
IL_00D8: br => Label8
IL_00DD: Label7
IL_00DD: ldarg.1
IL_00DE: dup
IL_00DF: ldfld Flags NetSegment::m_flags
IL_00E4: ldc.i4 -16385
IL_00E9: and
IL_00EA: stfld Flags NetSegment::m_flags
IL_00EF: Label8
IL_00EF: br => Label9
IL_00F4: Label2
IL_00F4: ldarg.2
IL_00F5: ldc.i4.8
IL_00F6: shr.un
IL_00F7: ldc.i4.1
IL_00F8: and
IL_00F9: brtrue => Label10
IL_00FE: ldarg.1
IL_00FF: ldarg.1
IL_0100: ldfld System.Byte NetSegment::m_trafficLightState0
IL_0105: ldc.i4.s 15
IL_0107: and
IL_0108: ldloc.0
IL_0109: ldc.i4.4
IL_010A: shl
IL_010B: or
IL_010C: conv.u1
IL_010D: stfld System.Byte NetSegment::m_trafficLightState0
IL_0112: br => Label11
IL_0117: Label10
IL_0117: ldarg.1
IL_0118: ldarg.1
IL_0119: ldfld System.Byte NetSegment::m_trafficLightState1
IL_011E: ldc.i4.s 15
IL_0120: and
IL_0121: ldloc.0
IL_0122: ldc.i4.4
IL_0123: shl
IL_0124: or
IL_0125: conv.u1
IL_0126: stfld System.Byte NetSegment::m_trafficLightState1
IL_012B: Label11
IL_012B: ldarg.s 5
IL_012D: brfalse => Label12
IL_0132: ldarg.1
IL_0133: dup
IL_0134: ldfld Flags NetSegment::m_flags
IL_0139: ldc.i4 8192
IL_013E: or
IL_013F: stfld Flags NetSegment::m_flags
IL_0144: br => Label13
IL_0149: Label12
IL_0149: ldarg.1
IL_014A: dup
IL_014B: ldfld Flags NetSegment::m_flags
IL_0150: ldc.i4 -8193
IL_0155: and
IL_0156: stfld Flags NetSegment::m_flags
IL_015B: Label13
IL_015B: ldarg.s 6
IL_015D: brfalse => Label14
IL_0162: ldarg.1
IL_0163: dup
IL_0164: ldfld Flags NetSegment::m_flags
IL_0169: ldc.i4 32768
IL_016E: or
IL_016F: stfld Flags NetSegment::m_flags
IL_0174: br => Label15
IL_0179: Label14
IL_0179: ldarg.1
IL_017A: dup
IL_017B: ldfld Flags NetSegment::m_flags
IL_0180: ldc.i4 -32769
IL_0185: and
IL_0186: stfld Flags NetSegment::m_flags
IL_018B: // end original
IL_018B: Label9
IL_018B: Label15
IL_018B: Label0
IL_018B: ret
DONE

### Patch: virtual System.Void RoadBaseAI::SimulationStep(System.UInt16 segmentID,


NetSegment& data)
### Replacement: static System.Void 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/Problem
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.s => Label1
IL_0014: ldarg.0
IL_0015: ldarg 1
IL_0019: ldarg 2
IL_001D: call static System.Void
TrafficManager.Patch._RoadBaseAI.SegmentSimulationStepPatch::Prefix(RoadBaseAI
__instance, System.UInt16 segmentID, NetSegment& data)
IL_0022: nop
IL_0023: ldloc 44 (System.Boolean)
IL_0027: brfalse => Label0
IL_002C: // start original
IL_002C: ldarg.0
IL_002D: ldarg.1
IL_002E: ldarg.2
IL_002F: call virtual System.Void PlayerNetAI::SimulationStep(System.UInt16
segmentID, NetSegment& data)
IL_0034: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0039: stloc.0
IL_003A: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_003F: stloc.1
IL_0040: ldarg.2
IL_0041: ldfld Problem NetSegment::m_problems
IL_0046: ldc.i4 805306368
IL_004B: conv.i8
IL_004C: call static Problem Notification::RemoveProblems(Problem problems1,
Problem problems2)
IL_0051: stloc.2
IL_0052: ldarg.2
IL_0053: ldfld Flags NetSegment::m_flags
IL_0058: ldc.i4 2048
IL_005D: and
IL_005E: brfalse => Label2
IL_0063: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0068: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_006D: ldc.i4.s 16
IL_006F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0074: brtrue => Label3
IL_0079: ldarg.2
IL_007A: dup
IL_007B: ldfld Flags NetSegment::m_flags
IL_0080: ldc.i4 -2049
IL_0085: and
IL_0086: stfld Flags NetSegment::m_flags
IL_008B: Label2
IL_008B: Label3
IL_008B: ldc.r4 0
IL_0090: stloc.3
IL_0091: ldarg.2
IL_0092: ldfld System.UInt32 NetSegment::m_lanes
IL_0097: stloc.s 4 (System.UInt32)
IL_0099: ldc.i4.0
IL_009A: stloc.s 5 (System.Int32)
IL_009C: br => Label4
IL_00A1: Label8
IL_00A1: ldarg.0
IL_00A2: ldfld NetInfo NetAI::m_info
IL_00A7: ldfld Lane[] NetInfo::m_lanes
IL_00AC: ldloc.s 5 (System.Int32)
IL_00AE: ldelem.ref
IL_00AF: stloc.s 6 (NetInfo+Lane)
IL_00B1: ldloc.s 6 (NetInfo+Lane)
IL_00B3: ldfld LaneType Lane::m_laneType
IL_00B8: ldc.i4.s 33
IL_00BA: and
IL_00BB: conv.u1
IL_00BC: brfalse => Label5
IL_00C1: ldloc.s 6 (NetInfo+Lane)
IL_00C3: ldfld VehicleType Lane::m_vehicleType
IL_00C8: ldc.i4.s -33
IL_00CA: and
IL_00CB: brfalse => Label6
IL_00D0: ldloc.3
IL_00D1: ldloc.1
IL_00D2: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00D7: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00DC: ldloc.s 4 (System.UInt32)
IL_00DE: conv.u
IL_00DF: ldelema NetLane
IL_00E4: ldfld System.Single NetLane::m_length
IL_00E9: add
IL_00EA: stloc.3
IL_00EB: Label5
IL_00EB: Label6
IL_00EB: ldloc.1
IL_00EC: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00F1: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00F6: ldloc.s 4 (System.UInt32)
IL_00F8: conv.u
IL_00F9: ldelema NetLane
IL_00FE: ldfld System.UInt32 NetLane::m_nextLane
IL_0103: stloc.s 4 (System.UInt32)
IL_0105: ldloc.s 5 (System.Int32)
IL_0107: ldc.i4.1
IL_0108: add
IL_0109: stloc.s 5 (System.Int32)
IL_010B: Label4
IL_010B: ldloc.s 5 (System.Int32)
IL_010D: ldarg.0
IL_010E: ldfld NetInfo NetAI::m_info
IL_0113: ldfld Lane[] NetInfo::m_lanes
IL_0118: ldlen
IL_0119: conv.i4
IL_011A: bge => Label7
IL_011F: ldloc.s 4 (System.UInt32)
IL_0121: brtrue => Label8
IL_0126: Label7
IL_0126: ldc.i4.0
IL_0127: stloc.s 7 (System.Int32)
IL_0129: ldc.i4.0
IL_012A: stloc.s 8 (System.Int32)
IL_012C: ldarg.2
IL_012D: ldfld System.UInt16 NetSegment::m_trafficBuffer
IL_0132: ldc.i4 65535
IL_0137: bne.un => Label9
IL_013C: ldarg.2
IL_013D: ldfld Flags NetSegment::m_flags
IL_0142: ldc.i4 2097152
IL_0147: and
IL_0148: brtrue => Label10
IL_014D: ldarg.2
IL_014E: dup
IL_014F: ldfld Flags NetSegment::m_flags
IL_0154: ldc.i4 2097152
IL_0159: or
IL_015A: stfld Flags NetSegment::m_flags
IL_015F: ldarg.2
IL_0160: ldloc.0
IL_0161: dup
IL_0162: ldfld System.UInt32 SimulationManager::m_currentBuildIndex
IL_0167: dup
IL_0168: stloc.s 9 (System.UInt32)
IL_016A: ldc.i4.1
IL_016B: add
IL_016C: stfld System.UInt32 SimulationManager::m_currentBuildIndex
IL_0171: ldloc.s 9 (System.UInt32)
IL_0173: stfld System.UInt32 NetSegment::m_modifiedIndex
IL_0178: Label10
IL_0178: br => Label11
IL_017D: Label9
IL_017D: ldarg.2
IL_017E: dup
IL_017F: ldfld Flags NetSegment::m_flags
IL_0184: ldc.i4 -2097153
IL_0189: and
IL_018A: stfld Flags NetSegment::m_flags
IL_018F: ldloc.3
IL_0190: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_0195: ldc.i4.4
IL_0196: shl
IL_0197: stloc.s 10 (System.Int32)
IL_0199: ldloc.s 10 (System.Int32)
IL_019B: brfalse => Label12
IL_01A0: ldarg.2
IL_01A1: ldfld System.UInt16 NetSegment::m_trafficBuffer
IL_01A6: ldc.i4.s 100
IL_01A8: mul
IL_01A9: ldloc.s 10 (System.Int32)
IL_01AB: div
IL_01AC: ldc.i4.s 100
IL_01AE: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01B3: conv.u1
IL_01B4: stloc.s 7 (System.Int32)
IL_01B6: ldarg.2
IL_01B7: ldfld System.UInt16 NetSegment::m_noiseBuffer
IL_01BC: ldc.i4 250
IL_01C1: mul
IL_01C2: ldloc.s 10 (System.Int32)
IL_01C4: div
IL_01C5: ldc.i4.s 100
IL_01C7: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01CC: conv.u1
IL_01CD: stloc.s 8 (System.Int32)
IL_01CF: Label11
IL_01CF: Label12
IL_01CF: ldarg.2
IL_01D0: ldc.i4.0
IL_01D1: stfld System.UInt16 NetSegment::m_trafficBuffer
IL_01D6: ldarg.2
IL_01D7: ldc.i4.0
IL_01D8: stfld System.UInt16 NetSegment::m_noiseBuffer
IL_01DD: ldloc.s 7 (System.Int32)
IL_01DF: ldarg.2
IL_01E0: ldfld System.Byte NetSegment::m_trafficDensity
IL_01E5: ble => Label13
IL_01EA: ldarg.2
IL_01EB: ldarg.2
IL_01EC: ldfld System.Byte NetSegment::m_trafficDensity
IL_01F1: ldc.i4.5
IL_01F2: add
IL_01F3: ldloc.s 7 (System.Int32)
IL_01F5: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01FA: conv.u1
IL_01FB: stfld System.Byte NetSegment::m_trafficDensity
IL_0200: br => Label14
IL_0205: Label13
IL_0205: ldloc.s 7 (System.Int32)
IL_0207: ldarg.2
IL_0208: ldfld System.Byte NetSegment::m_trafficDensity
IL_020D: bge => Label15
IL_0212: ldarg.2
IL_0213: ldarg.2
IL_0214: ldfld System.Byte NetSegment::m_trafficDensity
IL_0219: ldc.i4.5
IL_021A: sub
IL_021B: ldloc.s 7 (System.Int32)
IL_021D: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0222: conv.u1
IL_0223: stfld System.Byte NetSegment::m_trafficDensity
IL_0228: Label14
IL_0228: Label15
IL_0228: ldloc.s 8 (System.Int32)
IL_022A: ldarg.2
IL_022B: ldfld System.Byte NetSegment::m_noiseDensity
IL_0230: ble => Label16
IL_0235: ldarg.2
IL_0236: ldarg.2
IL_0237: ldfld System.Byte NetSegment::m_noiseDensity
IL_023C: ldc.i4.2
IL_023D: add
IL_023E: ldloc.s 8 (System.Int32)
IL_0240: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0245: conv.u1
IL_0246: stfld System.Byte NetSegment::m_noiseDensity
IL_024B: br => Label17
IL_0250: Label16
IL_0250: ldloc.s 8 (System.Int32)
IL_0252: ldarg.2
IL_0253: ldfld System.Byte NetSegment::m_noiseDensity
IL_0258: bge => Label18
IL_025D: ldarg.2
IL_025E: ldarg.2
IL_025F: ldfld System.Byte NetSegment::m_noiseDensity
IL_0264: ldc.i4.2
IL_0265: sub
IL_0266: ldloc.s 8 (System.Int32)
IL_0268: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_026D: conv.u1
IL_026E: stfld System.Byte NetSegment::m_noiseDensity
IL_0273: Label17
IL_0273: Label18
IL_0273: ldloc.1
IL_0274: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0279: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_027E: ldarg.2
IL_027F: ldfld System.UInt16 NetSegment::m_startNode
IL_0284: ldelema NetNode
IL_0289: ldfld UnityEngine.Vector3 NetNode::m_position
IL_028E: stloc.s 11 (UnityEngine.Vector3)
IL_0290: ldloc.1
IL_0291: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0296: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_029B: ldarg.2
IL_029C: ldfld System.UInt16 NetSegment::m_endNode
IL_02A1: ldelema NetNode
IL_02A6: ldfld UnityEngine.Vector3 NetNode::m_position
IL_02AB: stloc.s 12 (UnityEngine.Vector3)
IL_02AD: ldloc.s 11 (UnityEngine.Vector3)
IL_02AF: ldloc.s 12 (UnityEngine.Vector3)
IL_02B1: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_02B6: ldc.r4 0.5
IL_02BB: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_02C0: stloc.s 13 (UnityEngine.Vector3)
IL_02C2: ldc.i4.0
IL_02C3: stloc.s 14 (System.Boolean)
IL_02C5: ldarg.0
IL_02C6: ldfld NetInfo NetAI::m_info
IL_02CB: ldfld Flags NetInfo::m_setVehicleFlags
IL_02D0: ldc.i4 268435456
IL_02D5: and
IL_02D6: brtrue => Label19
IL_02DB: call static TerrainManager
ColossalFramework.Singleton`1<TerrainManager>::get_instance()
IL_02E0: ldloc.s 13 (UnityEngine.Vector3)
IL_02E2: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_02E7: callvirt System.Single TerrainManager::WaterLevel(UnityEngine.Vector2
position)
IL_02EC: stloc.s 15 (System.Single)
IL_02EE: ldloc.s 15 (System.Single)
IL_02F0: ldloca.s 13 (UnityEngine.Vector3)
IL_02F2: ldfld System.Single UnityEngine.Vector3::y
IL_02F7: ldc.r4 1
IL_02FC: add
IL_02FD: ble.un => Label20
IL_0302: ldloc.s 15 (System.Single)
IL_0304: ldc.r4 0
IL_0309: ble.un => Label21
IL_030E: ldc.i4.1
IL_030F: stloc.s 14 (System.Boolean)
IL_0311: ldarg.2
IL_0312: dup
IL_0313: ldfld Flags NetSegment::m_flags
IL_0318: ldc.i4 4194304
IL_031D: or
IL_031E: stfld Flags NetSegment::m_flags
IL_0323: ldloc.2
IL_0324: ldc.i8 4611686018695823360
IL_032D: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0332: stloc.2
IL_0333: ldarg.2
IL_0334: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0339: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_033E: stloc.s 16 (UnityEngine.Vector3)
IL_0340: ldarg.2
IL_0341: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0346: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_034B: stloc.s 17 (UnityEngine.Vector3)
IL_034D: ldloca.s 16 (UnityEngine.Vector3)
IL_034F: ldfld System.Single UnityEngine.Vector3::x
IL_0354: ldloca.s 16 (UnityEngine.Vector3)
IL_0356: ldfld System.Single UnityEngine.Vector3::z
IL_035B: ldloca.s 17 (UnityEngine.Vector3)
IL_035D: ldfld System.Single UnityEngine.Vector3::x
IL_0362: ldloca.s 17 (UnityEngine.Vector3)
IL_0364: ldfld System.Single UnityEngine.Vector3::z
IL_0369: call static System.Void RoadBaseAI::FloodParkedCars(System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_036E: br => Label22
IL_0373: Label20
IL_0373: Label21
IL_0373: ldarg.2
IL_0374: dup
IL_0375: ldfld Flags NetSegment::m_flags
IL_037A: ldc.i4 -4194305
IL_037F: and
IL_0380: stfld Flags NetSegment::m_flags
IL_0385: ldloc.s 15 (System.Single)
IL_0387: ldloca.s 13 (UnityEngine.Vector3)
IL_0389: ldfld System.Single UnityEngine.Vector3::y
IL_038E: ble.un => Label23
IL_0393: ldloc.s 15 (System.Single)
IL_0395: ldc.r4 0
IL_039A: ble.un => Label24
IL_039F: ldc.i4.1
IL_03A0: stloc.s 14 (System.Boolean)
IL_03A2: ldloc.2
IL_03A3: ldc.i4 268435456
IL_03A8: conv.i8
IL_03A9: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_03AE: stloc.2
IL_03AF: Label19
IL_03AF: Label22
IL_03AF: Label23
IL_03AF: Label24
IL_03AF: call static DistrictManager
ColossalFramework.Singleton`1<DistrictManager>::get_instance()
IL_03B4: stloc.s 18 (DistrictManager)
IL_03B6: ldloc.s 18 (DistrictManager)
IL_03B8: ldloc.s 13 (UnityEngine.Vector3)
IL_03BA: callvirt System.Byte DistrictManager::GetDistrict(UnityEngine.Vector3
worldPos)
IL_03BF: stloc.s 19 (System.Byte)
IL_03C1: ldloc.s 18 (DistrictManager)
IL_03C3: ldfld Array8`1<District> DistrictManager::m_districts
IL_03C8: ldfld District[] Array8`1<District>::m_buffer
IL_03CD: ldloc.s 19 (System.Byte)
IL_03CF: ldelema District
IL_03D4: ldfld CityPlanning District::m_cityPlanningPolicies
IL_03D9: stloc.s 20 (DistrictPolicies+CityPlanning)
IL_03DB: ldc.i4.s 100
IL_03DD: ldarg.2
IL_03DE: ldfld System.Byte NetSegment::m_noiseDensity
IL_03E3: ldc.i4.s 100
IL_03E5: sub
IL_03E6: ldarg.2
IL_03E7: ldfld System.Byte NetSegment::m_noiseDensity
IL_03EC: ldc.i4.s 100
IL_03EE: sub
IL_03EF: mul
IL_03F0: ldc.i4.s 100
IL_03F2: div
IL_03F3: sub
IL_03F4: stloc.s 21 (System.Int32)
IL_03F6: ldarg.0
IL_03F7: ldfld NetInfo NetAI::m_info
IL_03FC: ldfld VehicleType NetInfo::m_vehicleTypes
IL_0401: ldc.i4.1
IL_0402: and
IL_0403: brfalse => Label25
IL_0408: ldarg.0
IL_0409: ldfld NetInfo NetAI::m_info
IL_040E: ldfld Flags NetInfo::m_setVehicleFlags
IL_0413: ldc.i4 268435456
IL_0418: and
IL_0419: brtrue => Label26
IL_041E: ldloc.s 14 (System.Boolean)
IL_0420: brfalse => Label27
IL_0425: ldarg.2
IL_0426: ldfld Flags NetSegment::m_flags
IL_042B: ldc.i4 2099200
IL_0430: and
IL_0431: brtrue => Label28
IL_0436: ldloc.0
IL_0437: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_043C: ldc.i4.s 10
IL_043E: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0443: brtrue => Label29
IL_0448: ldloca.s 22 (TransferManager+TransferOffer)
IL_044A: initobj TransferManager+TransferOffer
IL_0450: ldloca.s 22 (TransferManager+TransferOffer)
IL_0452: ldc.i4.4
IL_0453: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_0458: ldloca.s 22 (TransferManager+TransferOffer)
IL_045A: ldarg.1
IL_045B: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_0460: ldloca.s 22 (TransferManager+TransferOffer)
IL_0462: ldloc.s 13 (UnityEngine.Vector3)
IL_0464: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_0469: ldloca.s 22 (TransferManager+TransferOffer)
IL_046B: ldc.i4.1
IL_046C: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_0471: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_0476: ldc.i4.s 73
IL_0478: ldloc.s 22 (TransferManager+TransferOffer)
IL_047A: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason
material, TransferOffer offer)
IL_047F: Label27
IL_047F: Label28
IL_047F: Label29
IL_047F: ldarg.2
IL_0480: ldfld System.Byte NetSegment::m_wetness
IL_0485: stloc.s 23 (System.Int32)
IL_0487: ldloc.1
IL_0488: ldfld System.Boolean NetManager::m_treatWetAsSnow
IL_048D: brtrue => Label30
IL_0492: ldloc.s 14 (System.Boolean)
IL_0494: brfalse => Label31
IL_0499: ldc.i4 255
IL_049E: stloc.s 23 (System.Int32)
IL_04A0: br => Label32
IL_04A5: Label31
IL_04A5: ldloc.s 23 (System.Int32)
IL_04A7: ldc.i4.s 63
IL_04A9: add
IL_04AA: ldc.i4.5
IL_04AB: shr
IL_04AC: neg
IL_04AD: stloc.s 24 (System.Int32)
IL_04AF: call static WeatherManager
ColossalFramework.Singleton`1<WeatherManager>::get_instance()
IL_04B4: ldloc.s 13 (UnityEngine.Vector3)
IL_04B6: ldc.i4.0
IL_04B7: callvirt System.Single
WeatherManager::SampleRainIntensity(UnityEngine.Vector3 pos, System.Boolean
ignoreWeather)
IL_04BC: stloc.s 25 (System.Single)
IL_04BE: ldloc.s 25 (System.Single)
IL_04C0: ldc.r4 0
IL_04C5: beq => Label33
IL_04CA: ldloc.s 25 (System.Single)
IL_04CC: ldc.r4 4000
IL_04D1: mul
IL_04D2: ldc.r4 1000
IL_04D7: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_04DC: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_04E1: stloc.s 26 (System.Int32)
IL_04E3: ldloc.s 24 (System.Int32)
IL_04E5: ldloc.0
IL_04E6: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_04EB: ldloc.s 26 (System.Int32)
IL_04ED: ldloc.s 26 (System.Int32)
IL_04EF: ldc.i4.s 99
IL_04F1: add
IL_04F2: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_04F7: ldc.i4.s 100
IL_04F9: div
IL_04FA: add
IL_04FB: stloc.s 24 (System.Int32)
IL_04FD: Label33
IL_04FD: ldloc.s 23 (System.Int32)
IL_04FF: ldloc.s 24 (System.Int32)
IL_0501: add
IL_0502: ldc.i4.0
IL_0503: ldc.i4 255
IL_0508: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_050D: stloc.s 23 (System.Int32)
IL_050F: Label32
IL_050F: br => Label34
IL_0514: Label30
IL_0514: ldarg.0
IL_0515: ldfld System.Boolean RoadBaseAI::m_accumulateSnow
IL_051A: brfalse => Label35
IL_051F: ldloc.s 14 (System.Boolean)
IL_0521: brfalse => Label36
IL_0526: ldc.i4 128
IL_052B: stloc.s 23 (System.Int32)
IL_052D: br => Label37
IL_0532: Label36
IL_0532: call static WeatherManager
ColossalFramework.Singleton`1<WeatherManager>::get_instance()
IL_0537: ldloc.s 13 (UnityEngine.Vector3)
IL_0539: ldc.i4.0
IL_053A: callvirt System.Single
WeatherManager::SampleRainIntensity(UnityEngine.Vector3 pos, System.Boolean
ignoreWeather)
IL_053F: stloc.s 27 (System.Single)
IL_0541: ldloc.s 27 (System.Single)
IL_0543: ldc.r4 0
IL_0548: beq => Label38
IL_054D: ldloc.s 27 (System.Single)
IL_054F: ldc.r4 400
IL_0554: mul
IL_0555: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_055A: stloc.s 28 (System.Int32)
IL_055C: ldloc.0
IL_055D: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0562: ldloc.s 28 (System.Int32)
IL_0564: ldloc.s 28 (System.Int32)
IL_0566: ldc.i4.s 99
IL_0568: add
IL_0569: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_056E: ldc.i4.s 100
IL_0570: div
IL_0571: stloc.s 29 (System.Int32)
IL_0573: call static UnlockManager
ColossalFramework.Singleton`1<UnlockManager>::get_instance()
IL_0578: ldc.i4.s 24
IL_057A: callvirt System.Boolean UnlockManager::Unlocked(Feature feature)
IL_057F: brfalse => Label39
IL_0584: ldloc.s 23 (System.Int32)
IL_0586: ldloc.s 29 (System.Int32)
IL_0588: add
IL_0589: ldc.i4 255
IL_058E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0593: stloc.s 23 (System.Int32)
IL_0595: br => Label40
IL_059A: Label39
IL_059A: ldloc.s 23 (System.Int32)
IL_059C: ldloc.s 29 (System.Int32)
IL_059E: add
IL_059F: ldc.i4 128
IL_05A4: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_05A9: stloc.s 23 (System.Int32)
IL_05AB: Label40
IL_05AB: br => Label41
IL_05B0: Label38
IL_05B0: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_05B5: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_05BA: ldc.i4.4
IL_05BB: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_05C0: brtrue => Label42
IL_05C5: ldloc.s 23 (System.Int32)
IL_05C7: ldc.i4.1
IL_05C8: sub
IL_05C9: ldc.i4.0
IL_05CA: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_05CF: stloc.s 23 (System.Int32)
IL_05D1: Label41
IL_05D1: Label42
IL_05D1: ldloc.s 23 (System.Int32)
IL_05D3: ldc.i4.s 64
IL_05D5: blt => Label43
IL_05DA: ldarg.2
IL_05DB: ldfld Flags NetSegment::m_flags
IL_05E0: ldc.i4 6293504
IL_05E5: and
IL_05E6: brtrue => Label44
IL_05EB: ldloc.0
IL_05EC: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_05F1: ldc.i4.s 10
IL_05F3: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_05F8: brtrue => Label45
IL_05FD: ldloca.s 30 (TransferManager+TransferOffer)
IL_05FF: initobj TransferManager+TransferOffer
IL_0605: ldloca.s 30 (TransferManager+TransferOffer)
IL_0607: ldloc.s 23 (System.Int32)
IL_0609: ldc.i4.s 50
IL_060B: div
IL_060C: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_0611: ldloca.s 30 (TransferManager+TransferOffer)
IL_0613: ldarg.1
IL_0614: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_0619: ldloca.s 30 (TransferManager+TransferOffer)
IL_061B: ldloc.s 13 (UnityEngine.Vector3)
IL_061D: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_0622: ldloca.s 30 (TransferManager+TransferOffer)
IL_0624: ldc.i4.1
IL_0625: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_062A: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_062F: ldc.i4.s 64
IL_0631: ldloc.s 30 (TransferManager+TransferOffer)
IL_0633: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason
material, TransferOffer offer)
IL_0638: Label43
IL_0638: Label44
IL_0638: Label45
IL_0638: ldloc.s 23 (System.Int32)
IL_063A: ldc.i4 192
IL_063F: blt => Label46
IL_0644: ldloc.2
IL_0645: ldc.i4 536870912
IL_064A: conv.i8
IL_064B: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0650: stloc.2
IL_0651: Label46
IL_0651: ldloc.s 18 (DistrictManager)
IL_0653: ldfld Array8`1<District> DistrictManager::m_districts
IL_0658: ldfld District[] Array8`1<District>::m_buffer
IL_065D: ldloc.s 19 (System.Byte)
IL_065F: ldelema District
IL_0664: ldflda DistrictProductionData District::m_productionData
IL_0669: dup
IL_066A: ldfld System.UInt32 DistrictProductionData::m_tempSnowCover
IL_066F: ldloc.s 23 (System.Int32)
IL_0671: add
IL_0672: stfld System.UInt32 DistrictProductionData::m_tempSnowCover
IL_0677: Label34
IL_0677: Label35
IL_0677: Label37
IL_0677: ldloc.s 23 (System.Int32)
IL_0679: ldarg.2
IL_067A: ldfld System.Byte NetSegment::m_wetness
IL_067F: beq => Label47
IL_0684: ldarg.2
IL_0685: ldfld System.Byte NetSegment::m_wetness
IL_068A: ldloc.s 23 (System.Int32)
IL_068C: sub
IL_068D: call static System.Int32 UnityEngine.Mathf::Abs(System.Int32 value)
IL_0692: ldc.i4.s 10
IL_0694: ble => Label48
IL_0699: ldarg.2
IL_069A: ldloc.s 23 (System.Int32)
IL_069C: conv.u1
IL_069D: stfld System.Byte NetSegment::m_wetness
IL_06A2: ldsfld InstanceID InstanceID::Empty
IL_06A7: stloc.s 31 (InstanceID)
IL_06A9: ldloca.s 31 (InstanceID)
IL_06AB: ldarg.1
IL_06AC: call System.Void InstanceID::set_NetSegment(System.UInt16 value)
IL_06B1: ldloc.1
IL_06B2: ldloc.s 31 (InstanceID)
IL_06B4: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06B9: ldloca.s 31 (InstanceID)
IL_06BB: ldarg.2
IL_06BC: ldfld System.UInt16 NetSegment::m_startNode
IL_06C1: call System.Void InstanceID::set_NetNode(System.UInt16 value)
IL_06C6: ldloc.1
IL_06C7: ldloc.s 31 (InstanceID)
IL_06C9: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06CE: ldloca.s 31 (InstanceID)
IL_06D0: ldarg.2
IL_06D1: ldfld System.UInt16 NetSegment::m_endNode
IL_06D6: call System.Void InstanceID::set_NetNode(System.UInt16 value)
IL_06DB: ldloc.1
IL_06DC: ldloc.s 31 (InstanceID)
IL_06DE: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06E3: br => Label49
IL_06E8: Label48
IL_06E8: ldarg.2
IL_06E9: ldloc.s 23 (System.Int32)
IL_06EB: conv.u1
IL_06EC: stfld System.Byte NetSegment::m_wetness
IL_06F1: ldloc.1
IL_06F2: ldc.i4 256
IL_06F7: stfld System.Int32 NetManager::m_wetnessChanged
IL_06FC: Label26
IL_06FC: Label47
IL_06FC: Label49
IL_06FC: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_06FE: ldc.i4 1024
IL_0703: and
IL_0704: brfalse => Label50
IL_0709: ldloc.s 21 (System.Int32)
IL_070B: ldc.i4.3
IL_070C: mul
IL_070D: ldc.i4.1
IL_070E: add
IL_070F: ldc.i4.1
IL_0710: shr
IL_0711: stloc.s 21 (System.Int32)
IL_0713: ldc.i4 700
IL_0718: ldc.i4.s 50
IL_071A: ldarg.2
IL_071B: ldfld System.Byte NetSegment::m_trafficDensity
IL_0720: ldc.i4.6
IL_0721: mul
IL_0722: add
IL_0723: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0728: stloc.s 32 (System.Int32)
IL_072A: br => Label51
IL_072F: Label50
IL_072F: ldc.i4 500
IL_0734: ldc.i4.s 50
IL_0736: ldarg.2
IL_0737: ldfld System.Byte NetSegment::m_trafficDensity
IL_073C: ldc.i4.4
IL_073D: mul
IL_073E: add
IL_073F: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0744: stloc.s 32 (System.Int32)
IL_0746: Label51
IL_0746: ldarg.0
IL_0747: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_074C: brtrue => Label52
IL_0751: ldloc.0
IL_0752: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0757: ldloc.s 32 (System.Int32)
IL_0759: ldloc.s 32 (System.Int32)
IL_075B: ldc.i4.s 99
IL_075D: add
IL_075E: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_0763: ldc.i4.s 100
IL_0765: div
IL_0766: stloc.s 33 (System.Int32)
IL_0768: ldarg.2
IL_0769: ldarg.2
IL_076A: ldfld System.Byte NetSegment::m_condition
IL_076F: ldloc.s 33 (System.Int32)
IL_0771: sub
IL_0772: ldc.i4.0
IL_0773: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0778: conv.u1
IL_0779: stfld System.Byte NetSegment::m_condition
IL_077E: ldarg.2
IL_077F: ldfld System.Byte NetSegment::m_condition
IL_0784: ldc.i4 192
IL_0789: bge => Label53
IL_078E: ldarg.2
IL_078F: ldfld Flags NetSegment::m_flags
IL_0794: ldc.i4 6293504
IL_0799: and
IL_079A: brtrue => Label54
IL_079F: ldloc.0
IL_07A0: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_07A5: ldc.i4.s 20
IL_07A7: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_07AC: brtrue => Label55
IL_07B1: ldloca.s 34 (TransferManager+TransferOffer)
IL_07B3: initobj TransferManager+TransferOffer
IL_07B9: ldloca.s 34 (TransferManager+TransferOffer)
IL_07BB: ldc.i4 255
IL_07C0: ldarg.2
IL_07C1: ldfld System.Byte NetSegment::m_condition
IL_07C6: sub
IL_07C7: ldc.i4.s 50
IL_07C9: div
IL_07CA: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_07CF: ldloca.s 34 (TransferManager+TransferOffer)
IL_07D1: ldarg.1
IL_07D2: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_07D7: ldloca.s 34 (TransferManager+TransferOffer)
IL_07D9: ldloc.s 13 (UnityEngine.Vector3)
IL_07DB: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_07E0: ldloca.s 34 (TransferManager+TransferOffer)
IL_07E2: ldc.i4.1
IL_07E3: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_07E8: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_07ED: ldc.i4.s 66
IL_07EF: ldloc.s 34 (TransferManager+TransferOffer)
IL_07F1: callvirt System.Void TransferManager::AddIncomingOffer(TransferReason
material, TransferOffer offer)
IL_07F6: Label25
IL_07F6: Label52
IL_07F6: Label53
IL_07F6: Label54
IL_07F6: Label55
IL_07F6: ldarg.0
IL_07F7: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_07FC: brtrue => Label56
IL_0801: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_0803: ldc.i4.s 32
IL_0805: and
IL_0806: brfalse => Label57
IL_080B: ldarg.2
IL_080C: dup
IL_080D: ldfld Flags NetSegment::m_flags
IL_0812: ldc.i4 1048576
IL_0817: or
IL_0818: stfld Flags NetSegment::m_flags
IL_081D: br => Label58
IL_0822: Label57
IL_0822: ldarg.2
IL_0823: dup
IL_0824: ldfld Flags NetSegment::m_flags
IL_0829: ldc.i4 -1048577
IL_082E: and
IL_082F: stfld Flags NetSegment::m_flags
IL_0834: Label58
IL_0834: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_0836: ldc.i4 128
IL_083B: and
IL_083C: brfalse => Label59
IL_0841: ldarg.2
IL_0842: dup
IL_0843: ldfld Flags NetSegment::m_flags
IL_0848: ldc.i4 8388608
IL_084D: or
IL_084E: stfld Flags NetSegment::m_flags
IL_0853: br => Label60
IL_0858: Label59
IL_0858: ldarg.2
IL_0859: dup
IL_085A: ldfld Flags NetSegment::m_flags
IL_085F: ldc.i4 -8388609
IL_0864: and
IL_0865: stfld Flags NetSegment::m_flags
IL_086A: Label60
IL_086A: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_086C: ldc.i4 512
IL_0871: and
IL_0872: brfalse => Label61
IL_0877: ldarg.2
IL_0878: dup
IL_0879: ldfld Flags NetSegment::m_flags
IL_087E: ldc.i4 16777216
IL_0883: or
IL_0884: stfld Flags NetSegment::m_flags
IL_0889: br => Label62
IL_088E: Label61
IL_088E: ldarg.2
IL_088F: dup
IL_0890: ldfld Flags NetSegment::m_flags
IL_0895: ldc.i4 -16777217
IL_089A: and
IL_089B: stfld Flags NetSegment::m_flags
IL_08A0: Label62
IL_08A0: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_08A2: ldc.i4 65536
IL_08A7: and
IL_08A8: brfalse => Label63
IL_08AD: ldarg.2
IL_08AE: dup
IL_08AF: ldfld Flags NetSegment::m_flags
IL_08B4: ldc.i4 256
IL_08B9: or
IL_08BA: stfld Flags NetSegment::m_flags
IL_08BF: br => Label64
IL_08C4: Label63
IL_08C4: ldarg.2
IL_08C5: dup
IL_08C6: ldfld Flags NetSegment::m_flags
IL_08CB: ldc.i4 -257
IL_08D0: and
IL_08D1: stfld Flags NetSegment::m_flags
IL_08D6: Label56
IL_08D6: Label64
IL_08D6: ldarg.0
IL_08D7: ldfld System.Int32 RoadBaseAI::m_noiseAccumulation
IL_08DC: ldloc.s 21 (System.Int32)
IL_08DE: mul
IL_08DF: ldc.i4.s 100
IL_08E1: div
IL_08E2: stloc.s 35 (System.Int32)
IL_08E4: ldloc.s 35 (System.Int32)
IL_08E6: brfalse => Label65
IL_08EB: ldloc.s 11 (UnityEngine.Vector3)
IL_08ED: ldloc.s 12 (UnityEngine.Vector3)
IL_08EF: call static System.Single
UnityEngine.Vector3::Distance(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_08F4: stloc.s 36 (System.Single)
IL_08F6: ldloc.s 36 (System.Single)
IL_08F8: ldarg.0
IL_08F9: ldfld System.Single RoadBaseAI::m_noiseRadius
IL_08FE: div
IL_08FF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single
f)
IL_0904: stloc.s 37 (System.Int32)
IL_0906: ldc.i4.0
IL_0907: stloc.s 38 (System.Int32)
IL_0909: br => Label66
IL_090E: Label67
IL_090E: ldloc.s 11 (UnityEngine.Vector3)
IL_0910: ldloc.s 12 (UnityEngine.Vector3)
IL_0912: ldloc.s 38 (System.Int32)
IL_0914: ldc.i4.1
IL_0915: add
IL_0916: conv.r4
IL_0917: ldloc.s 37 (System.Int32)
IL_0919: ldc.i4.1
IL_091A: add
IL_091B: conv.r4
IL_091C: div
IL_091D: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_0922: stloc.s 39 (UnityEngine.Vector3)
IL_0924: call static ImmaterialResourceManager
ColossalFramework.Singleton`1<ImmaterialResourceManager>::get_instance()
IL_0929: ldc.i4.8
IL_092A: ldloc.s 35 (System.Int32)
IL_092C: ldloc.s 39 (UnityEngine.Vector3)
IL_092E: ldarg.0
IL_092F: ldfld System.Single RoadBaseAI::m_noiseRadius
IL_0934: callvirt System.Int32 ImmaterialResourceManager::AddResource(Resource
resource, System.Int32 rate, UnityEngine.Vector3 position, System.Single radius)
IL_0939: pop
IL_093A: ldloc.s 38 (System.Int32)
IL_093C: ldc.i4.1
IL_093D: add
IL_093E: stloc.s 38 (System.Int32)
IL_0940: Label66
IL_0940: ldloc.s 38 (System.Int32)
IL_0942: ldloc.s 37 (System.Int32)
IL_0944: blt => Label67
IL_0949: Label65
IL_0949: ldarg.2
IL_094A: ldfld System.Byte NetSegment::m_trafficDensity
IL_094F: ldc.i4.s 50
IL_0951: blt => Label68
IL_0956: ldarg.2
IL_0957: ldfld System.Single NetSegment::m_averageLength
IL_095C: ldc.r4 25
IL_0961: bge.un => Label69
IL_0966: ldloc.1
IL_0967: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_096C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0971: ldarg.2
IL_0972: ldfld System.UInt16 NetSegment::m_startNode
IL_0977: ldelema NetNode
IL_097C: ldfld Flags NetNode::m_flags
IL_0981: ldc.i4 10485760
IL_0986: and
IL_0987: ldc.i4 8388608
IL_098C: bne.un => Label70
IL_0991: ldloc.1
IL_0992: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0997: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_099C: ldarg.2
IL_099D: ldfld System.UInt16 NetSegment::m_endNode
IL_09A2: ldelema NetNode
IL_09A7: ldfld Flags NetNode::m_flags
IL_09AC: ldc.i4 10485760
IL_09B1: and
IL_09B2: ldc.i4 8388608
IL_09B7: bne.un => Label71
IL_09BC: call static GuideManager
ColossalFramework.Singleton`1<GuideManager>::get_instance()
IL_09C1: ldfld GuideController SimulationManagerBase`2<GuideManager,
GuideController>::m_properties
IL_09C6: stloc.s 40 (GuideController)
IL_09C8: ldloc.s 40 (GuideController)
IL_09CA: brfalse => Label72
IL_09CF: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_09D4: ldfld NetSegmentInstanceGuide NetManager::m_shortRoadTraffic
IL_09D9: ldloc.s 40 (GuideController)
IL_09DB: ldfld GuideInfo GuideController::m_shortRoadTraffic
IL_09E0: ldarg.1
IL_09E1: ldc.i4.0
IL_09E2: callvirt System.Void NetSegmentInstanceGuide::Activate(GuideInfo
guideInfo, System.UInt16 segmentID, System.Boolean ignoreID)
IL_09E7: Label68
IL_09E7: Label69
IL_09E7: Label70
IL_09E7: Label71
IL_09E7: Label72
IL_09E7: ldarg.2
IL_09E8: ldfld Flags NetSegment::m_flags
IL_09ED: ldc.i4.8
IL_09EE: and
IL_09EF: brfalse => Label73
IL_09F4: call static GuideManager
ColossalFramework.Singleton`1<GuideManager>::get_instance()
IL_09F9: ldfld GuideController SimulationManagerBase`2<GuideManager,
GuideController>::m_properties
IL_09FE: stloc.s 41 (GuideController)
IL_0A00: ldloc.s 41 (GuideController)
IL_0A02: brfalse => Label74
IL_0A07: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0A0C: ldfld NetSegmentInstanceGuide NetManager::m_roadDestroyed
IL_0A11: ldloc.s 41 (GuideController)
IL_0A13: ldfld GuideInfo GuideController::m_roadDestroyed
IL_0A18: ldarg.1
IL_0A19: ldc.i4.0
IL_0A1A: callvirt System.Void NetSegmentInstanceGuide::Activate(GuideInfo
guideInfo, System.UInt16 segmentID, System.Boolean ignoreID)
IL_0A1F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0A24: ldfld ServiceTypeGuide NetManager::m_roadDestroyed2
IL_0A29: ldloc.s 41 (GuideController)
IL_0A2B: ldfld GuideInfo GuideController::m_roadDestroyed2
IL_0A30: ldarg.0
IL_0A31: ldfld NetInfo NetAI::m_info
IL_0A36: ldfld ItemClass NetInfo::m_class
IL_0A3B: ldfld Service ItemClass::m_service
IL_0A40: callvirt System.Void ServiceTypeGuide::Activate(GuideInfo guideInfo,
Service service)
IL_0A45: Label74
IL_0A45: ldloc.0
IL_0A46: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0A4B: ldc.i4.8
IL_0A4C: shr.un
IL_0A4D: ldc.i4.s 15
IL_0A4F: and
IL_0A50: conv.u8
IL_0A51: ldarg.1
IL_0A52: ldc.i4.s 15
IL_0A54: and
IL_0A55: conv.i8
IL_0A56: bne.un => Label75
IL_0A5B: ldarg.2
IL_0A5C: ldfld System.Single NetSegment::m_averageLength
IL_0A61: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_0A66: stloc.s 42 (System.Int32)
IL_0A68: call static StatisticsManager
ColossalFramework.Singleton`1<StatisticsManager>::get_instance()
IL_0A6D: ldc.i4.s 53
IL_0A6F: callvirt StatisticBase StatisticsManager::Acquire(StatisticType type)
IL_0A74: stloc.s 43 (StatisticBase)
IL_0A76: ldloc.s 43 (StatisticBase)
IL_0A78: ldloc.s 42 (System.Int32)
IL_0A7A: callvirt abstract virtual System.Void StatisticBase::Add(System.Int32
delta)
IL_0A7F: Label73
IL_0A7F: Label75
IL_0A7F: ldarg.2
IL_0A80: ldloc.2
IL_0A81: stfld Problem NetSegment::m_problems
IL_0A86: // end original
IL_0A86: Label0
IL_0A86: ret
DONE

### Patch: static System.Void


TrainTrackBaseAI::LevelCrossingSimulationStep(System.UInt16 nodeID, NetNode& data)
### Replacement: static System.Void
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.s => Label1
IL_0014: ldnull
IL_0015: ldarg 0
IL_0019: ldarg 1
IL_001D: call static System.Boolean
TrafficManager.Patch._RoadBaseAI.TrafficLightSimulationStepPatch::Prefix(RoadBaseAI
__instance, System.UInt16 nodeID, NetNode& data)
IL_0022: stloc 20 (System.Boolean)
IL_0026: nop
IL_0027: ldloc 20 (System.Boolean)
IL_002B: brfalse => Label0
IL_0030: // start original
IL_0030: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0035: stloc.0
IL_0036: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_003B: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0040: stloc.1
IL_0041: ldc.i4.0
IL_0042: stloc.2
IL_0043: ldc.i4.0
IL_0044: stloc.3
IL_0045: ldc.i4.0
IL_0046: stloc.s 4 (System.Int32)
IL_0048: br => Label2
IL_004D: Label14
IL_004D: ldarg.1
IL_004E: ldloc.s 4 (System.Int32)
IL_0050: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0055: stloc.s 5 (System.UInt16)
IL_0057: ldloc.s 5 (System.UInt16)
IL_0059: brfalse => Label3
IL_005E: ldloc.0
IL_005F: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0064: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0069: ldloc.s 5 (System.UInt16)
IL_006B: ldelema NetSegment
IL_0070: call NetInfo NetSegment::get_Info()
IL_0075: stloc.s 6 (NetInfo)
IL_0077: ldloc.s 6 (NetInfo)
IL_0079: ldfld ItemClass NetInfo::m_class
IL_007E: ldfld Service ItemClass::m_service
IL_0083: ldc.i4.s 9
IL_0085: beq => Label4
IL_008A: ldloc.s 6 (NetInfo)
IL_008C: ldfld Lane[] NetInfo::m_lanes
IL_0091: brfalse => Label5
IL_0096: ldloc.0
IL_0097: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_009C: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00A1: ldloc.s 5 (System.UInt16)
IL_00A3: ldelema NetSegment
IL_00A8: ldfld System.UInt16 NetSegment::m_startNode
IL_00AD: ldarg.0
IL_00AE: ceq
IL_00B0: stloc.s 7 (System.Boolean)
IL_00B2: ldloc.0
IL_00B3: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_00B8: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00BD: ldloc.s 5 (System.UInt16)
IL_00BF: ldelema NetSegment
IL_00C4: ldfld System.UInt32 NetSegment::m_lanes
IL_00C9: stloc.s 8 (System.UInt32)
IL_00CB: ldc.i4.0
IL_00CC: stloc.s 9 (System.Int32)
IL_00CE: br => Label6
IL_00D3: Label12
IL_00D3: ldloc.s 6 (NetInfo)
IL_00D5: ldfld Lane[] NetInfo::m_lanes
IL_00DA: ldloc.s 9 (System.Int32)
IL_00DC: ldelem.ref
IL_00DD: ldfld LaneType Lane::m_laneType
IL_00E2: ldc.i4.1
IL_00E3: bne.un => Label7
IL_00E8: ldloc.0
IL_00E9: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00EE: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00F3: ldloc.s 8 (System.UInt32)
IL_00F5: conv.u
IL_00F6: ldelema NetLane
IL_00FB: ldloc.s 7 (System.Boolean)
IL_00FD: brfalse => Label8
IL_0102: ldc.r4 0
IL_0107: br => Label9
IL_010C: Label8
IL_010C: ldc.r4 1
IL_0111: Label9
IL_0111: call UnityEngine.Vector3 NetLane::CalculatePosition(System.Single
laneOffset)
IL_0116: stloc.s 10 (UnityEngine.Vector3)
IL_0118: ldloc.s 10 (UnityEngine.Vector3)
IL_011A: call static System.Boolean
TrainTrackBaseAI::CheckOverlap(UnityEngine.Vector3 pos)
IL_011F: brfalse => Label10
IL_0124: ldc.i4.1
IL_0125: stloc.2
IL_0126: Label7
IL_0126: Label10
IL_0126: ldloc.0
IL_0127: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_012C: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0131: ldloc.s 8 (System.UInt32)
IL_0133: conv.u
IL_0134: ldelema NetLane
IL_0139: ldfld System.UInt32 NetLane::m_nextLane
IL_013E: stloc.s 8 (System.UInt32)
IL_0140: ldloc.s 9 (System.Int32)
IL_0142: ldc.i4.1
IL_0143: add
IL_0144: stloc.s 9 (System.Int32)
IL_0146: Label6
IL_0146: ldloc.s 9 (System.Int32)
IL_0148: ldloc.s 6 (NetInfo)
IL_014A: ldfld Lane[] NetInfo::m_lanes
IL_014F: ldlen
IL_0150: conv.i4
IL_0151: bge => Label11
IL_0156: ldloc.s 8 (System.UInt32)
IL_0158: brtrue => Label12
IL_015D: Label5
IL_015D: Label11
IL_015D: ldarg.0
IL_015E: ldloc.0
IL_015F: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0164: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0169: ldloc.s 5 (System.UInt16)
IL_016B: ldelema NetSegment
IL_0170: ldloc.1
IL_0171: ldc.i4 256
IL_0176: sub
IL_0177: ldloca.s 11 (RoadBaseAI+TrafficLightState)
IL_0179: ldloca.s 12 (RoadBaseAI+TrafficLightState)
IL_017B: ldloca.s 13 (System.Boolean)
IL_017D: ldloca.s 14 (System.Boolean)
IL_017F: 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_0184: ldloc.s 13 (System.Boolean)
IL_0186: brfalse => Label13
IL_018B: ldc.i4.1
IL_018C: stloc.2
IL_018D: Label3
IL_018D: Label4
IL_018D: Label13
IL_018D: ldloc.s 4 (System.Int32)
IL_018F: ldc.i4.1
IL_0190: add
IL_0191: stloc.s 4 (System.Int32)
IL_0193: Label2
IL_0193: ldloc.s 4 (System.Int32)
IL_0195: ldc.i4.8
IL_0196: blt => Label14
IL_019B: ldloc.2
IL_019C: stloc.3
IL_019D: ldc.i4.0
IL_019E: stloc.s 15 (System.Int32)
IL_01A0: br => Label15
IL_01A5: Label29
IL_01A5: ldarg.1
IL_01A6: ldloc.s 15 (System.Int32)
IL_01A8: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_01AD: stloc.s 16 (System.UInt16)
IL_01AF: ldloc.s 16 (System.UInt16)
IL_01B1: brfalse => Label16
IL_01B6: ldloc.0
IL_01B7: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01BC: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01C1: ldloc.s 16 (System.UInt16)
IL_01C3: ldelema NetSegment
IL_01C8: call NetInfo NetSegment::get_Info()
IL_01CD: stloc.s 17 (NetInfo)
IL_01CF: ldarg.0
IL_01D0: ldloc.0
IL_01D1: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01D6: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01DB: ldloc.s 16 (System.UInt16)
IL_01DD: ldelema NetSegment
IL_01E2: ldloc.1
IL_01E3: ldc.i4 256
IL_01E8: sub
IL_01E9: ldloca.s 18 (RoadBaseAI+TrafficLightState)
IL_01EB: ldloca.s 19 (RoadBaseAI+TrafficLightState)
IL_01ED: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_01F2: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01F4: ldc.i4.s -2
IL_01F6: and
IL_01F7: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01F9: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_01FB: ldc.i4.s -2
IL_01FD: and
IL_01FE: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0200: ldloc.s 17 (NetInfo)
IL_0202: ldfld ItemClass NetInfo::m_class
IL_0207: ldfld Service ItemClass::m_service
IL_020C: ldc.i4.s 9
IL_020E: bne.un => Label17
IL_0213: ldloc.3
IL_0214: brfalse => Label18
IL_0219: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_021B: ldc.i4.2
IL_021C: and
IL_021D: brtrue => Label19
IL_0222: ldc.i4.3
IL_0223: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0225: Label19
IL_0225: br => Label20
IL_022A: Label18
IL_022A: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_022C: ldc.i4.2
IL_022D: and
IL_022E: brfalse => Label21
IL_0233: ldc.i4.1
IL_0234: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0236: Label20
IL_0236: Label21
IL_0236: ldc.i4.0
IL_0237: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0239: br => Label22
IL_023E: Label17
IL_023E: ldloc.3
IL_023F: brfalse => Label23
IL_0244: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0246: ldc.i4.2
IL_0247: and
IL_0248: brfalse => Label24
IL_024D: ldc.i4.1
IL_024E: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0250: Label24
IL_0250: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0252: ldc.i4.2
IL_0253: and
IL_0254: brtrue => Label25
IL_0259: ldc.i4.3
IL_025A: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_025C: Label25
IL_025C: br => Label26
IL_0261: Label23
IL_0261: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0263: ldc.i4.2
IL_0264: and
IL_0265: brtrue => Label27
IL_026A: ldc.i4.3
IL_026B: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_026D: Label27
IL_026D: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_026F: ldc.i4.2
IL_0270: and
IL_0271: brfalse => Label28
IL_0276: ldc.i4.1
IL_0277: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0279: Label22
IL_0279: Label26
IL_0279: Label28
IL_0279: ldarg.0
IL_027A: ldloc.0
IL_027B: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0280: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0285: ldloc.s 16 (System.UInt16)
IL_0287: ldelema NetSegment
IL_028C: ldloc.1
IL_028D: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_028F: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0291: ldc.i4.0
IL_0292: ldc.i4.0
IL_0293: 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_0298: Label16
IL_0298: ldloc.s 15 (System.Int32)
IL_029A: ldc.i4.1
IL_029B: add
IL_029C: stloc.s 15 (System.Int32)
IL_029E: Label15
IL_029E: ldloc.s 15 (System.Int32)
IL_02A0: ldc.i4.8
IL_02A1: blt => Label29
IL_02A6: // end original
IL_02A6: Label0
IL_02A6: ret
DONE

### Patch: virtual System.Void HumanAI::ArriveAtDestination(System.UInt16


instanceID, CitizenInstance& citizenData, System.Boolean success)
### Replacement: static System.Void 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.s => Label1
IL_0014: ldarg.0
IL_0015: ldarg 1
IL_0019: ldarg 2
IL_001D: ldarg 3
IL_0021: call static System.Void
TrafficManager.Patch._HumanAI.ArriveAtDestinationPatch::Prefix(HumanAI __instance,
System.UInt16 instanceID, CitizenInstance& citizenData, System.Boolean success)
IL_0026: nop
IL_0027: ldloc 7 (System.Boolean)
IL_002B: brfalse => Label0
IL_0030: // start original
IL_0030: ldarg.2
IL_0031: ldfld System.UInt32 CitizenInstance::m_citizen
IL_0036: stloc.0
IL_0037: ldloc.0
IL_0038: brfalse => Label2
IL_003D: call static CitizenManager
ColossalFramework.Singleton`1<CitizenManager>::get_instance()
IL_0042: stloc.1
IL_0043: ldloc.1
IL_0044: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0049: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_004E: ldloc.0
IL_004F: conv.u
IL_0050: ldelema Citizen
IL_0055: ldloc.0
IL_0056: ldc.i4.0
IL_0057: ldc.i4.0
IL_0058: call System.Void Citizen::SetVehicle(System.UInt32 citizenID,
System.UInt16 vehicleID, System.UInt32 unitID)
IL_005D: ldarg.2
IL_005E: ldfld Flags CitizenInstance::m_flags
IL_0063: ldc.i4 134217728
IL_0068: and
IL_0069: brfalse => Label3
IL_006E: ldarg.3
IL_006F: brfalse => Label4
IL_0074: ldarg.2
IL_0075: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_007A: stloc.2
IL_007B: ldloc.2
IL_007C: brfalse => Label5
IL_0081: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0086: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0090: ldloc.2
IL_0091: ldelema NetNode
IL_0096: ldfld System.UInt16 NetNode::m_transportLine
IL_009B: stloc.3
IL_009C: ldloc.3
IL_009D: brfalse => Label6
IL_00A2: call static TransportManager
ColossalFramework.Singleton`1<TransportManager>::get_instance()
IL_00A7: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_00AC: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_00B1: ldloc.3
IL_00B2: ldelema TransportLine
IL_00B7: call TransportInfo TransportLine::get_Info()
IL_00BC: stloc.s 4 (TransportInfo)
IL_00BE: ldloc.s 4 (TransportInfo)
IL_00C0: ldfld VehicleType TransportInfo::m_vehicleType
IL_00C5: brtrue => Label7
IL_00CA: ldarg.1
IL_00CB: ldc.i4.1
IL_00CC: and
IL_00CD: brtrue => Label8
IL_00D2: ldloc.2
IL_00D3: call static System.UInt16 TransportLine::GetNextStop(System.UInt16
stop)
IL_00D8: stloc.2
IL_00D9: br => Label9
IL_00DE: Label8
IL_00DE: ldloc.2
IL_00DF: call static System.UInt16 TransportLine::GetPrevStop(System.UInt16
stop)
IL_00E4: stloc.2
IL_00E5: Label9
IL_00E5: ldloc.2
IL_00E6: brfalse => Label10
IL_00EB: ldarg.2
IL_00EC: dup
IL_00ED: ldfld Flags CitizenInstance::m_flags
IL_00F2: ldc.i4 268435456
IL_00F7: or
IL_00F8: stfld Flags CitizenInstance::m_flags
IL_00FD: ldarg.0
IL_00FE: ldarg.1
IL_00FF: ldarg.2
IL_0100: ldloc.2
IL_0101: ldc.i4.1
IL_0102: callvirt virtual System.Void CitizenAI::SetTarget(System.UInt16
instanceID, CitizenInstance& data, System.UInt16 targetIndex, System.Boolean
targetIsNode)
IL_0107: br => Label18
IL_010C: Label10
IL_010C: br => Label11
IL_0111: Label7
IL_0111: ldarg.2
IL_0112: dup
IL_0113: ldfld Flags CitizenInstance::m_flags
IL_0118: ldc.i4 268435456
IL_011D: or
IL_011E: stfld Flags CitizenInstance::m_flags
IL_0123: ldarg.0
IL_0124: ldarg.1
IL_0125: ldarg.2
IL_0126: ldloc.2
IL_0127: call System.Void HumanAI::WaitTouristVehicle(System.UInt16
instanceID, CitizenInstance& citizenData, System.UInt16 stop)
IL_012C: br => Label19
IL_0131: Label4
IL_0131: Label5
IL_0131: Label6
IL_0131: Label11
IL_0131: br => Label12
IL_0136: Label3
IL_0136: ldarg.3
IL_0137: brfalse => Label13
IL_013C: ldloc.1
IL_013D: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0142: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0147: ldloc.0
IL_0148: conv.u
IL_0149: ldelema Citizen
IL_014E: ldloc.0
IL_014F: ldarg.2
IL_0150: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_0155: call System.Void Citizen::SetLocationByBuilding(System.UInt32
citizenID, System.UInt16 buildingID)
IL_015A: Label13
IL_015A: ldarg.2
IL_015B: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_0160: brfalse => Label14
IL_0165: ldloc.1
IL_0166: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_016B: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0170: ldloc.0
IL_0171: conv.u
IL_0172: ldelema Citizen
IL_0177: call Location Citizen::get_CurrentLocation()
IL_017C: ldc.i4.2
IL_017D: bne.un => Label15
IL_0182: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0187: stloc.s 5 (BuildingManager)
IL_0189: ldloc.s 5 (BuildingManager)
IL_018B: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0190: ldfld Building[] Array16`1<Building>::m_buffer
IL_0195: ldarg.2
IL_0196: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_019B: ldelema Building
IL_01A0: call BuildingInfo Building::get_Info()
IL_01A5: stloc.s 6 (BuildingInfo)
IL_01A7: ldloc.s 6 (BuildingInfo)
IL_01A9: ldfld BuildingAI BuildingInfo::m_buildingAI
IL_01AE: ldarg.2
IL_01AF: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_01B4: ldloc.s 5 (BuildingManager)
IL_01B6: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01BB: ldfld Building[] Array16`1<Building>::m_buffer
IL_01C0: ldarg.2
IL_01C1: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_01C6: ldelema Building
IL_01CB: ldloc.0
IL_01CC: callvirt virtual System.Void BuildingAI::VisitorEnter(System.UInt16
buildingID, Building& data, System.UInt32 citizen)
IL_01D1: Label2
IL_01D1: Label12
IL_01D1: Label14
IL_01D1: Label15
IL_01D1: ldarg.2
IL_01D2: ldfld Flags CitizenInstance::m_flags
IL_01D7: ldc.i4.s 64
IL_01D9: and
IL_01DA: brfalse => Label16
IL_01DF: ldarg.3
IL_01E0: brtrue => Label17
IL_01E5: Label16
IL_01E5: ldarg.0
IL_01E6: ldarg.1
IL_01E7: ldarg.2
IL_01E8: ldc.i4.0
IL_01E9: callvirt virtual System.Void CitizenAI::SetSource(System.UInt16
instanceID, CitizenInstance& data, System.UInt16 sourceBuilding)
IL_01EE: ldarg.0
IL_01EF: ldarg.1
IL_01F0: ldarg.2
IL_01F1: ldc.i4.0
IL_01F2: call System.Void CitizenAI::SetTarget(System.UInt16 instanceID,
CitizenInstance& data, System.UInt16 targetBuilding)
IL_01F7: ldarg.2
IL_01F8: ldarg.1
IL_01F9: call System.Void CitizenInstance::Unspawn(System.UInt16 instanceID)
IL_01FE: // end original
IL_01FE: Label17
IL_01FE: Label18
IL_01FE: Label19
IL_01FE: Label0
IL_01FE: ret
DONE

### Patch: virtual System.Void CommonBuildingAI::SimulationStep(System.UInt16


buildingID, Building& data)
### Replacement: static System.Void
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.s => Label1
IL_0014: ldarg 1
IL_0018: ldarg 2
IL_001C: call static System.Void
TrafficManager.Patch._CommonBuildingAI.SimulationStepPatch::Prefix(System.UInt16
buildingID, Building& data)
IL_0021: nop
IL_0022: ldloc 3 (System.Boolean)
IL_0026: brfalse => Label0
IL_002B: // start original
IL_002B: ldarg.0
IL_002C: ldarg.1
IL_002D: ldarg.2
IL_002E: call virtual System.Void BuildingAI::SimulationStep(System.UInt16
buildingID, Building& data)
IL_0033: ldarg.2
IL_0034: ldfld Flags Building::m_flags
IL_0039: ldc.i4 524288
IL_003E: and
IL_003F: brfalse => Label2
IL_0044: ldarg.1
IL_0045: ldc.i4.8
IL_0046: shl
IL_0047: ldc.i4 49152
IL_004C: div.un
IL_004D: stloc.0
IL_004E: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0053: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0058: ldloc.0
IL_0059: sub
IL_005A: stloc.1
IL_005B: ldarg.2
IL_005C: ldfld Flags Building::m_flags
IL_0061: ldc.i4 4194304
IL_0066: and
IL_0067: brfalse => Label3
IL_006C: ldarg.2
IL_006D: ldloc.1
IL_006E: ldc.i4 256
IL_0073: sub
IL_0074: call Frame Building::GetFrameData(System.UInt32 simulationFrame)
IL_0079: stloc.2
IL_007A: ldloca.s 2 (Building+Frame)
IL_007C: ldfld System.Byte Frame::m_constructState
IL_0081: brtrue => Label4
IL_0086: Label3
IL_0086: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_008B: ldarg.1
IL_008C: callvirt System.Void BuildingManager::ReleaseBuilding(System.UInt16
building)
IL_0091: // end original
IL_0091: Label2
IL_0091: Label4
IL_0091: Label0
IL_0091: ret
DONE

### Patch: System.Void RoadWorldInfoPanel::OnAdjustRoadButton()


### Replacement: static System.Void
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.s => Label1
IL_0014: call static System.Boolean
TrafficManager.Patch._RoadWorldInfoPanel.OnAdjustRoadButtonPatch::Prefix()
IL_0019: stloc 0 (System.Boolean)
IL_001D: nop
IL_001E: ldloc 0 (System.Boolean)
IL_0022: brfalse => Label0
IL_0027: // start original
IL_0027: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_002C: ldc.i4.s 30
IL_002E: ldc.i4.2
IL_002F: callvirt System.Void InfoManager::SetCurrentMode(InfoMode mode,
SubInfoMode subMode)
IL_0034: ldarg.0
IL_0035: call System.Void WorldInfoPanel::Hide()
IL_003A: // end original
IL_003A: Label0
IL_003A: ret
DONE

### Patch: System.Void NetSegment::CalculateSegment(System.UInt16 segmentID)


### Replacement: static System.Void 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<NetManager>::get_instance()
IL_0036: stloc.0
IL_0037: ldloc.0
IL_0038: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0074: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16>
NetManager::m_updateNameVisibility
IL_00CF: ldarg.1
IL_00D0: callvirt System.Boolean
System.Collections.Generic.HashSet`1<System.UInt16>::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::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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<CustomAssetMetaData>::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<CustomAssetMetaData>::GetListingMetaData(System.Int32 index)
IL_0037: stloc.0
IL_0038: ldarg.0
IL_0039: ldloc.0
IL_003A: call System.Void
LoadSavePanelBase`1<CustomAssetMetaData>::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<CustomAssetMetaData>::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<SimulationManager>::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<SimulationManager>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_010B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<VehicleInfo>::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<VehicleInfo>::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<VehicleInfo>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_023B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<BuildingInfo>::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<BuildingInfo>::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<BuildingInfo>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_036B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<BuildingInfo>::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<BuildingInfo>::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<BuildingInfo>::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<BuildingManager>::get_instance()
IL_0482: callvirt virtual System.Void SimulationManagerBase`2<BuildingManager,
BuildingProperties>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_04A5: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<BuildingInfo>::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<CitizenInfo>::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<VehicleInfo>::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<PropInfo>::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<TreeInfo>::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<NetInfo>::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::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
IL_00B7: br => Label37
IL_00BC: Label0
IL_00BC: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00C1: ldc.i4.0
IL_00C2: ldc.i4.0
IL_00C3: ldc.i4.m1
IL_00C4: ldc.r4 300
IL_00C9: ldc.i4.0
IL_00CA: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_00CF: br => Label38
IL_00D4: Label1
IL_00D4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00D9: ldc.i4.0
IL_00DA: ldc.i4.0
IL_00DB: ldc.i4.m1
IL_00DC: ldc.r4 300
IL_00E1: ldc.i4.0
IL_00E2: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_00E7: br => Label39
IL_00EC: Label2
IL_00EC: ldarg.2
IL_00ED: brtrue => Label40
IL_00F2: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00F7: ldc.i4.s 15
IL_00F9: ldc.i4.0
IL_00FA: ldc.i4.0
IL_00FB: ldc.r4 500
IL_0100: ldc.i4.0
IL_0101: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0106: br => Label41
IL_010B: Label40
IL_010B: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0110: ldc.i4.0
IL_0111: ldc.i4.0
IL_0112: ldc.i4.m1
IL_0113: ldc.r4 300
IL_0118: ldc.i4.0
IL_0119: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_011E: Label41
IL_011E: br => Label42
IL_0123: Label3
IL_0123: ldarg.2
IL_0124: ldc.i4.1
IL_0125: bne.un => Label43
IL_012A: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_012F: ldc.i4.s 14
IL_0131: ldc.i4.0
IL_0132: ldc.i4.1
IL_0133: ldc.r4 500
IL_0138: ldc.i4.0
IL_0139: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_013E: br => Label44
IL_0143: Label43
IL_0143: ldarg.2
IL_0144: ldc.i4.3
IL_0145: bne.un => Label45
IL_014A: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_014F: ldc.i4.s 14
IL_0151: ldc.i4.0
IL_0152: ldc.i4.4
IL_0153: ldc.r4 500
IL_0158: ldc.i4.0
IL_0159: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_015E: br => Label46
IL_0163: Label45
IL_0163: ldarg.2
IL_0164: ldc.i4.2
IL_0165: bne.un => Label47
IL_016A: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_016F: ldc.i4.s 14
IL_0171: ldc.i4.0
IL_0172: ldc.i4.3
IL_0173: ldc.r4 500
IL_0178: ldc.i4.0
IL_0179: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_017E: br => Label48
IL_0183: Label47
IL_0183: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0188: ldc.i4.s 14
IL_018A: ldc.i4.0
IL_018B: ldc.i4.0
IL_018C: ldc.r4 500
IL_0191: ldc.i4.0
IL_0192: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0197: Label44
IL_0197: Label46
IL_0197: Label48
IL_0197: br => Label49
IL_019C: Label12
IL_019C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01A1: ldc.i4.0
IL_01A2: ldc.i4.0
IL_01A3: ldc.i4.m1
IL_01A4: ldc.r4 300
IL_01A9: ldc.i4.0
IL_01AA: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01AF: br => Label50
IL_01B4: Label4
IL_01B4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01B9: ldc.i4.0
IL_01BA: ldc.i4.0
IL_01BB: ldc.i4.m1
IL_01BC: ldc.r4 300
IL_01C1: ldc.i4.0
IL_01C2: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01C7: br => Label51
IL_01CC: Label5
IL_01CC: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01D1: ldc.i4.0
IL_01D2: ldc.i4.0
IL_01D3: ldc.i4.m1
IL_01D4: ldc.r4 300
IL_01D9: ldc.i4.0
IL_01DA: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01DF: br => Label52
IL_01E4: Label8
IL_01E4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01E9: ldc.i4.0
IL_01EA: ldc.i4.0
IL_01EB: ldc.i4.m1
IL_01EC: ldc.r4 300
IL_01F1: ldc.i4.0
IL_01F2: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01F7: br => Label53
IL_01FC: Label6
IL_01FC: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0201: ldc.i4.0
IL_0202: ldc.i4.0
IL_0203: ldc.i4.m1
IL_0204: ldc.r4 300
IL_0209: ldc.i4.0
IL_020A: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_020F: br => Label54
IL_0214: Label7
IL_0214: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0219: ldc.i4.0
IL_021A: ldc.i4.0
IL_021B: ldc.i4.m1
IL_021C: ldc.r4 300
IL_0221: ldc.i4.0
IL_0222: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0227: br => Label55
IL_022C: Label9
IL_022C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0231: ldc.i4.0
IL_0232: ldc.i4.0
IL_0233: ldc.i4.m1
IL_0234: ldc.r4 300
IL_0239: ldc.i4.0
IL_023A: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_023F: br => Label56
IL_0244: Label10
IL_0244: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0249: ldc.i4.0
IL_024A: ldc.i4.0
IL_024B: ldc.i4.m1
IL_024C: ldc.r4 300
IL_0251: ldc.i4.0
IL_0252: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0257: br => Label57
IL_025C: Label11
IL_025C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0261: ldc.i4.0
IL_0262: ldc.i4.0
IL_0263: ldc.i4.m1
IL_0264: ldc.r4 300
IL_0269: ldc.i4.0
IL_026A: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_026F: br => Label58
IL_0274: Label14
IL_0274: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0279: ldc.i4.0
IL_027A: ldc.i4.0
IL_027B: ldc.i4.m1
IL_027C: ldc.r4 300
IL_0281: ldc.i4.0
IL_0282: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0287: br => Label59
IL_028C: Label17
IL_028C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0291: ldc.i4.s 18
IL_0293: ldc.i4.0
IL_0294: ldc.i4.0
IL_0295: ldc.r4 500
IL_029A: ldc.i4.0
IL_029B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02A0: br => Label60
IL_02A5: Label19
IL_02A5: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02AA: ldc.i4.0
IL_02AB: ldc.i4.0
IL_02AC: ldc.i4.m1
IL_02AD: ldc.r4 300
IL_02B2: ldc.i4.1
IL_02B3: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02B8: br => Label61
IL_02BD: Label18
IL_02BD: ldarg.2
IL_02BE: ldc.i4.1
IL_02BF: bne.un => Label62
IL_02C4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02C9: ldc.i4.s 16
IL_02CB: ldc.i4.0
IL_02CC: ldc.i4.1
IL_02CD: ldc.r4 500
IL_02D2: ldc.i4.1
IL_02D3: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02D8: br => Label63
IL_02DD: Label62
IL_02DD: ldarg.2
IL_02DE: ldc.i4.2
IL_02DF: bne.un => Label64
IL_02E4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02E9: ldc.i4.s 16
IL_02EB: ldc.i4.0
IL_02EC: ldc.i4.2
IL_02ED: ldc.r4 500
IL_02F2: ldc.i4.1
IL_02F3: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02F8: br => Label65
IL_02FD: Label64
IL_02FD: ldarg.2
IL_02FE: brtrue => Label66
IL_0303: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0308: ldc.i4.s 16
IL_030A: ldc.i4.0
IL_030B: ldc.i4.0
IL_030C: ldc.r4 500
IL_0311: ldc.i4.1
IL_0312: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0317: br => Label67
IL_031C: Label66
IL_031C: ldarg.2
IL_031D: ldc.i4.4
IL_031E: bne.un => Label68
IL_0323: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0328: ldc.i4.s 16
IL_032A: ldc.i4.0
IL_032B: ldc.i4.3
IL_032C: ldc.r4 500
IL_0331: ldc.i4.1
IL_0332: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0337: br => Label69
IL_033C: Label68
IL_033C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0341: ldc.i4.s 16
IL_0343: ldc.i4.0
IL_0344: ldc.i4.2
IL_0345: ldc.r4 500
IL_034A: ldc.i4.1
IL_034B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0350: Label63
IL_0350: Label65
IL_0350: Label67
IL_0350: Label69
IL_0350: br => Label70
IL_0355: Label16
IL_0355: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_035A: ldc.i4.0
IL_035B: ldc.i4.0
IL_035C: ldc.i4.m1
IL_035D: ldc.r4 300
IL_0362: ldc.i4.0
IL_0363: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0368: br => Label71
IL_036D: Label13
IL_036D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0372: ldc.i4.0
IL_0373: ldc.i4.0
IL_0374: ldc.i4.m1
IL_0375: ldc.r4 300
IL_037A: ldc.i4.0
IL_037B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0380: br => Label72
IL_0385: Label15
IL_0385: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_038A: ldc.i4.s 13
IL_038C: ldc.i4.0
IL_038D: ldc.i4.m1
IL_038E: ldc.r4 2000
IL_0393: ldc.i4.0
IL_0394: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0399: br => Label73
IL_039E: Label20
IL_039E: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03A3: ldc.i4.0
IL_03A4: ldc.i4.0
IL_03A5: ldc.i4.m1
IL_03A6: ldc.r4 300
IL_03AB: ldc.i4.0
IL_03AC: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03B1: br => Label74
IL_03B6: Label21
IL_03B6: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03BB: ldc.i4.0
IL_03BC: ldc.i4.0
IL_03BD: ldc.i4.m1
IL_03BE: ldc.r4 300
IL_03C3: ldc.i4.0
IL_03C4: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03C9: br => Label75
IL_03CE: Label22
IL_03CE: ldarg.2
IL_03CF: brtrue => Label76
IL_03D4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03D9: ldc.i4.s 9
IL_03DB: ldc.i4.0
IL_03DC: ldc.i4.1
IL_03DD: ldc.r4 2000
IL_03E2: ldc.i4.0
IL_03E3: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03E8: br => Label77
IL_03ED: Label76
IL_03ED: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03F2: ldc.i4.0
IL_03F3: ldc.i4.0
IL_03F4: ldc.i4.m1
IL_03F5: ldc.r4 300
IL_03FA: ldc.i4.0
IL_03FB: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0400: Label77
IL_0400: br => Label78
IL_0405: Label23
IL_0405: ldarg.2
IL_0406: brtrue => Label79
IL_040B: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0410: ldc.i4.s 9
IL_0412: ldc.i4.0
IL_0413: ldc.i4.3
IL_0414: ldc.r4 2000
IL_0419: ldc.i4.0
IL_041A: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_041F: br => Label80
IL_0424: Label79
IL_0424: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0429: ldc.i4.0
IL_042A: ldc.i4.0
IL_042B: ldc.i4.m1
IL_042C: ldc.r4 300
IL_0431: ldc.i4.0
IL_0432: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0437: Label80
IL_0437: br => Label81
IL_043C: Label24
IL_043C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0441: ldc.i4.s 20
IL_0443: ldc.i4.0
IL_0444: ldc.i4.3
IL_0445: ldc.r4 500
IL_044A: ldc.i4.1
IL_044B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0450: br => Label82
IL_0455: Label25
IL_0455: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_045A: ldc.i4.0
IL_045B: ldc.i4.0
IL_045C: ldc.i4.m1
IL_045D: ldc.r4 300
IL_0462: ldc.i4.0
IL_0463: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0468: br => Label83
IL_046D: Label26
IL_046D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0472: ldc.i4.s 20
IL_0474: ldc.i4.0
IL_0475: ldc.i4.1
IL_0476: ldc.r4 2000
IL_047B: ldc.i4.0
IL_047C: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0481: br => Label84
IL_0486: Label27
IL_0486: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_048B: ldc.i4.0
IL_048C: ldc.i4.0
IL_048D: ldc.i4.m1
IL_048E: ldc.r4 300
IL_0493: ldc.i4.0
IL_0494: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0499: br => Label85
IL_049E: Label28
IL_049E: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04A3: ldc.i4.0
IL_04A4: ldc.i4.0
IL_04A5: ldc.i4.m1
IL_04A6: ldc.r4 300
IL_04AB: ldc.i4.0
IL_04AC: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04B1: br => Label86
IL_04B6: Label29
IL_04B6: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04BB: ldc.i4.0
IL_04BC: ldc.i4.0
IL_04BD: ldc.i4.m1
IL_04BE: ldc.r4 300
IL_04C3: ldc.i4.0
IL_04C4: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04C9: br => Label87
IL_04CE: Label30
IL_04CE: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04D3: ldc.i4.0
IL_04D4: ldc.i4.0
IL_04D5: ldc.i4.m1
IL_04D6: ldc.r4 300
IL_04DB: ldc.i4.0
IL_04DC: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04E1: br => Label88
IL_04E6: Label31
IL_04E6: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04EB: ldc.i4.0
IL_04EC: ldc.i4.0
IL_04ED: ldc.i4.m1
IL_04EE: ldc.r4 300
IL_04F3: ldc.i4.0
IL_04F4: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04F9: br => Label89
IL_04FE: Label32
IL_04FE: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0503: ldc.i4.s 12
IL_0505: ldc.i4.s 17
IL_0507: ldc.i4.1
IL_0508: ldc.r4 2000
IL_050D: ldc.i4.0
IL_050E: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0513: br => Label90
IL_0518: Label33
IL_0518: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_051D: ldc.i4.0
IL_051E: ldc.i4.0
IL_051F: ldc.i4.m1
IL_0520: ldc.r4 300
IL_0525: ldc.i4.0
IL_0526: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_052B: br => Label91
IL_0530: Label34
IL_0530: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0535: ldc.i4.s 19
IL_0537: ldc.i4.s 28
IL_0539: ldc.i4.1
IL_053A: ldc.r4 500
IL_053F: ldc.i4.0
IL_0540: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0545: br => Label92
IL_054A: Label35
IL_054A: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_054F: ldc.i4.0
IL_0550: ldc.i4.0
IL_0551: ldc.i4.m1
IL_0552: ldc.r4 300
IL_0557: ldc.i4.0
IL_0558: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_055D: br => Label93
IL_0562: Label36
IL_0562: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0567: ldc.i4.0
IL_0568: ldc.i4.0
IL_0569: ldc.i4.m1
IL_056A: ldc.r4 300
IL_056F: ldc.i4.0
IL_0570: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0575: br => Label94
IL_057A: Label37
IL_057A: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_057F: ldc.i4.0
IL_0580: ldc.i4.0
IL_0581: ldc.i4.m1
IL_0582: ldc.r4 300
IL_0587: ldc.i4.0
IL_0588: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_058D: br => Label95
IL_0592: // end original
IL_0592: Label38
IL_0592: Label39
IL_0592: Label42
IL_0592: Label49
IL_0592: Label50
IL_0592: Label51
IL_0592: Label52
IL_0592: Label53
IL_0592: Label54
IL_0592: Label55
IL_0592: Label56
IL_0592: Label57
IL_0592: Label58
IL_0592: Label59
IL_0592: Label60
IL_0592: Label61
IL_0592: Label70
IL_0592: Label71
IL_0592: Label72
IL_0592: Label73
IL_0592: Label74
IL_0592: Label75
IL_0592: Label78
IL_0592: Label81
IL_0592: Label82
IL_0592: Label83
IL_0592: Label84
IL_0592: Label85
IL_0592: Label86
IL_0592: Label87
IL_0592: Label88
IL_0592: Label89
IL_0592: Label90
IL_0592: Label91
IL_0592: Label92
IL_0592: Label93
IL_0592: Label94
IL_0592: Label95
IL_0592: ret
DONE

### Patch: virtual System.Void DefaultTool::OnToolGUI(UnityEngine.Event e)


### Replacement: static System.Void 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<SimulationManager>::get_instance()
IL_0046: ldarg.0
IL_0047: ldftn System.Void DefaultTool::<OnToolGUI>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<InstanceManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<BuildingManager>::get_instance()
IL_017E: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0183: ldfld Building[] Array16`1<Building>::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<SimulationManager>::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<SimulationManager>::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::<OnToolGUI>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<SimulationManager>::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::<OnToolGUI>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<LogChannel>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<BuildingManager>::get_instance()
IL_04D2: stloc.s 13 (BuildingManager)
IL_04D4: ldloc.s 13 (BuildingManager)
IL_04D6: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_04DB: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_04FA: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0555: ldfld Building[] Array16`1<Building>::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<VehicleManager>::get_instance()
IL_0590: stloc.s 16 (VehicleManager)
IL_0592: ldloc.s 16 (VehicleManager)
IL_0594: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0599: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_05B8: ldfld Vehicle[] Array16`1<Vehicle>::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})"
IL_05DD: ldc.i4.2
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: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_0601: stloc.s 12 (System.String)
IL_0603: ldloc.s 17 (VehicleInfo)
IL_0605: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_060A: ldloc.s 8 (System.UInt16)
IL_060C: ldloc.s 16 (VehicleManager)
IL_060E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0613: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0618: ldloc.s 8 (System.UInt16)
IL_061A: ldelema Vehicle
IL_061F: callvirt virtual System.String VehicleAI::GetDebugString(System.UInt16
vehicleID, Vehicle& data)
IL_0624: stloc.s 18 (System.String)
IL_0626: ldloc.s 18 (System.String)
IL_0628: brfalse => Label68
IL_062D: ldloc.s 12 (System.String)
IL_062F: ldstr "\n"
IL_0634: ldloc.s 18 (System.String)
IL_0636: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_063B: stloc.s 12 (System.String)
IL_063D: Label66
IL_063D: Label67
IL_063D: Label68
IL_063D: br => Label69
IL_0642: Label65
IL_0642: ldloc.s 9 (System.UInt16)
IL_0644: brfalse => Label70
IL_0649: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_064E: stloc.s 19 (VehicleManager)
IL_0650: ldloc.s 19 (VehicleManager)
IL_0652: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_0657: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_065C: ldloc.s 9 (System.UInt16)
IL_065E: ldelema VehicleParked
IL_0663: ldfld System.UInt16 VehicleParked::m_flags
IL_0668: ldc.i4.1
IL_0669: and
IL_066A: brfalse => Label71
IL_066F: ldloc.s 19 (VehicleManager)
IL_0671: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_0676: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_067B: ldloc.s 9 (System.UInt16)
IL_067D: ldelema VehicleParked
IL_0682: call VehicleInfo VehicleParked::get_Info()
IL_0687: stloc.s 20 (VehicleInfo)
IL_0689: ldloc.s 20 (VehicleInfo)
IL_068B: ldnull
IL_068C: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0691: brfalse => Label72
IL_0696: ldstr "{0} ({1})"
IL_069B: ldc.i4.2
IL_069C: newarr System.Object
IL_06A1: dup
IL_06A2: ldc.i4.0
IL_06A3: ldloc.s 20 (VehicleInfo)
IL_06A5: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_06AA: callvirt System.String UnityEngine.Object::get_name()
IL_06AF: stelem.ref
IL_06B0: dup
IL_06B1: ldc.i4.1
IL_06B2: ldloc.s 9 (System.UInt16)
IL_06B4: box System.UInt16
IL_06B9: stelem.ref
IL_06BA: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_06BF: stloc.s 12 (System.String)
IL_06C1: ldloc.s 20 (VehicleInfo)
IL_06C3: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_06C8: ldloc.s 9 (System.UInt16)
IL_06CA: ldloc.s 19 (VehicleManager)
IL_06CC: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_06D1: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_06D6: ldloc.s 9 (System.UInt16)
IL_06D8: ldelema VehicleParked
IL_06DD: callvirt virtual System.String VehicleAI::GetDebugString(System.UInt16
parkedVehicleID, VehicleParked& data)
IL_06E2: stloc.s 21 (System.String)
IL_06E4: ldloc.s 21 (System.String)
IL_06E6: brfalse => Label73
IL_06EB: ldloc.s 12 (System.String)
IL_06ED: ldstr "\n"
IL_06F2: ldloc.s 21 (System.String)
IL_06F4: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_06F9: stloc.s 12 (System.String)
IL_06FB: Label71
IL_06FB: Label72
IL_06FB: Label73
IL_06FB: br => Label74
IL_0700: Label70
IL_0700: ldloc.s 10 (System.UInt16)
IL_0702: brfalse => Label75
IL_0707: call static CitizenManager
ColossalFramework.Singleton`1<CitizenManager>::get_instance()
IL_070C: stloc.s 22 (CitizenManager)
IL_070E: ldloc.s 22 (CitizenManager)
IL_0710: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0715: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_071A: ldloc.s 10 (System.UInt16)
IL_071C: ldelema CitizenInstance
IL_0721: ldfld Flags CitizenInstance::m_flags
IL_0726: ldc.i4.1
IL_0727: and
IL_0728: brfalse => Label76
IL_072D: ldloc.s 22 (CitizenManager)
IL_072F: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0734: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0739: ldloc.s 10 (System.UInt16)
IL_073B: ldelema CitizenInstance
IL_0740: call CitizenInfo CitizenInstance::get_Info()
IL_0745: stloc.s 23 (CitizenInfo)
IL_0747: ldloc.s 23 (CitizenInfo)
IL_0749: ldnull
IL_074A: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_074F: brfalse => Label77
IL_0754: ldstr "{0} ({1})"
IL_0759: ldc.i4.2
IL_075A: newarr System.Object
IL_075F: dup
IL_0760: ldc.i4.0
IL_0761: ldloc.s 23 (CitizenInfo)
IL_0763: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_0768: callvirt System.String UnityEngine.Object::get_name()
IL_076D: stelem.ref
IL_076E: dup
IL_076F: ldc.i4.1
IL_0770: ldloc.s 10 (System.UInt16)
IL_0772: box System.UInt16
IL_0777: stelem.ref
IL_0778: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_077D: stloc.s 12 (System.String)
IL_077F: ldloc.s 23 (CitizenInfo)
IL_0781: ldfld CitizenAI CitizenInfo::m_citizenAI
IL_0786: ldloc.s 10 (System.UInt16)
IL_0788: ldloc.s 22 (CitizenManager)
IL_078A: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_078F: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0794: ldloc.s 10 (System.UInt16)
IL_0796: ldelema CitizenInstance
IL_079B: callvirt virtual System.String CitizenAI::GetDebugString(System.UInt16
instanceID, CitizenInstance& data)
IL_07A0: stloc.s 24 (System.String)
IL_07A2: ldloc.s 24 (System.String)
IL_07A4: brfalse => Label78
IL_07A9: ldloc.s 12 (System.String)
IL_07AB: ldstr "\n"
IL_07B0: ldloc.s 24 (System.String)
IL_07B2: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_07B7: stloc.s 12 (System.String)
IL_07B9: Label76
IL_07B9: Label77
IL_07B9: Label78
IL_07B9: br => Label79
IL_07BE: Label75
IL_07BE: ldloc.s 11 (System.UInt16)
IL_07C0: brfalse => Label80
IL_07C5: call static TransportManager
ColossalFramework.Singleton`1<TransportManager>::get_instance()
IL_07CA: stloc.s 25 (TransportManager)
IL_07CC: ldloc.s 25 (TransportManager)
IL_07CE: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_07D3: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_07D8: ldloc.s 11 (System.UInt16)
IL_07DA: ldelema TransportLine
IL_07DF: ldfld Flags TransportLine::m_flags
IL_07E4: ldc.i4.1
IL_07E5: and
IL_07E6: brfalse => Label81
IL_07EB: ldloc.s 25 (TransportManager)
IL_07ED: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_07F2: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_07F7: ldloc.s 11 (System.UInt16)
IL_07F9: ldelema TransportLine
IL_07FE: call TransportInfo TransportLine::get_Info()
IL_0803: stloc.s 26 (TransportInfo)
IL_0805: ldloc.s 26 (TransportInfo)
IL_0807: ldnull
IL_0808: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_080D: brfalse => Label82
IL_0812: ldstr "{0} ({1})"
IL_0817: ldc.i4.2
IL_0818: newarr System.Object
IL_081D: dup
IL_081E: ldc.i4.0
IL_081F: ldloc.s 26 (TransportInfo)
IL_0821: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_0826: callvirt System.String UnityEngine.Object::get_name()
IL_082B: stelem.ref
IL_082C: dup
IL_082D: ldc.i4.1
IL_082E: ldloc.s 11 (System.UInt16)
IL_0830: box System.UInt16
IL_0835: stelem.ref
IL_0836: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_083B: stloc.s 12 (System.String)
IL_083D: ldloc.s 25 (TransportManager)
IL_083F: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_0844: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_0849: ldloc.s 11 (System.UInt16)
IL_084B: ldelema TransportLine
IL_0850: ldloc.s 11 (System.UInt16)
IL_0852: call System.String TransportLine::GetDebugString(System.UInt16
lineID)
IL_0857: stloc.s 27 (System.String)
IL_0859: ldloc.s 27 (System.String)
IL_085B: brfalse => Label83
IL_0860: ldloc.s 12 (System.String)
IL_0862: ldstr "\n"
IL_0867: ldloc.s 27 (System.String)
IL_0869: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_086E: stloc.s 12 (System.String)
IL_0870: Label64
IL_0870: Label69
IL_0870: Label74
IL_0870: Label79
IL_0870: Label80
IL_0870: Label81
IL_0870: Label82
IL_0870: Label83
IL_0870: ldloc.s 12 (System.String)
IL_0872: brfalse => Label84
IL_0877: ldloc.s 6 (InstanceID)
IL_0879: ldloca.s 28 (UnityEngine.Vector3)
IL_087B: ldloca.s 29 (UnityEngine.Quaternion)
IL_087D: ldloca.s 30 (UnityEngine.Vector3)
IL_087F: call static System.Boolean InstanceManager::GetPosition(InstanceID
id, UnityEngine.Vector3& position, UnityEngine.Quaternion& rotation,
UnityEngine.Vector3& size)
IL_0884: brtrue => Label85
IL_0889: ldarg.0
IL_088A: ldfld UnityEngine.Vector3 DefaultTool::m_mousePosition
IL_088F: stloc.s 28 (UnityEngine.Vector3)
IL_0891: Label85
IL_0891: call static UnityEngine.Camera UnityEngine.Camera::get_main()
IL_0896: ldloc.s 28 (UnityEngine.Vector3)
IL_0898: callvirt UnityEngine.Vector3
UnityEngine.Camera::WorldToScreenPoint(UnityEngine.Vector3 position)
IL_089D: stloc.s 31 (UnityEngine.Vector3)
IL_089F: ldloca.s 31 (UnityEngine.Vector3)
IL_08A1: call static System.Int32 UnityEngine.Screen::get_height()
IL_08A6: conv.r4
IL_08A7: ldloca.s 31 (UnityEngine.Vector3)
IL_08A9: ldfld System.Single UnityEngine.Vector3::y
IL_08AE: sub
IL_08AF: stfld System.Single UnityEngine.Vector3::y
IL_08B4: call static UnityEngine.Color UnityEngine.GUI::get_color()
IL_08B9: stloc.s 32 (UnityEngine.Color)
IL_08BB: call static UnityEngine.Color UnityEngine.Color::get_cyan()
IL_08C0: call static System.Void UnityEngine.GUI::set_color(UnityEngine.Color
value)
IL_08C5: ldloca.s 31 (UnityEngine.Vector3)
IL_08C7: ldfld System.Single UnityEngine.Vector3::x
IL_08CC: ldloca.s 31 (UnityEngine.Vector3)
IL_08CE: ldfld System.Single UnityEngine.Vector3::y
IL_08D3: ldc.r4 500
IL_08D8: ldc.r4 500
IL_08DD: newobj System.Void UnityEngine.Rect::.ctor(System.Single x,
System.Single y, System.Single width, System.Single height)
IL_08E2: ldloc.s 12 (System.String)
IL_08E4: call static UnityEngine.Color UnityEngine.Color::get_black()
IL_08E9: call static UnityEngine.Color UnityEngine.Color::get_cyan()
IL_08EE: call static UnityEngine.GUISkin UnityEngine.GUI::get_skin()
IL_08F3: callvirt UnityEngine.GUIStyle UnityEngine.GUISkin::get_label()
IL_08F8: ldc.r4 2
IL_08FD: 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_0902: ldloc.s 32 (UnityEngine.Color)
IL_0904: call static System.Void UnityEngine.GUI::set_color(UnityEngine.Color
value)
IL_0909: // end original
IL_0909: Label57
IL_0909: Label58
IL_0909: Label59
IL_0909: Label84
IL_0909: ldarg 1
IL_090D: call static System.Void
TrafficManager.Patch._DefaultTool.OnToolGUIPatch::Postfix(UnityEngine.Event e)
IL_0912: ret
DONE

### Patch: virtual System.Void DefaultTool::RenderOverlay(CameraInfo cameraInfo)


### Replacement: static System.Void 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<PropManager>::get_instance()
IL_0079: ldfld Array16`1<PropInstance> PropManager::m_props
IL_007E: ldfld PropInstance[] Array16`1<PropInstance>::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<TreeManager>::get_instance()
IL_012C: ldfld Array32`1<TreeInstance> TreeManager::m_trees
IL_0131: ldfld TreeInstance[] Array32`1<TreeInstance>::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<BuildingManager>::get_instance()
IL_01E6: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01EB: ldfld Building[] Array16`1<Building>::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<DisasterManager>::get_instance()
IL_03A3: ldfld FastList`1<DisasterData> DisasterManager::m_disasters
IL_03A8: ldfld DisasterData[] FastList`1<DisasterData>::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<NetManager>::get_instance()
IL_04A6: stloc.s 24 (NetManager)
IL_04A8: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_04AD: stloc.s 25 (BuildingManager)
IL_04AF: ldloc.s 25 (BuildingManager)
IL_04B1: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_04B6: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_04F6: ldfld Building[] Array16`1<Building>::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<NetNode> NetManager::m_nodes
IL_0520: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_0543: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0562: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0582: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_05AA: ldfld NetNode[] Array16`1<NetNode>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_05F6: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0618: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0637: ldfld Building[] Array16`1<Building>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_0693: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06AD: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06C7: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06F2: ldfld Building[] Array16`1<Building>::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<NetNode> NetManager::m_nodes
IL_071C: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_073F: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_075E: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_077F: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_07A9: ldfld NetNode[] Array16`1<NetNode>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_07F5: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0817: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0831: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_084B: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0865: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0890: ldfld Building[] Array16`1<Building>::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<LogChannel>::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<NetManager>::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<RenderManager>::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<NetSegment> NetManager::m_segments
IL_09A8: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_09CC: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_09D1: ldloc.s 45 (NetManager)
IL_09D3: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_09D8: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_0A01: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A06: ldloc.s 45 (NetManager)
IL_0A08: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0A0D: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0A73: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0A92: ldfld NetSegment[] Array16`1<NetSegment>::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<ToolManager>::get_instance()
IL_0C1C: ldflda DrawCallData SimulationManagerBase`2<ToolManager,
ToolController>::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<RenderManager>::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<NetSegment> NetManager::m_segments
IL_0C75: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0C96: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0CF4: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0D18: ldfld NetSegment[] Array16`1<NetSegment>::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<TreeManager>::get_instance()
IL_0D40: stloc.s 67 (TreeManager)
IL_0D42: ldloc.s 67 (TreeManager)
IL_0D44: ldfld Array32`1<TreeInstance> TreeManager::m_trees
IL_0D49: ldfld TreeInstance[] Array32`1<TreeInstance>::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<TreeInstance> TreeManager::m_trees
IL_0D64: ldfld TreeInstance[] Array32`1<TreeInstance>::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<PropManager>::get_instance()
IL_0E07: stloc.s 75 (PropManager)
IL_0E09: ldloc.s 75 (PropManager)
IL_0E0B: ldfld Array16`1<PropInstance> PropManager::m_props
IL_0E10: ldfld PropInstance[] Array16`1<PropInstance>::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<PropInstance> PropManager::m_props
IL_0E2A: ldfld PropInstance[] Array16`1<PropInstance>::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<PropInstance> PropManager::m_props
IL_0E44: ldfld PropInstance[] Array16`1<PropInstance>::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<VehicleManager>::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<Vehicle> VehicleManager::m_vehicles
IL_0F0E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0F38: ldfld Vehicle[] Array16`1<Vehicle>::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<VehicleManager>::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<VehicleParked> VehicleManager::m_parkedVehicles
IL_0F87: ldfld VehicleParked[] Array16`1<VehicleParked>::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<VehicleParked> VehicleManager::m_parkedVehicles
IL_0FB1: ldfld VehicleParked[] Array16`1<VehicleParked>::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<CitizenManager>::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<CitizenInstance> CitizenManager::m_instances
IL_1000: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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<CitizenInstance> CitizenManager::m_instances
IL_102A: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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<InfoManager>::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<DistrictManager>::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<InfoManager>::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<DistrictManager>::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<DisasterManager>::get_instance()
IL_1129: stloc.s 104 (DisasterManager)
IL_112B: ldloc.s 104 (DisasterManager)
IL_112D: ldfld FastList`1<DisasterData> DisasterManager::m_disasters
IL_1132: ldfld DisasterData[] FastList`1<DisasterData>::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<DisasterData> DisasterManager::m_disasters
IL_114C: ldfld DisasterData[] FastList`1<DisasterData>::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<DisasterData> DisasterManager::m_disasters
IL_1166: ldfld DisasterData[] FastList`1<DisasterData>::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::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<Citizen> CitizenManager::m_citizens
IL_0008: ldfld Citizen[] Array32`1<Citizen>::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::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<CitizenInstance> CitizenManager::m_instances
IL_0008: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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(CitizenMa
nager __instance, System.UInt16 instance)
IL_0022: ret
DONE

### Patch: static System.Void BuildingDecoration::LoadPaths(BuildingInfo info,


System.UInt16 buildingID, Building& data, System.Single elevation)
### Replacement: static System.Void
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<NetManager>::get_instance()
IL_0010: stloc.0
IL_0011: ldloc.0
IL_0012: ldfld FastList`1<System.UInt16> NetManager::m_tempNodeBuffer
IL_0017: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_001C: ldloc.0
IL_001D: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_0022: callvirt System.Void FastList`1<System.UInt16>::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<System.UInt16> 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<System.UInt16> 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<System.UInt16> 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<System.UInt16>::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<NodePosition> 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<NodePosition> 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<System.UInt16> NetManager::m_tempNodeBuffer
IL_022C: ldloc.s 9 (System.UInt16)
IL_022E: callvirt System.Void FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_0268: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_02AC: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16> 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<System.UInt16> 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<NodePosition> 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<NodePosition> 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<System.UInt16> NetManager::m_tempNodeBuffer
IL_056B: ldloc.s 20 (System.UInt16)
IL_056D: callvirt System.Void FastList`1<System.UInt16>::Add(System.UInt16 item)
IL_0572: ldloc.0
IL_0573: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_0578: ldloc.s 21 (System.UInt16)
IL_057A: callvirt System.Void FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_05B6: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_05FC: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_0646: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_067B: ldfld NetSegment[] Array16`1<NetSegment>::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<System.UInt16> NetManager::m_tempNodeBuffer
IL_06D4: ldfld System.UInt16[] FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_06E4: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_071D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_073E: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_075D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0788: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16> NetManager::m_tempNodeBuffer
IL_07C2: ldfld System.Int32 FastList`1<System.UInt16>::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<System.UInt16> NetManager::m_tempSegmentBuffer
IL_07DA: ldfld System.UInt16[] FastList`1<System.UInt16>::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<NetSegment> NetManager::m_segments
IL_07EA: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_080F: ldfld NetSegment[] Array16`1<NetSegment>::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<ToolManager>::get_instance()
IL_083B: ldfld ToolController SimulationManagerBase`2<ToolManager,
ToolController>::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<NetSegment> NetManager::m_segments
IL_0852: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0879: ldfld NetSegment[] Array16`1<NetSegment>::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<System.UInt16> NetManager::m_tempSegmentBuffer
IL_08A9: ldfld System.Int32 FastList`1<System.UInt16>::m_size
IL_08AE: blt => Label60
IL_08B3: ldarg.0
IL_08B4: call static System.Void
TrafficManager.Patches._BuildingDecoration.LoadPathsPatch::AfterIntersectionBuilt(B
uildingInfo info)
IL_08B9: ldloc.0
IL_08BA: ldfld FastList`1<System.UInt16> NetManager::m_tempNodeBuffer
IL_08BF: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_08C4: ldloc.0
IL_08C5: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_08CA: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_08CF: // end original
IL_08CF: Label0
IL_08CF: ret
DONE

### Harmony id=de.viathinksoft.tmpe, version=2.0.0.9, location=E:\Games\data-


0000000015990080
### Started from System.Void TrafficManager.Patcher::Uninstall(), location E:\
Games\data-0000000016967040
### At 2022-11-05 01.23.54
### 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::CreateVehicle_Patch1(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.s => Label1
IL_001D: ldarg.0
IL_001E: ldarg 1
IL_0022: ldarg 3
IL_0026: call static System.Boolean
TrafficManager.Patch._VehicleManager.CreateVehiclePatch::Prefix(VehicleManager
__instance, System.UInt16& vehicle, VehicleInfo info)
IL_002B: stloc 3 (System.Boolean)
IL_002F: nop
IL_0030: ldloc 3 (System.Boolean)
IL_0034: brfalse => Label0
IL_0039: // start original
IL_0039: ldarg.0
IL_003A: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_003F: ldloca.s 0 (System.UInt16)
IL_0041: ldarg.2
IL_0042: callvirt System.Boolean Array16`1<Vehicle>::CreateItem(System.UInt16&
item, ColossalFramework.Math.Randomizer& r)
IL_0047: brfalse => Label2
IL_004C: ldarg.1
IL_004D: ldloc.0
IL_004E: stind.i2
IL_004F: ldloca.s 1 (Vehicle+Frame)
IL_0051: ldarg.s 4
IL_0053: call static UnityEngine.Quaternion
UnityEngine.Quaternion::get_identity()
IL_0058: call System.Void Frame::.ctor(UnityEngine.Vector3 position,
UnityEngine.Quaternion rotation)
IL_005D: ldarg.0
IL_005E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0063: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0068: ldarg.1
IL_0069: ldind.u2
IL_006A: ldelema Vehicle
IL_006F: ldc.i4.1
IL_0070: stfld Flags Vehicle::m_flags
IL_0075: ldarg.0
IL_0076: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_007B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0080: ldarg.1
IL_0081: ldind.u2
IL_0082: ldelema Vehicle
IL_0087: ldc.i4.0
IL_0088: stfld Flags2 Vehicle::m_flags2
IL_008D: ldarg.s 6
IL_008F: brfalse => Label3
IL_0094: ldarg.0
IL_0095: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_009A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_009F: ldarg.1
IL_00A0: ldind.u2
IL_00A1: ldelema Vehicle
IL_00A6: dup
IL_00A7: ldfld Flags Vehicle::m_flags
IL_00AC: ldc.i4.s 32
IL_00AE: or
IL_00AF: stfld Flags Vehicle::m_flags
IL_00B4: Label3
IL_00B4: ldarg.s 7
IL_00B6: brfalse => Label4
IL_00BB: ldarg.0
IL_00BC: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00C1: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00C6: ldarg.1
IL_00C7: ldind.u2
IL_00C8: ldelema Vehicle
IL_00CD: dup
IL_00CE: ldfld Flags Vehicle::m_flags
IL_00D3: ldc.i4.s 16
IL_00D5: or
IL_00D6: stfld Flags Vehicle::m_flags
IL_00DB: Label4
IL_00DB: ldarg.0
IL_00DC: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00E1: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00E6: ldarg.1
IL_00E7: ldind.u2
IL_00E8: ldelema Vehicle
IL_00ED: ldarg.3
IL_00EE: call System.Void Vehicle::set_Info(VehicleInfo value)
IL_00F3: ldarg.0
IL_00F4: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00F9: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00FE: ldarg.1
IL_00FF: ldind.u2
IL_0100: ldelema Vehicle
IL_0105: ldloc.1
IL_0106: stfld Frame Vehicle::m_frame0
IL_010B: ldarg.0
IL_010C: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0111: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0116: ldarg.1
IL_0117: ldind.u2
IL_0118: ldelema Vehicle
IL_011D: ldloc.1
IL_011E: stfld Frame Vehicle::m_frame1
IL_0123: ldarg.0
IL_0124: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0129: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_012E: ldarg.1
IL_012F: ldind.u2
IL_0130: ldelema Vehicle
IL_0135: ldloc.1
IL_0136: stfld Frame Vehicle::m_frame2
IL_013B: ldarg.0
IL_013C: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0141: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0146: ldarg.1
IL_0147: ldind.u2
IL_0148: ldelema Vehicle
IL_014D: ldloc.1
IL_014E: stfld Frame Vehicle::m_frame3
IL_0153: ldarg.0
IL_0154: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0159: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_015E: ldarg.1
IL_015F: ldind.u2
IL_0160: ldelema Vehicle
IL_0165: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_016A: stfld UnityEngine.Vector4 Vehicle::m_targetPos0
IL_016F: ldarg.0
IL_0170: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0175: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_017A: ldarg.1
IL_017B: ldind.u2
IL_017C: ldelema Vehicle
IL_0181: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_0186: stfld UnityEngine.Vector4 Vehicle::m_targetPos1
IL_018B: ldarg.0
IL_018C: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0191: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0196: ldarg.1
IL_0197: ldind.u2
IL_0198: ldelema Vehicle
IL_019D: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_01A2: stfld UnityEngine.Vector4 Vehicle::m_targetPos2
IL_01A7: ldarg.0
IL_01A8: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01AD: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01B2: ldarg.1
IL_01B3: ldind.u2
IL_01B4: ldelema Vehicle
IL_01B9: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_01BE: stfld UnityEngine.Vector4 Vehicle::m_targetPos3
IL_01C3: ldarg.0
IL_01C4: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01C9: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01CE: ldarg.1
IL_01CF: ldind.u2
IL_01D0: ldelema Vehicle
IL_01D5: ldc.i4.0
IL_01D6: stfld System.UInt16 Vehicle::m_sourceBuilding
IL_01DB: ldarg.0
IL_01DC: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01E1: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01E6: ldarg.1
IL_01E7: ldind.u2
IL_01E8: ldelema Vehicle
IL_01ED: ldc.i4.0
IL_01EE: stfld System.UInt16 Vehicle::m_targetBuilding
IL_01F3: ldarg.0
IL_01F4: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01F9: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01FE: ldarg.1
IL_01FF: ldind.u2
IL_0200: ldelema Vehicle
IL_0205: ldarg.s 5
IL_0207: conv.u1
IL_0208: stfld System.Byte Vehicle::m_transferType
IL_020D: ldarg.0
IL_020E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0213: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0218: ldarg.1
IL_0219: ldind.u2
IL_021A: ldelema Vehicle
IL_021F: ldc.i4.0
IL_0220: stfld System.UInt16 Vehicle::m_transferSize
IL_0225: ldarg.0
IL_0226: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_022B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0230: ldarg.1
IL_0231: ldind.u2
IL_0232: ldelema Vehicle
IL_0237: ldc.i4.0
IL_0238: stfld System.Byte Vehicle::m_waitCounter
IL_023D: ldarg.0
IL_023E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0243: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0248: ldarg.1
IL_0249: ldind.u2
IL_024A: ldelema Vehicle
IL_024F: ldc.i4.0
IL_0250: stfld System.Byte Vehicle::m_blockCounter
IL_0255: ldarg.0
IL_0256: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_025B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0260: ldarg.1
IL_0261: ldind.u2
IL_0262: ldelema Vehicle
IL_0267: ldc.i4.0
IL_0268: stfld System.UInt16 Vehicle::m_nextGridVehicle
IL_026D: ldarg.0
IL_026E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0273: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0278: ldarg.1
IL_0279: ldind.u2
IL_027A: ldelema Vehicle
IL_027F: ldc.i4.0
IL_0280: stfld System.UInt16 Vehicle::m_nextOwnVehicle
IL_0285: ldarg.0
IL_0286: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_028B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0290: ldarg.1
IL_0291: ldind.u2
IL_0292: ldelema Vehicle
IL_0297: ldc.i4.0
IL_0298: stfld System.UInt16 Vehicle::m_nextGuestVehicle
IL_029D: ldarg.0
IL_029E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02A3: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02A8: ldarg.1
IL_02A9: ldind.u2
IL_02AA: ldelema Vehicle
IL_02AF: ldc.i4.0
IL_02B0: stfld System.UInt16 Vehicle::m_nextLineVehicle
IL_02B5: ldarg.0
IL_02B6: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02BB: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02C0: ldarg.1
IL_02C1: ldind.u2
IL_02C2: ldelema Vehicle
IL_02C7: ldc.i4.0
IL_02C8: stfld System.UInt16 Vehicle::m_transportLine
IL_02CD: ldarg.0
IL_02CE: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02D3: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02D8: ldarg.1
IL_02D9: ldind.u2
IL_02DA: ldelema Vehicle
IL_02DF: ldc.i4.0
IL_02E0: stfld System.UInt16 Vehicle::m_leadingVehicle
IL_02E5: ldarg.0
IL_02E6: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02EB: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02F0: ldarg.1
IL_02F1: ldind.u2
IL_02F2: ldelema Vehicle
IL_02F7: ldc.i4.0
IL_02F8: stfld System.UInt16 Vehicle::m_trailingVehicle
IL_02FD: ldarg.0
IL_02FE: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0303: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0308: ldarg.1
IL_0309: ldind.u2
IL_030A: ldelema Vehicle
IL_030F: ldc.i4.0
IL_0310: stfld System.UInt16 Vehicle::m_cargoParent
IL_0315: ldarg.0
IL_0316: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_031B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0320: ldarg.1
IL_0321: ldind.u2
IL_0322: ldelema Vehicle
IL_0327: ldc.i4.0
IL_0328: stfld System.UInt16 Vehicle::m_firstCargo
IL_032D: ldarg.0
IL_032E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0333: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0338: ldarg.1
IL_0339: ldind.u2
IL_033A: ldelema Vehicle
IL_033F: ldc.i4.0
IL_0340: stfld System.UInt16 Vehicle::m_nextCargo
IL_0345: ldarg.0
IL_0346: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_034B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0350: ldarg.1
IL_0351: ldind.u2
IL_0352: ldelema Vehicle
IL_0357: ldc.i4.0
IL_0358: stfld System.UInt32 Vehicle::m_citizenUnits
IL_035D: ldarg.0
IL_035E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0363: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0368: ldarg.1
IL_0369: ldind.u2
IL_036A: ldelema Vehicle
IL_036F: ldc.i4.0
IL_0370: stfld System.UInt32 Vehicle::m_path
IL_0375: ldarg.0
IL_0376: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_037B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0380: ldarg.1
IL_0381: ldind.u2
IL_0382: ldelema Vehicle
IL_0387: ldc.i4.0
IL_0388: stfld System.Byte Vehicle::m_lastFrame
IL_038D: ldarg.0
IL_038E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0393: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0398: ldarg.1
IL_0399: ldind.u2
IL_039A: ldelema Vehicle
IL_039F: ldc.i4.0
IL_03A0: stfld System.Byte Vehicle::m_pathPositionIndex
IL_03A5: ldarg.0
IL_03A6: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03AB: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03B0: ldarg.1
IL_03B1: ldind.u2
IL_03B2: ldelema Vehicle
IL_03B7: ldc.i4.0
IL_03B8: stfld System.Byte Vehicle::m_lastPathOffset
IL_03BD: ldarg.0
IL_03BE: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03C3: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03C8: ldarg.1
IL_03C9: ldind.u2
IL_03CA: ldelema Vehicle
IL_03CF: ldc.i4.0
IL_03D0: stfld System.Byte Vehicle::m_gateIndex
IL_03D5: ldarg.0
IL_03D6: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03DB: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03E0: ldarg.1
IL_03E1: ldind.u2
IL_03E2: ldelema Vehicle
IL_03E7: ldc.i4.0
IL_03E8: stfld System.UInt16 Vehicle::m_waterSource
IL_03ED: ldarg.0
IL_03EE: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03F3: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03F8: ldarg.1
IL_03F9: ldind.u2
IL_03FA: ldelema Vehicle
IL_03FF: ldc.i4.0
IL_0400: stfld System.UInt16 Vehicle::m_touristCount
IL_0405: ldarg.0
IL_0406: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_040B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0410: ldarg.1
IL_0411: ldind.u2
IL_0412: ldelema Vehicle
IL_0417: ldc.i4.0
IL_0418: stfld System.UInt16 Vehicle::m_custom
IL_041D: ldarg.3
IL_041E: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_0423: ldarg.1
IL_0424: ldind.u2
IL_0425: ldarg.0
IL_0426: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_042B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0430: ldarg.1
IL_0431: ldind.u2
IL_0432: ldelema Vehicle
IL_0437: callvirt virtual System.Void VehicleAI::CreateVehicle(System.UInt16
vehicleID, Vehicle& data)
IL_043C: ldarg.3
IL_043D: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_0442: ldarg.1
IL_0443: ldind.u2
IL_0444: ldarg.0
IL_0445: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_044A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_044F: ldarg.1
IL_0450: ldind.u2
IL_0451: ldelema Vehicle
IL_0456: ldarg.0
IL_0457: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_045C: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0461: ldarg.1
IL_0462: ldind.u2
IL_0463: ldelema Vehicle
IL_0468: ldflda Frame Vehicle::m_frame0
IL_046D: callvirt virtual System.Void VehicleAI::FrameDataUpdated(System.UInt16
vehicleID, Vehicle& vehicleData, Frame& frameData)
IL_0472: ldarg.0
IL_0473: ldarg.0
IL_0474: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0479: callvirt System.UInt32 Array16`1<Vehicle>::ItemCount()
IL_047E: ldc.i4.1
IL_047F: sub
IL_0480: stfld System.Int32 VehicleManager::m_vehicleCount
IL_0485: ldc.i4.1
IL_0486: br => Label5
IL_048B: Label2
IL_048B: ldarg.1
IL_048C: ldc.i4.0
IL_048D: stind.i2
IL_048E: ldc.i4.0
IL_048F: // end original
IL_048F: Label5
IL_048F: stloc 2 (System.Boolean)
IL_0493: Label0
IL_0493: ldloc 2 (System.Boolean)
IL_0497: 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::CreateVehicle_Patch0(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: // start original
IL_0000: ldarg.0
IL_0001: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0006: ldloca.s 0 (System.UInt16)
IL_0008: ldarg.2
IL_0009: callvirt System.Boolean Array16`1<Vehicle>::CreateItem(System.UInt16&
item, ColossalFramework.Math.Randomizer& r)
IL_000E: brfalse => Label0
IL_0013: ldarg.1
IL_0014: ldloc.0
IL_0015: stind.i2
IL_0016: ldloca.s 1 (Vehicle+Frame)
IL_0018: ldarg.s 4
IL_001A: call static UnityEngine.Quaternion
UnityEngine.Quaternion::get_identity()
IL_001F: call System.Void Frame::.ctor(UnityEngine.Vector3 position,
UnityEngine.Quaternion rotation)
IL_0024: ldarg.0
IL_0025: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_002A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_002F: ldarg.1
IL_0030: ldind.u2
IL_0031: ldelema Vehicle
IL_0036: ldc.i4.1
IL_0037: stfld Flags Vehicle::m_flags
IL_003C: ldarg.0
IL_003D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0042: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0047: ldarg.1
IL_0048: ldind.u2
IL_0049: ldelema Vehicle
IL_004E: ldc.i4.0
IL_004F: stfld Flags2 Vehicle::m_flags2
IL_0054: ldarg.s 6
IL_0056: brfalse => Label1
IL_005B: ldarg.0
IL_005C: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0061: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0066: ldarg.1
IL_0067: ldind.u2
IL_0068: ldelema Vehicle
IL_006D: dup
IL_006E: ldfld Flags Vehicle::m_flags
IL_0073: ldc.i4.s 32
IL_0075: or
IL_0076: stfld Flags Vehicle::m_flags
IL_007B: Label1
IL_007B: ldarg.s 7
IL_007D: brfalse => Label2
IL_0082: ldarg.0
IL_0083: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0088: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_008D: ldarg.1
IL_008E: ldind.u2
IL_008F: ldelema Vehicle
IL_0094: dup
IL_0095: ldfld Flags Vehicle::m_flags
IL_009A: ldc.i4.s 16
IL_009C: or
IL_009D: stfld Flags Vehicle::m_flags
IL_00A2: Label2
IL_00A2: ldarg.0
IL_00A3: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00A8: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00AD: ldarg.1
IL_00AE: ldind.u2
IL_00AF: ldelema Vehicle
IL_00B4: ldarg.3
IL_00B5: call System.Void Vehicle::set_Info(VehicleInfo value)
IL_00BA: ldarg.0
IL_00BB: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00C0: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00C5: ldarg.1
IL_00C6: ldind.u2
IL_00C7: ldelema Vehicle
IL_00CC: ldloc.1
IL_00CD: stfld Frame Vehicle::m_frame0
IL_00D2: ldarg.0
IL_00D3: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00D8: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00DD: ldarg.1
IL_00DE: ldind.u2
IL_00DF: ldelema Vehicle
IL_00E4: ldloc.1
IL_00E5: stfld Frame Vehicle::m_frame1
IL_00EA: ldarg.0
IL_00EB: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00F0: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00F5: ldarg.1
IL_00F6: ldind.u2
IL_00F7: ldelema Vehicle
IL_00FC: ldloc.1
IL_00FD: stfld Frame Vehicle::m_frame2
IL_0102: ldarg.0
IL_0103: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0108: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_010D: ldarg.1
IL_010E: ldind.u2
IL_010F: ldelema Vehicle
IL_0114: ldloc.1
IL_0115: stfld Frame Vehicle::m_frame3
IL_011A: ldarg.0
IL_011B: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0120: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0125: ldarg.1
IL_0126: ldind.u2
IL_0127: ldelema Vehicle
IL_012C: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_0131: stfld UnityEngine.Vector4 Vehicle::m_targetPos0
IL_0136: ldarg.0
IL_0137: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_013C: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0141: ldarg.1
IL_0142: ldind.u2
IL_0143: ldelema Vehicle
IL_0148: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_014D: stfld UnityEngine.Vector4 Vehicle::m_targetPos1
IL_0152: ldarg.0
IL_0153: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0158: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_015D: ldarg.1
IL_015E: ldind.u2
IL_015F: ldelema Vehicle
IL_0164: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_0169: stfld UnityEngine.Vector4 Vehicle::m_targetPos2
IL_016E: ldarg.0
IL_016F: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0174: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0179: ldarg.1
IL_017A: ldind.u2
IL_017B: ldelema Vehicle
IL_0180: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_0185: stfld UnityEngine.Vector4 Vehicle::m_targetPos3
IL_018A: ldarg.0
IL_018B: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0190: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0195: ldarg.1
IL_0196: ldind.u2
IL_0197: ldelema Vehicle
IL_019C: ldc.i4.0
IL_019D: stfld System.UInt16 Vehicle::m_sourceBuilding
IL_01A2: ldarg.0
IL_01A3: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01A8: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01AD: ldarg.1
IL_01AE: ldind.u2
IL_01AF: ldelema Vehicle
IL_01B4: ldc.i4.0
IL_01B5: stfld System.UInt16 Vehicle::m_targetBuilding
IL_01BA: ldarg.0
IL_01BB: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01C0: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01C5: ldarg.1
IL_01C6: ldind.u2
IL_01C7: ldelema Vehicle
IL_01CC: ldarg.s 5
IL_01CE: conv.u1
IL_01CF: stfld System.Byte Vehicle::m_transferType
IL_01D4: ldarg.0
IL_01D5: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01DA: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01DF: ldarg.1
IL_01E0: ldind.u2
IL_01E1: ldelema Vehicle
IL_01E6: ldc.i4.0
IL_01E7: stfld System.UInt16 Vehicle::m_transferSize
IL_01EC: ldarg.0
IL_01ED: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01F2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01F7: ldarg.1
IL_01F8: ldind.u2
IL_01F9: ldelema Vehicle
IL_01FE: ldc.i4.0
IL_01FF: stfld System.Byte Vehicle::m_waitCounter
IL_0204: ldarg.0
IL_0205: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_020A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_020F: ldarg.1
IL_0210: ldind.u2
IL_0211: ldelema Vehicle
IL_0216: ldc.i4.0
IL_0217: stfld System.Byte Vehicle::m_blockCounter
IL_021C: ldarg.0
IL_021D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0222: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0227: ldarg.1
IL_0228: ldind.u2
IL_0229: ldelema Vehicle
IL_022E: ldc.i4.0
IL_022F: stfld System.UInt16 Vehicle::m_nextGridVehicle
IL_0234: ldarg.0
IL_0235: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_023A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_023F: ldarg.1
IL_0240: ldind.u2
IL_0241: ldelema Vehicle
IL_0246: ldc.i4.0
IL_0247: stfld System.UInt16 Vehicle::m_nextOwnVehicle
IL_024C: ldarg.0
IL_024D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0252: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0257: ldarg.1
IL_0258: ldind.u2
IL_0259: ldelema Vehicle
IL_025E: ldc.i4.0
IL_025F: stfld System.UInt16 Vehicle::m_nextGuestVehicle
IL_0264: ldarg.0
IL_0265: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_026A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_026F: ldarg.1
IL_0270: ldind.u2
IL_0271: ldelema Vehicle
IL_0276: ldc.i4.0
IL_0277: stfld System.UInt16 Vehicle::m_nextLineVehicle
IL_027C: ldarg.0
IL_027D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0282: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0287: ldarg.1
IL_0288: ldind.u2
IL_0289: ldelema Vehicle
IL_028E: ldc.i4.0
IL_028F: stfld System.UInt16 Vehicle::m_transportLine
IL_0294: ldarg.0
IL_0295: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_029A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_029F: ldarg.1
IL_02A0: ldind.u2
IL_02A1: ldelema Vehicle
IL_02A6: ldc.i4.0
IL_02A7: stfld System.UInt16 Vehicle::m_leadingVehicle
IL_02AC: ldarg.0
IL_02AD: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02B2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02B7: ldarg.1
IL_02B8: ldind.u2
IL_02B9: ldelema Vehicle
IL_02BE: ldc.i4.0
IL_02BF: stfld System.UInt16 Vehicle::m_trailingVehicle
IL_02C4: ldarg.0
IL_02C5: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02CA: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02CF: ldarg.1
IL_02D0: ldind.u2
IL_02D1: ldelema Vehicle
IL_02D6: ldc.i4.0
IL_02D7: stfld System.UInt16 Vehicle::m_cargoParent
IL_02DC: ldarg.0
IL_02DD: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02E2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02E7: ldarg.1
IL_02E8: ldind.u2
IL_02E9: ldelema Vehicle
IL_02EE: ldc.i4.0
IL_02EF: stfld System.UInt16 Vehicle::m_firstCargo
IL_02F4: ldarg.0
IL_02F5: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02FA: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02FF: ldarg.1
IL_0300: ldind.u2
IL_0301: ldelema Vehicle
IL_0306: ldc.i4.0
IL_0307: stfld System.UInt16 Vehicle::m_nextCargo
IL_030C: ldarg.0
IL_030D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0312: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0317: ldarg.1
IL_0318: ldind.u2
IL_0319: ldelema Vehicle
IL_031E: ldc.i4.0
IL_031F: stfld System.UInt32 Vehicle::m_citizenUnits
IL_0324: ldarg.0
IL_0325: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_032A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_032F: ldarg.1
IL_0330: ldind.u2
IL_0331: ldelema Vehicle
IL_0336: ldc.i4.0
IL_0337: stfld System.UInt32 Vehicle::m_path
IL_033C: ldarg.0
IL_033D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0342: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0347: ldarg.1
IL_0348: ldind.u2
IL_0349: ldelema Vehicle
IL_034E: ldc.i4.0
IL_034F: stfld System.Byte Vehicle::m_lastFrame
IL_0354: ldarg.0
IL_0355: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_035A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_035F: ldarg.1
IL_0360: ldind.u2
IL_0361: ldelema Vehicle
IL_0366: ldc.i4.0
IL_0367: stfld System.Byte Vehicle::m_pathPositionIndex
IL_036C: ldarg.0
IL_036D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0372: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0377: ldarg.1
IL_0378: ldind.u2
IL_0379: ldelema Vehicle
IL_037E: ldc.i4.0
IL_037F: stfld System.Byte Vehicle::m_lastPathOffset
IL_0384: ldarg.0
IL_0385: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_038A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_038F: ldarg.1
IL_0390: ldind.u2
IL_0391: ldelema Vehicle
IL_0396: ldc.i4.0
IL_0397: stfld System.Byte Vehicle::m_gateIndex
IL_039C: ldarg.0
IL_039D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03A2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03A7: ldarg.1
IL_03A8: ldind.u2
IL_03A9: ldelema Vehicle
IL_03AE: ldc.i4.0
IL_03AF: stfld System.UInt16 Vehicle::m_waterSource
IL_03B4: ldarg.0
IL_03B5: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03BA: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03BF: ldarg.1
IL_03C0: ldind.u2
IL_03C1: ldelema Vehicle
IL_03C6: ldc.i4.0
IL_03C7: stfld System.UInt16 Vehicle::m_touristCount
IL_03CC: ldarg.0
IL_03CD: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03D2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03D7: ldarg.1
IL_03D8: ldind.u2
IL_03D9: ldelema Vehicle
IL_03DE: ldc.i4.0
IL_03DF: stfld System.UInt16 Vehicle::m_custom
IL_03E4: ldarg.3
IL_03E5: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_03EA: ldarg.1
IL_03EB: ldind.u2
IL_03EC: ldarg.0
IL_03ED: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03F2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03F7: ldarg.1
IL_03F8: ldind.u2
IL_03F9: ldelema Vehicle
IL_03FE: callvirt virtual System.Void VehicleAI::CreateVehicle(System.UInt16
vehicleID, Vehicle& data)
IL_0403: ldarg.3
IL_0404: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_0409: ldarg.1
IL_040A: ldind.u2
IL_040B: ldarg.0
IL_040C: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0411: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0416: ldarg.1
IL_0417: ldind.u2
IL_0418: ldelema Vehicle
IL_041D: ldarg.0
IL_041E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0423: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0428: ldarg.1
IL_0429: ldind.u2
IL_042A: ldelema Vehicle
IL_042F: ldflda Frame Vehicle::m_frame0
IL_0434: callvirt virtual System.Void VehicleAI::FrameDataUpdated(System.UInt16
vehicleID, Vehicle& vehicleData, Frame& frameData)
IL_0439: ldarg.0
IL_043A: ldarg.0
IL_043B: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0440: callvirt System.UInt32 Array16`1<Vehicle>::ItemCount()
IL_0445: ldc.i4.1
IL_0446: sub
IL_0447: stfld System.Int32 VehicleManager::m_vehicleCount
IL_044C: ldc.i4.1
IL_044D: br => Label3
IL_0452: Label0
IL_0452: ldarg.1
IL_0453: ldc.i4.0
IL_0454: stind.i2
IL_0455: ldc.i4.0
IL_0456: // end original
IL_0456: Label3
IL_0456: ret
DONE

### Patch: System.Void VehicleManager::ReleaseVehicle(System.UInt16 vehicle)


### Replacement: static System.Void
VehicleManager::ReleaseVehicle_Patch0(VehicleManager this, System.UInt16 vehicle)
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: ldarg.0
IL_0003: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0008: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_000D: ldarg.1
IL_000E: ldelema Vehicle
IL_0013: call System.Void
VehicleManager::ReleaseVehicleImplementation(System.UInt16 vehicle, Vehicle& data)
IL_0018: // end original
IL_0018: ret
DONE

### Patch: System.Void NetManager::UpdateSegment(System.UInt16 segment,


System.UInt16 fromNode, System.Int32 level)
### Replacement: static System.Void NetManager::UpdateSegment_Patch0(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<NetSegment> NetManager::m_segments
IL_0030: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0047: ldfld NetSegment[] Array16`1<NetSegment>::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: ret
DONE

### Patch: System.Void NetManager::FinalizeSegment(System.UInt16 segment,


NetSegment& data)
### Replacement: static System.Void NetManager::FinalizeSegment_Patch0(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<NetNode> NetManager::m_nodes
IL_0006: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0021: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_00CD: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_00F3: ldfld NetSegment[] Array16`1<NetSegment>::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<LogChannel>::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: ret
DONE

### Patch: static System.Void RoadBaseAI::TrafficLightSimulationStep(System.UInt16


nodeID, NetNode& data)
### Replacement: static System.Void
RoadBaseAI::TrafficLightSimulationStep_Patch0(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.Int32
IL_0000: Local var 38: System.UInt16
IL_0000: Local var 39: RoadBaseAI/TrafficLightState
IL_0000: Local var 40: RoadBaseAI/TrafficLightState
IL_0000: Local var 41: UnityEngine.Vector3
IL_0000: // start original
IL_0000: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0005: stloc.0
IL_0006: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_000B: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0010: stloc.1
IL_0011: ldarg.1
IL_0012: ldfld System.Byte NetNode::m_maxWaitTime
IL_0017: ldc.i4.3
IL_0018: and
IL_0019: stloc.2
IL_001A: ldarg.1
IL_001B: ldfld System.Byte NetNode::m_maxWaitTime
IL_0020: ldc.i4.2
IL_0021: shr
IL_0022: ldc.i4.7
IL_0023: and
IL_0024: stloc.3
IL_0025: ldarg.1
IL_0026: ldfld System.Byte NetNode::m_maxWaitTime
IL_002B: ldc.i4.5
IL_002C: shr
IL_002D: stloc.s 4 (System.Int32)
IL_002F: ldc.i4.m1
IL_0030: stloc.s 5 (System.Int32)
IL_0032: ldc.i4.m1
IL_0033: stloc.s 6 (System.Int32)
IL_0035: ldc.i4.m1
IL_0036: stloc.s 7 (System.Int32)
IL_0038: ldc.i4.m1
IL_0039: stloc.s 8 (System.Int32)
IL_003B: ldc.i4.m1
IL_003C: stloc.s 9 (System.Int32)
IL_003E: ldc.i4.m1
IL_003F: stloc.s 10 (System.Int32)
IL_0041: ldc.i4.0
IL_0042: stloc.s 11 (System.Int32)
IL_0044: ldc.i4.0
IL_0045: stloc.s 12 (System.Int32)
IL_0047: ldc.i4.0
IL_0048: stloc.s 13 (System.Int32)
IL_004A: ldc.i4.0
IL_004B: stloc.s 14 (System.Int32)
IL_004D: ldc.i4.0
IL_004E: stloc.s 15 (System.Int32)
IL_0050: ldc.i4.0
IL_0051: stloc.s 16 (System.Int32)
IL_0053: br => Label0
IL_0058: Label22
IL_0058: ldarg.1
IL_0059: ldloc.s 16 (System.Int32)
IL_005B: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0060: stloc.s 17 (System.UInt16)
IL_0062: ldloc.s 17 (System.UInt16)
IL_0064: brfalse => Label1
IL_0069: ldc.i4.0
IL_006A: stloc.s 18 (System.Int32)
IL_006C: ldc.i4.0
IL_006D: stloc.s 19 (System.Int32)
IL_006F: ldloc.0
IL_0070: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0075: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_007A: ldloc.s 17 (System.UInt16)
IL_007C: ldelema NetSegment
IL_0081: ldloc.s 17 (System.UInt16)
IL_0083: ldc.i4.s 33
IL_0085: ldc.i4 65601
IL_008A: ldloca.s 18 (System.Int32)
IL_008C: ldloca.s 19 (System.Int32)
IL_008E: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_0093: ldloc.0
IL_0094: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0099: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_009E: ldloc.s 17 (System.UInt16)
IL_00A0: ldelema NetSegment
IL_00A5: ldfld System.UInt16 NetSegment::m_startNode
IL_00AA: ldarg.0
IL_00AB: ceq
IL_00AD: stloc.s 20 (System.Boolean)
IL_00AF: ldloc.s 20 (System.Boolean)
IL_00B1: brfalse => Label2
IL_00B6: ldloc.s 19 (System.Int32)
IL_00B8: ldc.i4.0
IL_00B9: ceq
IL_00BB: ldc.i4.0
IL_00BC: ceq
IL_00BE: br => Label3
IL_00C3: Label2
IL_00C3: ldloc.s 18 (System.Int32)
IL_00C5: ldc.i4.0
IL_00C6: ceq
IL_00C8: ldc.i4.0
IL_00C9: ceq
IL_00CB: Label3
IL_00CB: stloc.s 21 (System.Boolean)
IL_00CD: ldloc.s 20 (System.Boolean)
IL_00CF: brfalse => Label4
IL_00D4: ldloc.s 18 (System.Int32)
IL_00D6: ldc.i4.0
IL_00D7: ceq
IL_00D9: ldc.i4.0
IL_00DA: ceq
IL_00DC: br => Label5
IL_00E1: Label4
IL_00E1: ldloc.s 19 (System.Int32)
IL_00E3: ldc.i4.0
IL_00E4: ceq
IL_00E6: ldc.i4.0
IL_00E7: ceq
IL_00E9: Label5
IL_00E9: stloc.s 22 (System.Boolean)
IL_00EB: ldloc.s 21 (System.Boolean)
IL_00ED: brfalse => Label6
IL_00F2: ldloc.s 11 (System.Int32)
IL_00F4: ldc.i4.1
IL_00F5: ldloc.s 16 (System.Int32)
IL_00F7: ldc.i4.s 31
IL_00F9: and
IL_00FA: shl
IL_00FB: or
IL_00FC: stloc.s 11 (System.Int32)
IL_00FE: Label6
IL_00FE: ldloc.s 22 (System.Boolean)
IL_0100: brfalse => Label7
IL_0105: ldloc.s 12 (System.Int32)
IL_0107: ldc.i4.1
IL_0108: ldloc.s 16 (System.Int32)
IL_010A: ldc.i4.s 31
IL_010C: and
IL_010D: shl
IL_010E: or
IL_010F: stloc.s 12 (System.Int32)
IL_0111: ldloc.s 14 (System.Int32)
IL_0113: ldc.i4.1
IL_0114: add
IL_0115: stloc.s 14 (System.Int32)
IL_0117: Label7
IL_0117: ldarg.0
IL_0118: ldloc.0
IL_0119: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_011E: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0123: ldloc.s 17 (System.UInt16)
IL_0125: ldelema NetSegment
IL_012A: ldloc.1
IL_012B: ldc.i4 256
IL_0130: sub
IL_0131: ldloca.s 23 (RoadBaseAI+TrafficLightState)
IL_0133: ldloca.s 24 (RoadBaseAI+TrafficLightState)
IL_0135: ldloca.s 25 (System.Boolean)
IL_0137: ldloca.s 26 (System.Boolean)
IL_0139: 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_013E: ldloc.s 24 (RoadBaseAI+TrafficLightState)
IL_0140: ldc.i4.2
IL_0141: and
IL_0142: brfalse => Label8
IL_0147: ldloc.s 26 (System.Boolean)
IL_0149: brfalse => Label9
IL_014E: ldloc.s 8 (System.Int32)
IL_0150: ldc.i4.m1
IL_0151: bne.un => Label10
IL_0156: ldloc.s 16 (System.Int32)
IL_0158: stloc.s 8 (System.Int32)
IL_015A: Label10
IL_015A: ldloc.s 10 (System.Int32)
IL_015C: ldc.i4.m1
IL_015D: bne.un => Label11
IL_0162: ldloc.s 15 (System.Int32)
IL_0164: ldloc.s 4 (System.Int32)
IL_0166: blt => Label12
IL_016B: ldloc.s 16 (System.Int32)
IL_016D: stloc.s 10 (System.Int32)
IL_016F: Label8
IL_016F: Label9
IL_016F: Label11
IL_016F: Label12
IL_016F: ldloc.s 15 (System.Int32)
IL_0171: ldc.i4.1
IL_0172: add
IL_0173: stloc.s 15 (System.Int32)
IL_0175: ldloc.s 21 (System.Boolean)
IL_0177: brtrue => Label13
IL_017C: ldloc.s 25 (System.Boolean)
IL_017E: brfalse => Label14
IL_0183: Label13
IL_0183: ldloc.s 23 (RoadBaseAI+TrafficLightState)
IL_0185: ldc.i4.2
IL_0186: and
IL_0187: brtrue => Label15
IL_018C: ldloc.s 16 (System.Int32)
IL_018E: stloc.s 6 (System.Int32)
IL_0190: ldloc.s 25 (System.Boolean)
IL_0192: brfalse => Label16
IL_0197: ldloc.s 16 (System.Int32)
IL_0199: stloc.s 5 (System.Int32)
IL_019B: Label16
IL_019B: br => Label17
IL_01A0: Label15
IL_01A0: ldloc.s 25 (System.Boolean)
IL_01A2: brfalse => Label18
IL_01A7: ldloc.s 7 (System.Int32)
IL_01A9: ldc.i4.m1
IL_01AA: bne.un => Label19
IL_01AF: ldloc.s 16 (System.Int32)
IL_01B1: stloc.s 7 (System.Int32)
IL_01B3: Label19
IL_01B3: ldloc.s 9 (System.Int32)
IL_01B5: ldc.i4.m1
IL_01B6: bne.un => Label20
IL_01BB: ldloc.s 13 (System.Int32)
IL_01BD: ldloc.3
IL_01BE: blt => Label21
IL_01C3: ldloc.s 16 (System.Int32)
IL_01C5: stloc.s 9 (System.Int32)
IL_01C7: Label17
IL_01C7: Label18
IL_01C7: Label20
IL_01C7: Label21
IL_01C7: ldloc.s 13 (System.Int32)
IL_01C9: ldc.i4.1
IL_01CA: add
IL_01CB: stloc.s 13 (System.Int32)
IL_01CD: Label1
IL_01CD: Label14
IL_01CD: ldloc.s 16 (System.Int32)
IL_01CF: ldc.i4.1
IL_01D0: add
IL_01D1: stloc.s 16 (System.Int32)
IL_01D3: Label0
IL_01D3: ldloc.s 16 (System.Int32)
IL_01D5: ldc.i4.8
IL_01D6: blt => Label22
IL_01DB: ldloc.s 9 (System.Int32)
IL_01DD: ldc.i4.m1
IL_01DE: bne.un => Label23
IL_01E3: ldloc.s 7 (System.Int32)
IL_01E5: stloc.s 9 (System.Int32)
IL_01E7: Label23
IL_01E7: ldloc.s 10 (System.Int32)
IL_01E9: ldc.i4.m1
IL_01EA: bne.un => Label24
IL_01EF: ldloc.s 8 (System.Int32)
IL_01F1: stloc.s 10 (System.Int32)
IL_01F3: Label24
IL_01F3: ldloc.s 6 (System.Int32)
IL_01F5: ldc.i4.m1
IL_01F6: beq => Label25
IL_01FB: ldloc.s 5 (System.Int32)
IL_01FD: ldc.i4.m1
IL_01FE: beq => Label26
IL_0203: ldloc.2
IL_0204: ldc.i4.1
IL_0205: bgt => Label27
IL_020A: ldc.i4.m1
IL_020B: stloc.s 9 (System.Int32)
IL_020D: ldc.i4.m1
IL_020E: stloc.s 10 (System.Int32)
IL_0210: ldloc.2
IL_0211: ldc.i4.1
IL_0212: add
IL_0213: stloc.2
IL_0214: Label25
IL_0214: Label26
IL_0214: Label27
IL_0214: ldloc.s 10 (System.Int32)
IL_0216: ldc.i4.m1
IL_0217: beq => Label28
IL_021C: ldloc.s 9 (System.Int32)
IL_021E: ldc.i4.m1
IL_021F: beq => Label29
IL_0224: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0229: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_022E: ldc.i4.3
IL_022F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0234: brfalse => Label30
IL_0239: ldc.i4.m1
IL_023A: stloc.s 10 (System.Int32)
IL_023C: Label28
IL_023C: Label29
IL_023C: Label30
IL_023C: ldloc.s 9 (System.Int32)
IL_023E: ldc.i4.m1
IL_023F: beq => Label31
IL_0244: ldloc.s 9 (System.Int32)
IL_0246: stloc.s 6 (System.Int32)
IL_0248: Label31
IL_0248: ldloc.s 10 (System.Int32)
IL_024A: ldloc.s 6 (System.Int32)
IL_024C: bne.un => Label32
IL_0251: ldc.i4.m1
IL_0252: stloc.s 6 (System.Int32)
IL_0254: Label32
IL_0254: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_0259: stloc.s 27 (UnityEngine.Vector3)
IL_025B: ldloc.s 10 (System.Int32)
IL_025D: ldc.i4.m1
IL_025E: beq => Label33
IL_0263: ldarg.1
IL_0264: ldloc.s 10 (System.Int32)
IL_0266: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_026B: stloc.s 28 (System.UInt16)
IL_026D: ldloc.0
IL_026E: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0273: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0278: ldloc.s 28 (System.UInt16)
IL_027A: ldelema NetSegment
IL_027F: ldarg.0
IL_0280: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0285: stloc.s 27 (UnityEngine.Vector3)
IL_0287: ldloc.s 6 (System.Int32)
IL_0289: ldc.i4.m1
IL_028A: beq => Label34
IL_028F: ldarg.1
IL_0290: ldloc.s 6 (System.Int32)
IL_0292: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0297: stloc.s 28 (System.UInt16)
IL_0299: ldloc.0
IL_029A: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_029F: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02A4: ldloc.s 28 (System.UInt16)
IL_02A6: ldelema NetSegment
IL_02AB: ldarg.0
IL_02AC: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_02B1: stloc.s 29 (UnityEngine.Vector3)
IL_02B3: ldloca.s 29 (UnityEngine.Vector3)
IL_02B5: ldfld System.Single UnityEngine.Vector3::x
IL_02BA: ldloca.s 27 (UnityEngine.Vector3)
IL_02BC: ldfld System.Single UnityEngine.Vector3::x
IL_02C1: mul
IL_02C2: ldloca.s 29 (UnityEngine.Vector3)
IL_02C4: ldfld System.Single UnityEngine.Vector3::z
IL_02C9: ldloca.s 27 (UnityEngine.Vector3)
IL_02CB: ldfld System.Single UnityEngine.Vector3::z
IL_02D0: mul
IL_02D1: add
IL_02D2: ldc.r4 -0.5
IL_02D7: bge.un => Label35
IL_02DC: ldc.i4.m1
IL_02DD: stloc.s 6 (System.Int32)
IL_02DF: Label34
IL_02DF: Label35
IL_02DF: ldloc.s 6 (System.Int32)
IL_02E1: ldc.i4.m1
IL_02E2: bne.un => Label36
IL_02E7: ldc.i4.0
IL_02E8: stloc.s 30 (System.Int32)
IL_02EA: br => Label37
IL_02EF: Label43
IL_02EF: ldloc.s 30 (System.Int32)
IL_02F1: ldloc.s 10 (System.Int32)
IL_02F3: beq => Label38
IL_02F8: ldloc.s 11 (System.Int32)
IL_02FA: ldc.i4.1
IL_02FB: ldloc.s 30 (System.Int32)
IL_02FD: ldc.i4.s 31
IL_02FF: and
IL_0300: shl
IL_0301: and
IL_0302: brfalse => Label39
IL_0307: ldarg.1
IL_0308: ldloc.s 30 (System.Int32)
IL_030A: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_030F: stloc.s 28 (System.UInt16)
IL_0311: ldloc.s 28 (System.UInt16)
IL_0313: brfalse => Label40
IL_0318: ldloc.0
IL_0319: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_031E: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0323: ldloc.s 28 (System.UInt16)
IL_0325: ldelema NetSegment
IL_032A: ldarg.0
IL_032B: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0330: stloc.s 31 (UnityEngine.Vector3)
IL_0332: ldloca.s 31 (UnityEngine.Vector3)
IL_0334: ldfld System.Single UnityEngine.Vector3::x
IL_0339: ldloca.s 27 (UnityEngine.Vector3)
IL_033B: ldfld System.Single UnityEngine.Vector3::x
IL_0340: mul
IL_0341: ldloca.s 31 (UnityEngine.Vector3)
IL_0343: ldfld System.Single UnityEngine.Vector3::z
IL_0348: ldloca.s 27 (UnityEngine.Vector3)
IL_034A: ldfld System.Single UnityEngine.Vector3::z
IL_034F: mul
IL_0350: add
IL_0351: ldc.r4 -0.5
IL_0356: blt.un => Label41
IL_035B: ldloc.s 30 (System.Int32)
IL_035D: stloc.s 6 (System.Int32)
IL_035F: br => Label42
IL_0364: Label38
IL_0364: Label39
IL_0364: Label40
IL_0364: Label41
IL_0364: ldloc.s 30 (System.Int32)
IL_0366: ldc.i4.1
IL_0367: add
IL_0368: stloc.s 30 (System.Int32)
IL_036A: Label37
IL_036A: ldloc.s 30 (System.Int32)
IL_036C: ldc.i4.8
IL_036D: blt => Label43
IL_0372: Label33
IL_0372: Label36
IL_0372: Label42
IL_0372: ldc.i4.m1
IL_0373: stloc.s 32 (System.Int32)
IL_0375: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_037A: stloc.s 33 (UnityEngine.Vector3)
IL_037C: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_0381: stloc.s 34 (UnityEngine.Vector3)
IL_0383: ldloc.s 6 (System.Int32)
IL_0385: ldc.i4.m1
IL_0386: beq => Label44
IL_038B: ldarg.1
IL_038C: ldloc.s 6 (System.Int32)
IL_038E: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0393: stloc.s 35 (System.UInt16)
IL_0395: ldloc.0
IL_0396: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_039B: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_03A0: ldloc.s 35 (System.UInt16)
IL_03A2: ldelema NetSegment
IL_03A7: ldarg.0
IL_03A8: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_03AD: stloc.s 33 (UnityEngine.Vector3)
IL_03AF: ldloc.s 11 (System.Int32)
IL_03B1: ldloc.s 12 (System.Int32)
IL_03B3: and
IL_03B4: ldc.i4.1
IL_03B5: ldloc.s 6 (System.Int32)
IL_03B7: ldc.i4.s 31
IL_03B9: and
IL_03BA: shl
IL_03BB: and
IL_03BC: brfalse => Label45
IL_03C1: ldc.i4.0
IL_03C2: stloc.s 36 (System.Int32)
IL_03C4: br => Label46
IL_03C9: Label57
IL_03C9: ldloc.s 36 (System.Int32)
IL_03CB: ldloc.s 6 (System.Int32)
IL_03CD: beq => Label47
IL_03D2: ldloc.s 36 (System.Int32)
IL_03D4: ldloc.s 10 (System.Int32)
IL_03D6: beq => Label48
IL_03DB: ldloc.s 11 (System.Int32)
IL_03DD: ldloc.s 12 (System.Int32)
IL_03DF: and
IL_03E0: ldc.i4.1
IL_03E1: ldloc.s 36 (System.Int32)
IL_03E3: ldc.i4.s 31
IL_03E5: and
IL_03E6: shl
IL_03E7: and
IL_03E8: brfalse => Label49
IL_03ED: ldarg.1
IL_03EE: ldloc.s 36 (System.Int32)
IL_03F0: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_03F5: stloc.s 35 (System.UInt16)
IL_03F7: ldloc.s 35 (System.UInt16)
IL_03F9: brfalse => Label50
IL_03FE: ldloc.0
IL_03FF: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0404: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0409: ldloc.s 35 (System.UInt16)
IL_040B: ldelema NetSegment
IL_0410: ldarg.0
IL_0411: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0416: stloc.s 34 (UnityEngine.Vector3)
IL_0418: ldloc.s 10 (System.Int32)
IL_041A: ldc.i4.m1
IL_041B: beq => Label51
IL_0420: ldloca.s 34 (UnityEngine.Vector3)
IL_0422: ldfld System.Single UnityEngine.Vector3::x
IL_0427: ldloca.s 27 (UnityEngine.Vector3)
IL_0429: ldfld System.Single UnityEngine.Vector3::x
IL_042E: mul
IL_042F: ldloca.s 34 (UnityEngine.Vector3)
IL_0431: ldfld System.Single UnityEngine.Vector3::z
IL_0436: ldloca.s 27 (UnityEngine.Vector3)
IL_0438: ldfld System.Single UnityEngine.Vector3::z
IL_043D: mul
IL_043E: add
IL_043F: ldc.r4 -0.5
IL_0444: blt.un => Label52
IL_0449: Label51
IL_0449: ldloc.s 14 (System.Int32)
IL_044B: ldc.i4.2
IL_044C: bne.un => Label53
IL_0451: ldloc.s 36 (System.Int32)
IL_0453: stloc.s 32 (System.Int32)
IL_0455: br => Label54
IL_045A: Label53
IL_045A: ldloca.s 34 (UnityEngine.Vector3)
IL_045C: ldfld System.Single UnityEngine.Vector3::x
IL_0461: ldloca.s 33 (UnityEngine.Vector3)
IL_0463: ldfld System.Single UnityEngine.Vector3::x
IL_0468: mul
IL_0469: ldloca.s 34 (UnityEngine.Vector3)
IL_046B: ldfld System.Single UnityEngine.Vector3::z
IL_0470: ldloca.s 33 (UnityEngine.Vector3)
IL_0472: ldfld System.Single UnityEngine.Vector3::z
IL_0477: mul
IL_0478: add
IL_0479: ldc.r4 -0.9396926
IL_047E: bge.un => Label55
IL_0483: ldloc.s 36 (System.Int32)
IL_0485: stloc.s 32 (System.Int32)
IL_0487: br => Label56
IL_048C: Label47
IL_048C: Label48
IL_048C: Label49
IL_048C: Label50
IL_048C: Label52
IL_048C: Label55
IL_048C: ldloc.s 36 (System.Int32)
IL_048E: ldc.i4.1
IL_048F: add
IL_0490: stloc.s 36 (System.Int32)
IL_0492: Label46
IL_0492: ldloc.s 36 (System.Int32)
IL_0494: ldc.i4.8
IL_0495: blt => Label57
IL_049A: Label44
IL_049A: Label45
IL_049A: Label54
IL_049A: Label56
IL_049A: ldc.i4.0
IL_049B: stloc.s 37 (System.Int32)
IL_049D: br => Label58
IL_04A2: Label77
IL_04A2: ldarg.1
IL_04A3: ldloc.s 37 (System.Int32)
IL_04A5: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_04AA: stloc.s 38 (System.UInt16)
IL_04AC: ldloc.s 38 (System.UInt16)
IL_04AE: brfalse => Label59
IL_04B3: ldarg.0
IL_04B4: ldloc.0
IL_04B5: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_04BA: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_04BF: ldloc.s 38 (System.UInt16)
IL_04C1: ldelema NetSegment
IL_04C6: ldloc.1
IL_04C7: ldc.i4 256
IL_04CC: sub
IL_04CD: ldloca.s 39 (RoadBaseAI+TrafficLightState)
IL_04CF: ldloca.s 40 (RoadBaseAI+TrafficLightState)
IL_04D1: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_04D6: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_04D8: ldc.i4.s -2
IL_04DA: and
IL_04DB: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_04DD: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_04DF: ldc.i4.s -2
IL_04E1: and
IL_04E2: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_04E4: ldloc.s 6 (System.Int32)
IL_04E6: ldloc.s 37 (System.Int32)
IL_04E8: beq => Label60
IL_04ED: ldloc.s 32 (System.Int32)
IL_04EF: ldloc.s 37 (System.Int32)
IL_04F1: bne.un => Label61
IL_04F6: Label60
IL_04F6: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_04F8: ldc.i4.2
IL_04F9: and
IL_04FA: brfalse => Label62
IL_04FF: ldc.i4.1
IL_0500: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0502: ldc.i4.0
IL_0503: stloc.2
IL_0504: ldloc.3
IL_0505: ldc.i4.1
IL_0506: add
IL_0507: dup
IL_0508: stloc.3
IL_0509: ldloc.s 13 (System.Int32)
IL_050B: blt => Label63
IL_0510: ldc.i4.0
IL_0511: stloc.3
IL_0512: Label62
IL_0512: Label63
IL_0512: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0514: ldc.i4.2
IL_0515: and
IL_0516: brtrue => Label64
IL_051B: ldc.i4.3
IL_051C: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_051E: Label64
IL_051E: br => Label65
IL_0523: Label61
IL_0523: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0525: ldc.i4.2
IL_0526: and
IL_0527: brtrue => Label66
IL_052C: ldc.i4.3
IL_052D: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_052F: Label66
IL_052F: ldloc.0
IL_0530: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0535: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_053A: ldloc.s 38 (System.UInt16)
IL_053C: ldelema NetSegment
IL_0541: ldarg.0
IL_0542: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0547: stloc.s 41 (UnityEngine.Vector3)
IL_0549: ldloc.s 12 (System.Int32)
IL_054B: ldc.i4.1
IL_054C: ldloc.s 37 (System.Int32)
IL_054E: ldc.i4.s 31
IL_0550: and
IL_0551: shl
IL_0552: and
IL_0553: brfalse => Label67
IL_0558: ldloc.s 10 (System.Int32)
IL_055A: ldloc.s 37 (System.Int32)
IL_055C: beq => Label68
IL_0561: ldloc.s 6 (System.Int32)
IL_0563: ldc.i4.m1
IL_0564: beq => Label69
IL_0569: ldloca.s 41 (UnityEngine.Vector3)
IL_056B: ldfld System.Single UnityEngine.Vector3::x
IL_0570: ldloca.s 33 (UnityEngine.Vector3)
IL_0572: ldfld System.Single UnityEngine.Vector3::x
IL_0577: mul
IL_0578: ldloca.s 41 (UnityEngine.Vector3)
IL_057A: ldfld System.Single UnityEngine.Vector3::z
IL_057F: ldloca.s 33 (UnityEngine.Vector3)
IL_0581: ldfld System.Single UnityEngine.Vector3::z
IL_0586: mul
IL_0587: add
IL_0588: ldc.r4 -0.5
IL_058D: blt => Label70
IL_0592: Label69
IL_0592: ldloc.s 32 (System.Int32)
IL_0594: ldc.i4.m1
IL_0595: beq => Label71
IL_059A: ldloca.s 41 (UnityEngine.Vector3)
IL_059C: ldfld System.Single UnityEngine.Vector3::x
IL_05A1: ldloca.s 34 (UnityEngine.Vector3)
IL_05A3: ldfld System.Single UnityEngine.Vector3::x
IL_05A8: mul
IL_05A9: ldloca.s 41 (UnityEngine.Vector3)
IL_05AB: ldfld System.Single UnityEngine.Vector3::z
IL_05B0: ldloca.s 34 (UnityEngine.Vector3)
IL_05B2: ldfld System.Single UnityEngine.Vector3::z
IL_05B7: mul
IL_05B8: add
IL_05B9: ldc.r4 -0.5
IL_05BE: bge.un => Label72
IL_05C3: Label70
IL_05C3: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05C5: ldc.i4.2
IL_05C6: and
IL_05C7: brtrue => Label73
IL_05CC: ldc.i4.3
IL_05CD: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05CF: Label73
IL_05CF: br => Label74
IL_05D4: Label67
IL_05D4: Label68
IL_05D4: Label71
IL_05D4: Label72
IL_05D4: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05D6: ldc.i4.2
IL_05D7: and
IL_05D8: brfalse => Label75
IL_05DD: ldc.i4.1
IL_05DE: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05E0: ldloc.s 4 (System.Int32)
IL_05E2: ldc.i4.1
IL_05E3: add
IL_05E4: dup
IL_05E5: stloc.s 4 (System.Int32)
IL_05E7: ldloc.s 15 (System.Int32)
IL_05E9: blt => Label76
IL_05EE: ldc.i4.0
IL_05EF: stloc.s 4 (System.Int32)
IL_05F1: Label65
IL_05F1: Label74
IL_05F1: Label75
IL_05F1: Label76
IL_05F1: ldarg.0
IL_05F2: ldloc.0
IL_05F3: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_05F8: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_05FD: ldloc.s 38 (System.UInt16)
IL_05FF: ldelema NetSegment
IL_0604: ldloc.1
IL_0605: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0607: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0609: ldc.i4.0
IL_060A: ldc.i4.0
IL_060B: 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_0610: Label59
IL_0610: ldloc.s 37 (System.Int32)
IL_0612: ldc.i4.1
IL_0613: add
IL_0614: stloc.s 37 (System.Int32)
IL_0616: Label58
IL_0616: ldloc.s 37 (System.Int32)
IL_0618: ldc.i4.8
IL_0619: blt => Label77
IL_061E: ldarg.1
IL_061F: ldloc.s 4 (System.Int32)
IL_0621: ldc.i4.5
IL_0622: shl
IL_0623: ldloc.3
IL_0624: ldc.i4.2
IL_0625: shl
IL_0626: or
IL_0627: ldloc.2
IL_0628: or
IL_0629: conv.u1
IL_062A: stfld System.Byte NetNode::m_maxWaitTime
IL_062F: // end original
IL_062F: ret
DONE

### Patch: static System.Void RoadBaseAI::GetTrafficLightNodeState(System.UInt16


nodeID, NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData, Flags&
flags, UnityEngine.Color& color)
### Replacement: static System.Void
RoadBaseAI::GetTrafficLightNodeState_Patch0(System.UInt16 nodeID, NetNode&
nodeData, System.UInt16 segmentID, NetSegment& segmentData, Flags& 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: // start original
IL_0000: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0005: ldfld System.UInt32 SimulationManager::m_referenceFrameIndex
IL_000A: ldc.i4.s 15
IL_000C: sub
IL_000D: stloc.2
IL_000E: ldarg.0
IL_000F: ldc.i4.8
IL_0010: shl
IL_0011: ldc.i4 32768
IL_0016: div.un
IL_0017: stloc.3
IL_0018: ldloc.2
IL_0019: ldloc.3
IL_001A: sub
IL_001B: ldc.i4 255
IL_0020: and
IL_0021: stloc.s 4 (System.UInt32)
IL_0023: ldarg.0
IL_0024: ldarg.3
IL_0025: ldloc.2
IL_0026: ldloc.3
IL_0027: sub
IL_0028: ldloca.s 0 (RoadBaseAI+TrafficLightState)
IL_002A: ldloca.s 1 (RoadBaseAI+TrafficLightState)
IL_002C: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_0031: ldarg.s 5
IL_0033: ldc.r4 0.5
IL_0038: stfld System.Single UnityEngine.Color::a
IL_003D: ldloc.0
IL_003E: switch => Labels0,1,2,3
IL_0053: br => Label4
IL_0058: Label0
IL_0058: ldarg.s 5
IL_005A: ldc.r4 1
IL_005F: stfld System.Single UnityEngine.Color::g
IL_0064: br => Label5
IL_0069: Label1
IL_0069: ldloc.s 4 (System.UInt32)
IL_006B: ldc.i4.s 45
IL_006D: bge.un => Label6
IL_0072: ldarg.s 5
IL_0074: ldc.r4 0
IL_0079: stfld System.Single UnityEngine.Color::g
IL_007E: br => Label7
IL_0083: Label6
IL_0083: ldloc.s 4 (System.UInt32)
IL_0085: ldc.i4.s 60
IL_0087: bge.un => Label8
IL_008C: ldarg.s 5
IL_008E: ldc.r4 1
IL_0093: stfld System.Single UnityEngine.Color::r
IL_0098: br => Label9
IL_009D: Label8
IL_009D: ldarg.s 5
IL_009F: ldc.r4 1
IL_00A4: stfld System.Single UnityEngine.Color::g
IL_00A9: Label7
IL_00A9: Label9
IL_00A9: br => Label10
IL_00AE: Label2
IL_00AE: ldarg.s 5
IL_00B0: ldc.r4 0
IL_00B5: stfld System.Single UnityEngine.Color::g
IL_00BA: br => Label11
IL_00BF: Label3
IL_00BF: ldloc.s 4 (System.UInt32)
IL_00C1: ldc.i4.s 45
IL_00C3: bge.un => Label12
IL_00C8: ldarg.s 5
IL_00CA: ldc.r4 1
IL_00CF: stfld System.Single UnityEngine.Color::r
IL_00D4: br => Label13
IL_00D9: Label12
IL_00D9: ldarg.s 5
IL_00DB: ldc.r4 0
IL_00E0: stfld System.Single UnityEngine.Color::g
IL_00E5: Label13
IL_00E5: br => Label14
IL_00EA: Label4
IL_00EA: Label5
IL_00EA: Label10
IL_00EA: Label11
IL_00EA: Label14
IL_00EA: ldloc.1
IL_00EB: switch => Labels15,16,17,18
IL_0100: br => Label19
IL_0105: Label15
IL_0105: ldarg.s 5
IL_0107: ldc.r4 1
IL_010C: stfld System.Single UnityEngine.Color::b
IL_0111: br => Label20
IL_0116: Label16
IL_0116: ldloc.s 4 (System.UInt32)
IL_0118: ldc.i4.s 45
IL_011A: bge.un => Label21
IL_011F: ldarg.s 5
IL_0121: ldc.r4 0
IL_0126: stfld System.Single UnityEngine.Color::b
IL_012B: br => Label22
IL_0130: Label21
IL_0130: ldarg.s 5
IL_0132: ldc.r4 1
IL_0137: stfld System.Single UnityEngine.Color::b
IL_013C: Label22
IL_013C: br => Label23
IL_0141: Label17
IL_0141: ldarg.s 5
IL_0143: ldc.r4 0
IL_0148: stfld System.Single UnityEngine.Color::b
IL_014D: br => Label24
IL_0152: Label18
IL_0152: ldloc.s 4 (System.UInt32)
IL_0154: ldc.i4.s 45
IL_0156: bge.un => Label25
IL_015B: ldloc.s 4 (System.UInt32)
IL_015D: ldc.i4.8
IL_015E: div.un
IL_015F: ldc.i4.1
IL_0160: and
IL_0161: ldc.i4.1
IL_0162: bne.un => Label26
IL_0167: ldarg.s 5
IL_0169: ldc.r4 1
IL_016E: stfld System.Single UnityEngine.Color::b
IL_0173: Label26
IL_0173: br => Label27
IL_0178: Label25
IL_0178: ldarg.s 5
IL_017A: ldc.r4 0
IL_017F: stfld System.Single UnityEngine.Color::b
IL_0184: Label27
IL_0184: br => Label28
IL_0189: // end original
IL_0189: Label19
IL_0189: Label20
IL_0189: Label23
IL_0189: Label24
IL_0189: Label28
IL_0189: ret
DONE

### Patch: virtual System.Void RoadBaseAI::UpdateNode(System.UInt16 nodeID,


NetNode& data)
### Replacement: static System.Void RoadBaseAI::UpdateNode_Patch0(RoadBaseAI this,
System.UInt16 nodeID, NetNode& data)
IL_0000: Local var 0: Notification/Problem
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 Problem NetNode::m_problems
IL_000E: ldc.i8 72057602627866624
IL_0017: call static Problem Notification::RemoveProblems(Problem problems1,
Problem problems2)
IL_001C: stloc.0
IL_001D: ldc.i4.0
IL_001E: stloc.1
IL_001F: ldc.i4.0
IL_0020: stloc.2
IL_0021: ldarg.2
IL_0022: ldarg.1
IL_0023: ldc.i4.0
IL_0024: ldc.i4.s 33
IL_0026: ldc.i4.1
IL_0027: ldc.i4.1
IL_0028: ldloca.s 1 (System.Int32)
IL_002A: ldloca.s 2 (System.Int32)
IL_002C: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, LaneType laneTypes, VehicleType vehicleTypes,
System.Boolean onePerSegment, System.Int32& forward, System.Int32& backward)
IL_0031: ldarg.2
IL_0032: ldfld Flags NetNode::m_flags
IL_0037: ldc.i4 1024
IL_003C: and
IL_003D: brfalse => Label0
IL_0042: ldarg.2
IL_0043: ldfld System.UInt16 NetNode::m_building
IL_0048: brfalse => Label1
IL_004D: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0052: stloc.3
IL_0053: ldloc.1
IL_0054: brfalse => Label2
IL_0059: ldloc.3
IL_005A: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_005F: ldfld Building[] Array16`1<Building>::m_buffer
IL_0064: ldarg.2
IL_0065: ldfld System.UInt16 NetNode::m_building
IL_006A: ldelema Building
IL_006F: dup
IL_0070: ldfld Flags Building::m_flags
IL_0075: ldc.i4 128
IL_007A: or
IL_007B: stfld Flags Building::m_flags
IL_0080: br => Label3
IL_0085: Label2
IL_0085: ldloc.3
IL_0086: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008B: ldfld Building[] Array16`1<Building>::m_buffer
IL_0090: ldarg.2
IL_0091: ldfld System.UInt16 NetNode::m_building
IL_0096: ldelema Building
IL_009B: dup
IL_009C: ldfld Flags Building::m_flags
IL_00A1: ldc.i4 -129
IL_00A6: and
IL_00A7: stfld Flags Building::m_flags
IL_00AC: Label3
IL_00AC: ldloc.2
IL_00AD: brfalse => Label4
IL_00B2: ldloc.3
IL_00B3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00B8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00BD: ldarg.2
IL_00BE: ldfld System.UInt16 NetNode::m_building
IL_00C3: ldelema Building
IL_00C8: dup
IL_00C9: ldfld Flags Building::m_flags
IL_00CE: ldc.i4.s 64
IL_00D0: or
IL_00D1: stfld Flags Building::m_flags
IL_00D6: br => Label5
IL_00DB: Label4
IL_00DB: ldloc.3
IL_00DC: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00E1: ldfld Building[] Array16`1<Building>::m_buffer
IL_00E6: ldarg.2
IL_00E7: ldfld System.UInt16 NetNode::m_building
IL_00EC: ldelema Building
IL_00F1: dup
IL_00F2: ldfld Flags Building::m_flags
IL_00F7: ldc.i4.s -65
IL_00F9: and
IL_00FA: stfld Flags Building::m_flags
IL_00FF: Label5
IL_00FF: br => Label6
IL_0104: Label0
IL_0104: Label1
IL_0104: ldloc.1
IL_0105: brfalse => Label7
IL_010A: ldloc.2
IL_010B: brfalse => Label8
IL_0110: Label7
IL_0110: ldloc.1
IL_0111: brtrue => Label9
IL_0116: ldloc.2
IL_0117: brfalse => Label10
IL_011C: Label8
IL_011C: ldloc.0
IL_011D: ldc.i4 4096
IL_0122: conv.i8
IL_0123: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0128: stloc.0
IL_0129: Label6
IL_0129: Label9
IL_0129: Label10
IL_0129: ldloc.1
IL_012A: ldc.i4.1
IL_012B: bne.un => Label11
IL_0130: ldarg.2
IL_0131: dup
IL_0132: ldfld Flags NetNode::m_flags
IL_0137: ldc.i4 4194304
IL_013C: or
IL_013D: stfld Flags NetNode::m_flags
IL_0142: br => Label12
IL_0147: Label11
IL_0147: ldarg.2
IL_0148: dup
IL_0149: ldfld Flags NetNode::m_flags
IL_014E: ldc.i4 -4194305
IL_0153: and
IL_0154: stfld Flags NetNode::m_flags
IL_0159: Label12
IL_0159: ldloc.2
IL_015A: ldc.i4.1
IL_015B: bne.un => Label13
IL_0160: ldarg.2
IL_0161: dup
IL_0162: ldfld Flags NetNode::m_flags
IL_0167: ldc.i4 16777216
IL_016C: or
IL_016D: stfld Flags NetNode::m_flags
IL_0172: br => Label14
IL_0177: Label13
IL_0177: ldarg.2
IL_0178: dup
IL_0179: ldfld Flags NetNode::m_flags
IL_017E: ldc.i4 -16777217
IL_0183: and
IL_0184: stfld Flags NetNode::m_flags
IL_0189: Label14
IL_0189: ldarg.2
IL_018A: ldfld Flags NetNode::m_flags
IL_018F: ldc.i4 262144
IL_0194: and
IL_0195: brtrue => Label15
IL_019A: ldc.i4.0
IL_019B: stloc.s 4 (System.Int32)
IL_019D: ldc.i4.0
IL_019E: stloc.1
IL_019F: ldc.i4.0
IL_01A0: stloc.2
IL_01A1: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_01A6: stloc.s 5 (NetManager)
IL_01A8: ldc.i4.0
IL_01A9: stloc.s 6 (System.Int32)
IL_01AB: br => Label16
IL_01B0: Label24
IL_01B0: ldarg.2
IL_01B1: ldloc.s 6 (System.Int32)
IL_01B3: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_01B8: stloc.s 7 (System.UInt16)
IL_01BA: ldloc.s 7 (System.UInt16)
IL_01BC: brfalse => Label17
IL_01C1: ldc.i4.0
IL_01C2: stloc.s 8 (System.Int32)
IL_01C4: ldc.i4.0
IL_01C5: stloc.s 9 (System.Int32)
IL_01C7: ldloc.s 5 (NetManager)
IL_01C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01D3: ldloc.s 7 (System.UInt16)
IL_01D5: ldelema NetSegment
IL_01DA: ldloc.s 7 (System.UInt16)
IL_01DC: ldc.i4.s 33
IL_01DE: ldc.i4.s 64
IL_01E0: ldloca.s 8 (System.Int32)
IL_01E2: ldloca.s 9 (System.Int32)
IL_01E4: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_01E9: ldloc.s 8 (System.Int32)
IL_01EB: brtrue => Label18
IL_01F0: ldloc.s 9 (System.Int32)
IL_01F2: brfalse => Label19
IL_01F7: Label18
IL_01F7: ldloc.s 4 (System.Int32)
IL_01F9: ldc.i4.1
IL_01FA: add
IL_01FB: stloc.s 4 (System.Int32)
IL_01FD: ldloc.s 8 (System.Int32)
IL_01FF: brfalse => Label20
IL_0204: ldc.i4.1
IL_0205: stloc.s 8 (System.Int32)
IL_0207: Label20
IL_0207: ldloc.s 9 (System.Int32)
IL_0209: brfalse => Label21
IL_020E: ldc.i4.1
IL_020F: stloc.s 9 (System.Int32)
IL_0211: Label21
IL_0211: ldloc.s 5 (NetManager)
IL_0213: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0218: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_021D: ldloc.s 7 (System.UInt16)
IL_021F: ldelema NetSegment
IL_0224: ldfld System.UInt16 NetSegment::m_endNode
IL_0229: ldarg.1
IL_022A: bne.un => Label22
IL_022F: ldloc.1
IL_0230: ldloc.s 9 (System.Int32)
IL_0232: add
IL_0233: stloc.1
IL_0234: ldloc.2
IL_0235: ldloc.s 8 (System.Int32)
IL_0237: add
IL_0238: stloc.2
IL_0239: br => Label23
IL_023E: Label22
IL_023E: ldloc.1
IL_023F: ldloc.s 8 (System.Int32)
IL_0241: add
IL_0242: stloc.1
IL_0243: ldloc.2
IL_0244: ldloc.s 9 (System.Int32)
IL_0246: add
IL_0247: stloc.2
IL_0248: Label17
IL_0248: Label19
IL_0248: Label23
IL_0248: ldloc.s 6 (System.Int32)
IL_024A: ldc.i4.1
IL_024B: add
IL_024C: stloc.s 6 (System.Int32)
IL_024E: Label16
IL_024E: ldloc.s 6 (System.Int32)
IL_0250: ldc.i4.8
IL_0251: blt => Label24
IL_0256: ldloc.1
IL_0257: brfalse => Label25
IL_025C: ldloc.2
IL_025D: brfalse => Label26
IL_0262: Label25
IL_0262: ldloc.1
IL_0263: brtrue => Label27
IL_0268: ldloc.2
IL_0269: brtrue => Label28
IL_026E: Label27
IL_026E: ldloc.s 4 (System.Int32)
IL_0270: ldc.i4.1
IL_0271: bne.un => Label29
IL_0276: Label26
IL_0276: Label28
IL_0276: ldloc.0
IL_0277: ldc.i8 8589934592
IL_0280: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0285: stloc.0
IL_0286: Label29
IL_0286: ldc.i4.0
IL_0287: stloc.s 4 (System.Int32)
IL_0289: ldc.i4.0
IL_028A: stloc.1
IL_028B: ldc.i4.0
IL_028C: stloc.2
IL_028D: ldc.i4.0
IL_028E: stloc.s 10 (System.Int32)
IL_0290: br => Label30
IL_0295: Label38
IL_0295: ldarg.2
IL_0296: ldloc.s 10 (System.Int32)
IL_0298: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_029D: stloc.s 11 (System.UInt16)
IL_029F: ldloc.s 11 (System.UInt16)
IL_02A1: brfalse => Label31
IL_02A6: ldc.i4.0
IL_02A7: stloc.s 12 (System.Int32)
IL_02A9: ldc.i4.0
IL_02AA: stloc.s 13 (System.Int32)
IL_02AC: ldloc.s 5 (NetManager)
IL_02AE: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02B3: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02B8: ldloc.s 11 (System.UInt16)
IL_02BA: ldelema NetSegment
IL_02BF: ldloc.s 11 (System.UInt16)
IL_02C1: ldc.i4.s 33
IL_02C3: ldc.i4 65536
IL_02C8: ldloca.s 12 (System.Int32)
IL_02CA: ldloca.s 13 (System.Int32)
IL_02CC: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_02D1: ldloc.s 12 (System.Int32)
IL_02D3: brtrue => Label32
IL_02D8: ldloc.s 13 (System.Int32)
IL_02DA: brfalse => Label33
IL_02DF: Label32
IL_02DF: ldloc.s 4 (System.Int32)
IL_02E1: ldc.i4.1
IL_02E2: add
IL_02E3: stloc.s 4 (System.Int32)
IL_02E5: ldloc.s 12 (System.Int32)
IL_02E7: brfalse => Label34
IL_02EC: ldc.i4.1
IL_02ED: stloc.s 12 (System.Int32)
IL_02EF: Label34
IL_02EF: ldloc.s 13 (System.Int32)
IL_02F1: brfalse => Label35
IL_02F6: ldc.i4.1
IL_02F7: stloc.s 13 (System.Int32)
IL_02F9: Label35
IL_02F9: ldloc.s 5 (NetManager)
IL_02FB: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0300: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0305: ldloc.s 11 (System.UInt16)
IL_0307: ldelema NetSegment
IL_030C: ldfld System.UInt16 NetSegment::m_endNode
IL_0311: ldarg.1
IL_0312: bne.un => Label36
IL_0317: ldloc.1
IL_0318: ldloc.s 13 (System.Int32)
IL_031A: add
IL_031B: stloc.1
IL_031C: ldloc.2
IL_031D: ldloc.s 12 (System.Int32)
IL_031F: add
IL_0320: stloc.2
IL_0321: br => Label37
IL_0326: Label36
IL_0326: ldloc.1
IL_0327: ldloc.s 12 (System.Int32)
IL_0329: add
IL_032A: stloc.1
IL_032B: ldloc.2
IL_032C: ldloc.s 13 (System.Int32)
IL_032E: add
IL_032F: stloc.2
IL_0330: Label31
IL_0330: Label33
IL_0330: Label37
IL_0330: ldloc.s 10 (System.Int32)
IL_0332: ldc.i4.1
IL_0333: add
IL_0334: stloc.s 10 (System.Int32)
IL_0336: Label30
IL_0336: ldloc.s 10 (System.Int32)
IL_0338: ldc.i4.8
IL_0339: blt => Label38
IL_033E: ldloc.1
IL_033F: brfalse => Label39
IL_0344: ldloc.2
IL_0345: brfalse => Label40
IL_034A: Label39
IL_034A: ldloc.1
IL_034B: brtrue => Label41
IL_0350: ldloc.2
IL_0351: brtrue => Label42
IL_0356: Label41
IL_0356: ldloc.s 4 (System.Int32)
IL_0358: ldc.i4.1
IL_0359: bne.un => Label43
IL_035E: Label40
IL_035E: Label42
IL_035E: ldloc.0
IL_035F: ldc.i8 72057594037927936
IL_0368: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_036D: stloc.0
IL_036E: Label15
IL_036E: Label43
IL_036E: ldarg.2
IL_036F: ldloc.0
IL_0370: stfld Problem NetNode::m_problems
IL_0375: // end original
IL_0375: ret
DONE

### Patch: virtual System.Void RoadBaseAI::UpdateLanes(System.UInt16 segmentID,


NetSegment& data, System.Boolean loading)
### Replacement: static System.Void RoadBaseAI::UpdateLanes_Patch0(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<NetManager>::get_instance()
IL_0005: stloc.0
IL_0006: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::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<NetNode> NetManager::m_nodes
IL_0176: ldfld NetNode[] Array16`1<NetNode>::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: ldarg.2
IL_0192: ldfld UnityEngine.Vector3 NetSegment::m_endDirection
IL_0197: call static UnityEngine.Vector3
UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a)
IL_019C: ldloca.s 12 (System.Int32)
IL_019E: ldloca.s 13 (System.Int32)
IL_01A0: ldloca.s 14 (System.Int32)
IL_01A2: ldloca.s 15 (System.Int32)
IL_01A4: ldloca.s 16 (System.Int32)
IL_01A6: ldloca.s 17 (System.Int32)
IL_01A8: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, Direction directions, LaneType laneTypes, VehicleType
vehicleTypes, UnityEngine.Vector3 direction, System.Int32& left, System.Int32&
forward, System.Int32& right, System.Int32& left2, System.Int32& forward2,
System.Int32& right2)
IL_01AD: ldloc.0
IL_01AE: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_01B3: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_01B8: ldarg.2
IL_01B9: ldfld System.UInt16 NetSegment::m_endNode
IL_01BE: ldelema NetNode
IL_01C3: ldfld Flags NetNode::m_flags
IL_01C8: ldc.i4 1136
IL_01CD: and
IL_01CE: brfalse => Label2
IL_01D3: ldloc.s 12 (System.Int32)
IL_01D5: ldloc.s 13 (System.Int32)
IL_01D7: add
IL_01D8: ldloc.s 14 (System.Int32)
IL_01DA: add
IL_01DB: brtrue => Label3
IL_01E0: ldc.i4.1
IL_01E1: stloc.s 19 (System.Boolean)
IL_01E3: br => Label4
IL_01E8: Label3
IL_01E8: ldc.i4.1
IL_01E9: stloc.s 18 (System.Boolean)
IL_01EB: Label2
IL_01EB: Label4
IL_01EB: ldc.i4.0
IL_01EC: stloc.s 20 (System.Int32)
IL_01EE: ldc.i4.0
IL_01EF: stloc.s 21 (System.Int32)
IL_01F1: ldc.i4.0
IL_01F2: stloc.s 22 (System.Int32)
IL_01F4: ldc.i4.0
IL_01F5: stloc.s 23 (System.Int32)
IL_01F7: ldc.i4.0
IL_01F8: stloc.s 24 (System.Int32)
IL_01FA: ldc.i4.0
IL_01FB: stloc.s 25 (System.Int32)
IL_01FD: ldc.i4.0
IL_01FE: stloc.s 26 (System.Boolean)
IL_0200: ldc.i4.0
IL_0201: stloc.s 27 (System.Boolean)
IL_0203: ldloc.0
IL_0204: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0209: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_020E: ldarg.2
IL_020F: ldfld System.UInt16 NetSegment::m_startNode
IL_0214: ldelema NetNode
IL_0219: ldarg.2
IL_021A: ldfld System.UInt16 NetSegment::m_startNode
IL_021F: ldarg.1
IL_0220: ldc.i4.1
IL_0221: ldc.i4.s 33
IL_0223: ldc.i4.1
IL_0224: ldarg.2
IL_0225: ldfld UnityEngine.Vector3 NetSegment::m_startDirection
IL_022A: call static UnityEngine.Vector3
UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a)
IL_022F: ldloca.s 20 (System.Int32)
IL_0231: ldloca.s 21 (System.Int32)
IL_0233: ldloca.s 22 (System.Int32)
IL_0235: ldloca.s 23 (System.Int32)
IL_0237: ldloca.s 24 (System.Int32)
IL_0239: ldloca.s 25 (System.Int32)
IL_023B: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, Direction directions, LaneType laneTypes, VehicleType
vehicleTypes, UnityEngine.Vector3 direction, System.Int32& left, System.Int32&
forward, System.Int32& right, System.Int32& left2, System.Int32& forward2,
System.Int32& right2)
IL_0240: ldloc.0
IL_0241: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0246: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_024B: ldarg.2
IL_024C: ldfld System.UInt16 NetSegment::m_startNode
IL_0251: ldelema NetNode
IL_0256: ldfld Flags NetNode::m_flags
IL_025B: ldc.i4 1136
IL_0260: and
IL_0261: brfalse => Label5
IL_0266: ldloc.s 20 (System.Int32)
IL_0268: ldloc.s 21 (System.Int32)
IL_026A: add
IL_026B: ldloc.s 22 (System.Int32)
IL_026D: add
IL_026E: brtrue => Label6
IL_0273: ldc.i4.1
IL_0274: stloc.s 27 (System.Boolean)
IL_0276: br => Label7
IL_027B: Label6
IL_027B: ldc.i4.1
IL_027C: stloc.s 26 (System.Boolean)
IL_027E: Label5
IL_027E: Label7
IL_027E: ldc.i4.0
IL_027F: stloc.s 28 (NetLane+Flags)
IL_0281: ldloc.s 15 (System.Int32)
IL_0283: brfalse => Label8
IL_0288: ldloc.s 12 (System.Int32)
IL_028A: brtrue => Label9
IL_028F: ldloc.s 28 (NetLane+Flags)
IL_0291: ldarg.2
IL_0292: ldfld Flags NetSegment::m_flags
IL_0297: ldc.i4.s 16
IL_0299: and
IL_029A: brfalse => Label10
IL_029F: ldc.i4 4096
IL_02A4: br => Label11
IL_02A9: Label10
IL_02A9: ldc.i4 16384
IL_02AE: Label11
IL_02AE: or
IL_02AF: stloc.s 28 (NetLane+Flags)
IL_02B1: Label8
IL_02B1: Label9
IL_02B1: ldloc.s 17 (System.Int32)
IL_02B3: brfalse => Label12
IL_02B8: ldloc.s 14 (System.Int32)
IL_02BA: brtrue => Label13
IL_02BF: ldloc.s 28 (NetLane+Flags)
IL_02C1: ldarg.2
IL_02C2: ldfld Flags NetSegment::m_flags
IL_02C7: ldc.i4.s 16
IL_02C9: and
IL_02CA: brfalse => Label14
IL_02CF: ldc.i4 8192
IL_02D4: br => Label15
IL_02D9: Label14
IL_02D9: ldc.i4 32768
IL_02DE: Label15
IL_02DE: or
IL_02DF: stloc.s 28 (NetLane+Flags)
IL_02E1: Label12
IL_02E1: Label13
IL_02E1: ldloc.s 23 (System.Int32)
IL_02E3: brfalse => Label16
IL_02E8: ldloc.s 20 (System.Int32)
IL_02EA: brtrue => Label17
IL_02EF: ldloc.s 28 (NetLane+Flags)
IL_02F1: ldarg.2
IL_02F2: ldfld Flags NetSegment::m_flags
IL_02F7: ldc.i4.s 16
IL_02F9: and
IL_02FA: brfalse => Label18
IL_02FF: ldc.i4 16384
IL_0304: br => Label19
IL_0309: Label18
IL_0309: ldc.i4 4096
IL_030E: Label19
IL_030E: or
IL_030F: stloc.s 28 (NetLane+Flags)
IL_0311: Label16
IL_0311: Label17
IL_0311: ldloc.s 25 (System.Int32)
IL_0313: brfalse => Label20
IL_0318: ldloc.s 22 (System.Int32)
IL_031A: brtrue => Label21
IL_031F: ldloc.s 28 (NetLane+Flags)
IL_0321: ldarg.2
IL_0322: ldfld Flags NetSegment::m_flags
IL_0327: ldc.i4.s 16
IL_0329: and
IL_032A: brfalse => Label22
IL_032F: ldc.i4 32768
IL_0334: br => Label23
IL_0339: Label22
IL_0339: ldc.i4 8192
IL_033E: Label23
IL_033E: or
IL_033F: stloc.s 28 (NetLane+Flags)
IL_0341: Label20
IL_0341: Label21
IL_0341: ldarg.2
IL_0342: ldfld Flags NetSegment::m_flags
IL_0347: ldc.i4 1073741824
IL_034C: and
IL_034D: brfalse => Label24
IL_0352: ldloc.s 28 (NetLane+Flags)
IL_0354: ldarg.2
IL_0355: ldfld Flags NetSegment::m_flags
IL_035A: ldc.i4.s 16
IL_035C: and
IL_035D: brfalse => Label25
IL_0362: ldc.i4 2048
IL_0367: br => Label26
IL_036C: Label25
IL_036C: ldc.i4 1024
IL_0371: Label26
IL_0371: or
IL_0372: stloc.s 28 (NetLane+Flags)
IL_0374: Label24
IL_0374: ldarg.2
IL_0375: ldfld Flags NetSegment::m_flags
IL_037A: ldc.i4 -2147483648
IL_037F: and
IL_0380: brfalse => Label27
IL_0385: ldloc.s 28 (NetLane+Flags)
IL_0387: ldarg.2
IL_0388: ldfld Flags NetSegment::m_flags
IL_038D: ldc.i4.s 16
IL_038F: and
IL_0390: brfalse => Label28
IL_0395: ldc.i4 1024
IL_039A: br => Label29
IL_039F: Label28
IL_039F: ldc.i4 2048
IL_03A4: Label29
IL_03A4: or
IL_03A5: stloc.s 28 (NetLane+Flags)
IL_03A7: Label27
IL_03A7: ldc.r4 0
IL_03AC: stloc.s 29 (System.Single)
IL_03AE: ldc.r4 0
IL_03B3: stloc.s 30 (System.Single)
IL_03B5: ldc.i4.0
IL_03B6: stloc.s 31 (System.UInt32)
IL_03B8: ldarg.2
IL_03B9: ldfld System.UInt32 NetSegment::m_lanes
IL_03BE: stloc.s 32 (System.UInt32)
IL_03C0: ldc.i4.0
IL_03C1: stloc.s 33 (System.Int32)
IL_03C3: br => Label30
IL_03C8: Label89
IL_03C8: ldloc.s 32 (System.UInt32)
IL_03CA: brtrue => Label31
IL_03CF: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_03D4: ldloca.s 32 (System.UInt32)
IL_03D6: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_03DB: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_03E0: ldarg.1
IL_03E1: ldc.i4.1
IL_03E2: callvirt System.Boolean NetManager::CreateLanes(System.UInt32&
firstLane, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segment,
System.Int32 count)
IL_03E7: brfalse => Label32
IL_03EC: ldloc.s 31 (System.UInt32)
IL_03EE: brfalse => Label33
IL_03F3: ldloc.0
IL_03F4: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_03F9: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_03FE: ldloc.s 31 (System.UInt32)
IL_0400: conv.u
IL_0401: ldelema NetLane
IL_0406: ldloc.s 32 (System.UInt32)
IL_0408: stfld System.UInt32 NetLane::m_nextLane
IL_040D: br => Label34
IL_0412: Label33
IL_0412: ldarg.2
IL_0413: ldloc.s 32 (System.UInt32)
IL_0415: stfld System.UInt32 NetSegment::m_lanes
IL_041A: Label34
IL_041A: br => Label35
IL_041F: Label32
IL_041F: br => Label36
IL_0424: Label31
IL_0424: Label35
IL_0424: ldarg.0
IL_0425: ldfld NetInfo NetAI::m_info
IL_042A: ldfld Lane[] NetInfo::m_lanes
IL_042F: ldloc.s 33 (System.Int32)
IL_0431: ldelem.ref
IL_0432: stloc.s 34 (NetInfo+Lane)
IL_0434: ldloc.s 34 (NetInfo+Lane)
IL_0436: ldfld System.Single Lane::m_position
IL_043B: ldarg.0
IL_043C: ldfld NetInfo NetAI::m_info
IL_0441: ldfld System.Single NetInfo::m_halfWidth
IL_0446: ldc.r4 2
IL_044B: mul
IL_044C: div
IL_044D: ldc.r4 0.5
IL_0452: add
IL_0453: stloc.s 35 (System.Single)
IL_0455: ldarg.2
IL_0456: ldfld Flags NetSegment::m_flags
IL_045B: ldc.i4.s 16
IL_045D: and
IL_045E: brfalse => Label37
IL_0463: ldc.r4 1
IL_0468: ldloc.s 35 (System.Single)
IL_046A: sub
IL_046B: stloc.s 35 (System.Single)
IL_046D: Label37
IL_046D: ldloc.2
IL_046E: ldloc.3
IL_046F: ldloc.2
IL_0470: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0475: ldloc.s 35 (System.Single)
IL_0477: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_047C: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0481: stloc.s 36 (UnityEngine.Vector3)
IL_0483: ldloc.s 6 (UnityEngine.Vector3)
IL_0485: ldloc.s 7 (UnityEngine.Vector3)
IL_0487: ldloc.s 35 (System.Single)
IL_0489: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_048E: stloc.s 37 (UnityEngine.Vector3)
IL_0490: ldloc.s 4 (UnityEngine.Vector3)
IL_0492: ldloc.s 5 (UnityEngine.Vector3)
IL_0494: ldloc.s 4 (UnityEngine.Vector3)
IL_0496: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_049B: ldloc.s 35 (System.Single)
IL_049D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_04A2: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_04A7: stloc.s 38 (UnityEngine.Vector3)
IL_04A9: ldloc.s 8 (UnityEngine.Vector3)
IL_04AB: ldloc.s 9 (UnityEngine.Vector3)
IL_04AD: ldloc.s 35 (System.Single)
IL_04AF: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_04B4: stloc.s 39 (UnityEngine.Vector3)
IL_04B6: ldloca.s 36 (UnityEngine.Vector3)
IL_04B8: dup
IL_04B9: ldfld System.Single UnityEngine.Vector3::y
IL_04BE: ldloc.s 34 (NetInfo+Lane)
IL_04C0: ldfld System.Single Lane::m_verticalOffset
IL_04C5: add
IL_04C6: stfld System.Single UnityEngine.Vector3::y
IL_04CB: ldloca.s 38 (UnityEngine.Vector3)
IL_04CD: dup
IL_04CE: ldfld System.Single UnityEngine.Vector3::y
IL_04D3: ldloc.s 34 (NetInfo+Lane)
IL_04D5: ldfld System.Single Lane::m_verticalOffset
IL_04DA: add
IL_04DB: stfld System.Single UnityEngine.Vector3::y
IL_04E0: ldloc.s 36 (UnityEngine.Vector3)
IL_04E2: ldloc.s 37 (UnityEngine.Vector3)
IL_04E4: ldloc.s 38 (UnityEngine.Vector3)
IL_04E6: ldloc.s 39 (UnityEngine.Vector3)
IL_04E8: ldloc.s 10 (System.Boolean)
IL_04EA: ldloc.s 11 (System.Boolean)
IL_04EC: ldloca.s 40 (UnityEngine.Vector3)
IL_04EE: ldloca.s 41 (UnityEngine.Vector3)
IL_04F0: 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_04F5: ldloc.0
IL_04F6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_04FB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0500: ldloc.s 32 (System.UInt32)
IL_0502: conv.u
IL_0503: ldelema NetLane
IL_0508: ldfld System.UInt16 NetLane::m_flags
IL_050D: stloc.s 42 (NetLane+Flags)
IL_050F: ldloc.s 28 (NetLane+Flags)
IL_0511: stloc.s 43 (NetLane+Flags)
IL_0513: ldloc.s 42 (NetLane+Flags)
IL_0515: ldc.i4 -64753
IL_051A: and
IL_051B: stloc.s 42 (NetLane+Flags)
IL_051D: ldloc.s 34 (NetInfo+Lane)
IL_051F: ldfld Direction Lane::m_finalDirection
IL_0524: ldc.i4.3
IL_0525: and
IL_0526: conv.u1
IL_0527: ldc.i4.2
IL_0528: bne.un => Label38
IL_052D: ldloc.s 43 (NetLane+Flags)
IL_052F: ldc.i4 -2049
IL_0534: and
IL_0535: stloc.s 43 (NetLane+Flags)
IL_0537: Label38
IL_0537: ldloc.s 34 (NetInfo+Lane)
IL_0539: ldfld Direction Lane::m_finalDirection
IL_053E: ldc.i4.3
IL_053F: and
IL_0540: conv.u1
IL_0541: ldc.i4.1
IL_0542: bne.un => Label39
IL_0547: ldloc.s 43 (NetLane+Flags)
IL_0549: ldc.i4 -1025
IL_054E: and
IL_054F: stloc.s 43 (NetLane+Flags)
IL_0551: Label39
IL_0551: ldloc.s 34 (NetInfo+Lane)
IL_0553: ldfld VehicleType Lane::m_vehicleType
IL_0558: ldc.i4 2048
IL_055D: and
IL_055E: brfalse => Label40
IL_0563: ldloc.s 43 (NetLane+Flags)
IL_0565: ldc.i4 -3073
IL_056A: and
IL_056B: stloc.s 43 (NetLane+Flags)
IL_056D: Label40
IL_056D: ldloc.s 42 (NetLane+Flags)
IL_056F: ldloc.s 43 (NetLane+Flags)
IL_0571: or
IL_0572: stloc.s 42 (NetLane+Flags)
IL_0574: ldloc.1
IL_0575: brfalse => Label41
IL_057A: ldloc.s 42 (NetLane+Flags)
IL_057C: ldc.i4.4
IL_057D: or
IL_057E: stloc.s 42 (NetLane+Flags)
IL_0580: br => Label42
IL_0585: Label41
IL_0585: ldloc.s 42 (NetLane+Flags)
IL_0587: ldc.i4.s -5
IL_0589: and
IL_058A: stloc.s 42 (NetLane+Flags)
IL_058C: Label42
IL_058C: ldc.i4.0
IL_058D: stloc.s 44 (System.Int32)
IL_058F: ldc.i4 255
IL_0594: stloc.s 45 (System.Int32)
IL_0596: ldloc.s 34 (NetInfo+Lane)
IL_0598: ldfld LaneType Lane::m_laneType
IL_059D: ldc.i4.s 33
IL_059F: and
IL_05A0: conv.u1
IL_05A1: brfalse => Label43
IL_05A6: ldloc.s 34 (NetInfo+Lane)
IL_05A8: ldfld Direction Lane::m_finalDirection
IL_05AD: ldc.i4.1
IL_05AE: and
IL_05AF: conv.u1
IL_05B0: ldc.i4.0
IL_05B1: ceq
IL_05B3: ldc.i4.0
IL_05B4: ceq
IL_05B6: ldarg.2
IL_05B7: ldfld Flags NetSegment::m_flags
IL_05BC: ldc.i4.s 16
IL_05BE: and
IL_05BF: ldc.i4.0
IL_05C0: ceq
IL_05C2: ceq
IL_05C4: stloc.s 46 (System.Boolean)
IL_05C6: ldloc.s 46 (System.Boolean)
IL_05C8: brfalse => Label44
IL_05CD: ldloc.s 12 (System.Int32)
IL_05CF: stloc.s 47 (System.Int32)
IL_05D1: ldloc.s 13 (System.Int32)
IL_05D3: stloc.s 48 (System.Int32)
IL_05D5: ldloc.s 14 (System.Int32)
IL_05D7: stloc.s 49 (System.Int32)
IL_05D9: br => Label45
IL_05DE: Label44
IL_05DE: ldloc.s 20 (System.Int32)
IL_05E0: stloc.s 47 (System.Int32)
IL_05E2: ldloc.s 21 (System.Int32)
IL_05E4: stloc.s 48 (System.Int32)
IL_05E6: ldloc.s 22 (System.Int32)
IL_05E8: stloc.s 49 (System.Int32)
IL_05EA: Label45
IL_05EA: ldloc.s 34 (NetInfo+Lane)
IL_05EC: ldfld Direction Lane::m_finalDirection
IL_05F1: ldc.i4.1
IL_05F2: and
IL_05F3: conv.u1
IL_05F4: brfalse => Label46
IL_05F9: ldloc.s 34 (NetInfo+Lane)
IL_05FB: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0600: stloc.s 50 (System.Int32)
IL_0602: ldloc.s 34 (NetInfo+Lane)
IL_0604: ldfld System.Int32 Lane::m_similarLaneCount
IL_0609: ldloc.s 34 (NetInfo+Lane)
IL_060B: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0610: sub
IL_0611: ldc.i4.1
IL_0612: sub
IL_0613: stloc.s 51 (System.Int32)
IL_0615: br => Label47
IL_061A: Label46
IL_061A: ldloc.s 34 (NetInfo+Lane)
IL_061C: ldfld System.Int32 Lane::m_similarLaneCount
IL_0621: ldloc.s 34 (NetInfo+Lane)
IL_0623: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0628: sub
IL_0629: ldc.i4.1
IL_062A: sub
IL_062B: stloc.s 50 (System.Int32)
IL_062D: ldloc.s 34 (NetInfo+Lane)
IL_062F: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0634: stloc.s 51 (System.Int32)
IL_0636: Label47
IL_0636: ldloc.s 47 (System.Int32)
IL_0638: ldloc.s 48 (System.Int32)
IL_063A: add
IL_063B: ldloc.s 49 (System.Int32)
IL_063D: add
IL_063E: stloc.s 52 (System.Int32)
IL_0640: ldc.i4 255
IL_0645: stloc.s 44 (System.Int32)
IL_0647: ldc.i4.0
IL_0648: stloc.s 45 (System.Int32)
IL_064A: ldloc.s 52 (System.Int32)
IL_064C: brfalse => Label48
IL_0651: ldloc.s 34 (NetInfo+Lane)
IL_0653: ldfld System.Int32 Lane::m_similarLaneCount
IL_0658: ldloc.s 52 (System.Int32)
IL_065A: ble => Label49
IL_065F: ldloc.s 52 (System.Int32)
IL_0661: ldc.i4.0
IL_0662: ble => Label50
IL_0667: ldloc.s 52 (System.Int32)
IL_0669: ldloc.s 50 (System.Int32)
IL_066B: mul
IL_066C: ldloc.s 34 (NetInfo+Lane)
IL_066E: ldfld System.Int32 Lane::m_similarLaneCount
IL_0673: div
IL_0674: stloc.s 44 (System.Int32)
IL_0676: ldloc.s 52 (System.Int32)
IL_0678: ldloc.s 52 (System.Int32)
IL_067A: ldloc.s 51 (System.Int32)
IL_067C: mul
IL_067D: ldloc.s 34 (NetInfo+Lane)
IL_067F: ldfld System.Int32 Lane::m_similarLaneCount
IL_0684: div
IL_0685: sub
IL_0686: stloc.s 45 (System.Int32)
IL_0688: ldloc.s 42 (NetLane+Flags)
IL_068A: ldc.i4 128
IL_068F: or
IL_0690: stloc.s 42 (NetLane+Flags)
IL_0692: ldloc.s 44 (System.Int32)
IL_0694: ldloc.s 47 (System.Int32)
IL_0696: bge => Label51
IL_069B: ldloc.s 42 (NetLane+Flags)
IL_069D: ldc.i4.s 32
IL_069F: or
IL_06A0: stloc.s 42 (NetLane+Flags)
IL_06A2: Label51
IL_06A2: ldloc.s 52 (System.Int32)
IL_06A4: ldloc.s 45 (System.Int32)
IL_06A6: sub
IL_06A7: ldloc.s 49 (System.Int32)
IL_06A9: bge => Label52
IL_06AE: ldloc.s 42 (NetLane+Flags)
IL_06B0: ldc.i4.s 64
IL_06B2: or
IL_06B3: stloc.s 42 (NetLane+Flags)
IL_06B5: Label52
IL_06B5: ldloc.s 48 (System.Int32)
IL_06B7: brfalse => Label53
IL_06BC: ldloc.s 44 (System.Int32)
IL_06BE: ldloc.s 47 (System.Int32)
IL_06C0: ldloc.s 48 (System.Int32)
IL_06C2: add
IL_06C3: bge => Label54
IL_06C8: ldloc.s 45 (System.Int32)
IL_06CA: ldloc.s 47 (System.Int32)
IL_06CC: ble => Label55
IL_06D1: ldloc.s 42 (NetLane+Flags)
IL_06D3: ldc.i4.s 16
IL_06D5: or
IL_06D6: stloc.s 42 (NetLane+Flags)
IL_06D8: Label53
IL_06D8: Label54
IL_06D8: Label55
IL_06D8: br => Label56
IL_06DD: Label49
IL_06DD: Label50
IL_06DD: ldloc.s 34 (NetInfo+Lane)
IL_06DF: ldfld System.Int32 Lane::m_similarLaneCount
IL_06E4: ldloc.s 52 (System.Int32)
IL_06E6: blt => Label57
IL_06EB: ldloc.s 47 (System.Int32)
IL_06ED: stloc.s 53 (System.Int32)
IL_06EF: ldloc.s 49 (System.Int32)
IL_06F1: stloc.s 54 (System.Int32)
IL_06F3: br => Label58
IL_06F8: Label57
IL_06F8: ldloc.s 47 (System.Int32)
IL_06FA: ldloc.s 34 (NetInfo+Lane)
IL_06FC: ldfld System.Int32 Lane::m_similarLaneCount
IL_0701: mul
IL_0702: ldloc.s 52 (System.Int32)
IL_0704: ldloc.s 48 (System.Int32)
IL_0706: ldc.i4.1
IL_0707: shr
IL_0708: add
IL_0709: div
IL_070A: stloc.s 53 (System.Int32)
IL_070C: ldloc.s 49 (System.Int32)
IL_070E: ldloc.s 34 (NetInfo+Lane)
IL_0710: ldfld System.Int32 Lane::m_similarLaneCount
IL_0715: mul
IL_0716: ldloc.s 52 (System.Int32)
IL_0718: ldloc.s 48 (System.Int32)
IL_071A: ldc.i4.1
IL_071B: shr
IL_071C: add
IL_071D: div
IL_071E: stloc.s 54 (System.Int32)
IL_0720: Label58
IL_0720: ldloc.s 53 (System.Int32)
IL_0722: stloc.s 55 (System.Int32)
IL_0724: ldloc.s 34 (NetInfo+Lane)
IL_0726: ldfld System.Int32 Lane::m_similarLaneCount
IL_072B: ldloc.s 53 (System.Int32)
IL_072D: sub
IL_072E: ldloc.s 54 (System.Int32)
IL_0730: sub
IL_0731: stloc.s 56 (System.Int32)
IL_0733: ldloc.s 54 (System.Int32)
IL_0735: stloc.s 57 (System.Int32)
IL_0737: ldloc.s 56 (System.Int32)
IL_0739: ldc.i4.0
IL_073A: ble => Label59
IL_073F: ldloc.s 47 (System.Int32)
IL_0741: ldloc.s 53 (System.Int32)
IL_0743: ble => Label60
IL_0748: ldloc.s 55 (System.Int32)
IL_074A: ldc.i4.1
IL_074B: add
IL_074C: stloc.s 55 (System.Int32)
IL_074E: Label60
IL_074E: ldloc.s 49 (System.Int32)
IL_0750: ldloc.s 54 (System.Int32)
IL_0752: ble => Label61
IL_0757: ldloc.s 57 (System.Int32)
IL_0759: ldc.i4.1
IL_075A: add
IL_075B: stloc.s 57 (System.Int32)
IL_075D: Label59
IL_075D: Label61
IL_075D: ldloc.s 50 (System.Int32)
IL_075F: ldloc.s 55 (System.Int32)
IL_0761: bge => Label62
IL_0766: ldloc.s 50 (System.Int32)
IL_0768: ldloc.s 47 (System.Int32)
IL_076A: mul
IL_076B: ldloc.s 55 (System.Int32)
IL_076D: add
IL_076E: ldc.i4.1
IL_076F: sub
IL_0770: ldloc.s 55 (System.Int32)
IL_0772: div
IL_0773: stloc.s 58 (System.Int32)
IL_0775: ldloc.s 50 (System.Int32)
IL_0777: ldc.i4.1
IL_0778: add
IL_0779: ldloc.s 47 (System.Int32)
IL_077B: mul
IL_077C: ldloc.s 55 (System.Int32)
IL_077E: add
IL_077F: ldc.i4.1
IL_0780: sub
IL_0781: ldloc.s 55 (System.Int32)
IL_0783: div
IL_0784: stloc.s 59 (System.Int32)
IL_0786: ldloc.s 59 (System.Int32)
IL_0788: ldloc.s 58 (System.Int32)
IL_078A: ble => Label63
IL_078F: ldloc.s 42 (NetLane+Flags)
IL_0791: ldc.i4.s 32
IL_0793: or
IL_0794: stloc.s 42 (NetLane+Flags)
IL_0796: ldloc.s 44 (System.Int32)
IL_0798: ldloc.s 58 (System.Int32)
IL_079A: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_079F: stloc.s 44 (System.Int32)
IL_07A1: ldloc.s 45 (System.Int32)
IL_07A3: ldloc.s 59 (System.Int32)
IL_07A5: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_07AA: stloc.s 45 (System.Int32)
IL_07AC: Label62
IL_07AC: Label63
IL_07AC: ldloc.s 50 (System.Int32)
IL_07AE: ldloc.s 53 (System.Int32)
IL_07B0: blt => Label64
IL_07B5: ldloc.s 51 (System.Int32)
IL_07B7: ldloc.s 54 (System.Int32)
IL_07B9: blt => Label65
IL_07BE: ldloc.s 48 (System.Int32)
IL_07C0: brfalse => Label66
IL_07C5: ldloc.s 34 (NetInfo+Lane)
IL_07C7: ldfld System.Int32 Lane::m_similarLaneCount
IL_07CC: ldloc.s 52 (System.Int32)
IL_07CE: ble => Label67
IL_07D3: ldloc.s 53 (System.Int32)
IL_07D5: ldc.i4.1
IL_07D6: add
IL_07D7: stloc.s 53 (System.Int32)
IL_07D9: Label67
IL_07D9: ldloc.s 47 (System.Int32)
IL_07DB: ldloc.s 50 (System.Int32)
IL_07DD: ldloc.s 53 (System.Int32)
IL_07DF: sub
IL_07E0: ldloc.s 48 (System.Int32)
IL_07E2: mul
IL_07E3: ldloc.s 56 (System.Int32)
IL_07E5: add
IL_07E6: ldc.i4.1
IL_07E7: sub
IL_07E8: ldloc.s 56 (System.Int32)
IL_07EA: div
IL_07EB: add
IL_07EC: stloc.s 60 (System.Int32)
IL_07EE: ldloc.s 47 (System.Int32)
IL_07F0: ldloc.s 50 (System.Int32)
IL_07F2: ldc.i4.1
IL_07F3: add
IL_07F4: ldloc.s 53 (System.Int32)
IL_07F6: sub
IL_07F7: ldloc.s 48 (System.Int32)
IL_07F9: mul
IL_07FA: ldloc.s 56 (System.Int32)
IL_07FC: add
IL_07FD: ldc.i4.1
IL_07FE: sub
IL_07FF: ldloc.s 56 (System.Int32)
IL_0801: div
IL_0802: add
IL_0803: stloc.s 61 (System.Int32)
IL_0805: ldloc.s 61 (System.Int32)
IL_0807: ldloc.s 60 (System.Int32)
IL_0809: ble => Label68
IL_080E: ldloc.s 42 (NetLane+Flags)
IL_0810: ldc.i4.s 16
IL_0812: or
IL_0813: stloc.s 42 (NetLane+Flags)
IL_0815: ldloc.s 44 (System.Int32)
IL_0817: ldloc.s 60 (System.Int32)
IL_0819: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_081E: stloc.s 44 (System.Int32)
IL_0820: ldloc.s 45 (System.Int32)
IL_0822: ldloc.s 61 (System.Int32)
IL_0824: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0829: stloc.s 45 (System.Int32)
IL_082B: Label64
IL_082B: Label65
IL_082B: Label66
IL_082B: Label68
IL_082B: ldloc.s 51 (System.Int32)
IL_082D: ldloc.s 57 (System.Int32)
IL_082F: bge => Label69
IL_0834: ldloc.s 52 (System.Int32)
IL_0836: ldloc.s 51 (System.Int32)
IL_0838: ldc.i4.1
IL_0839: add
IL_083A: ldloc.s 49 (System.Int32)
IL_083C: mul
IL_083D: ldloc.s 57 (System.Int32)
IL_083F: add
IL_0840: ldc.i4.1
IL_0841: sub
IL_0842: ldloc.s 57 (System.Int32)
IL_0844: div
IL_0845: sub
IL_0846: stloc.s 62 (System.Int32)
IL_0848: ldloc.s 52 (System.Int32)
IL_084A: ldloc.s 51 (System.Int32)
IL_084C: ldloc.s 49 (System.Int32)
IL_084E: mul
IL_084F: ldloc.s 57 (System.Int32)
IL_0851: add
IL_0852: ldc.i4.1
IL_0853: sub
IL_0854: ldloc.s 57 (System.Int32)
IL_0856: div
IL_0857: sub
IL_0858: stloc.s 63 (System.Int32)
IL_085A: ldloc.s 63 (System.Int32)
IL_085C: ldloc.s 62 (System.Int32)
IL_085E: ble => Label70
IL_0863: ldloc.s 42 (NetLane+Flags)
IL_0865: ldc.i4.s 64
IL_0867: or
IL_0868: stloc.s 42 (NetLane+Flags)
IL_086A: ldloc.s 44 (System.Int32)
IL_086C: ldloc.s 62 (System.Int32)
IL_086E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0873: stloc.s 44 (System.Int32)
IL_0875: ldloc.s 45 (System.Int32)
IL_0877: ldloc.s 63 (System.Int32)
IL_0879: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_087E: stloc.s 45 (System.Int32)
IL_0880: Label69
IL_0880: Label70
IL_0880: ldarg.0
IL_0881: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_0886: brfalse => Label71
IL_088B: ldloc.s 42 (NetLane+Flags)
IL_088D: ldc.i4.s 96
IL_088F: and
IL_0890: ldc.i4.s 32
IL_0892: bne.un => Label72
IL_0897: ldloc.s 42 (NetLane+Flags)
IL_0899: ldc.i4.s 16
IL_089B: and
IL_089C: brfalse => Label73
IL_08A1: ldloc.s 48 (System.Int32)
IL_08A3: ldc.i4.2
IL_08A4: blt => Label74
IL_08A9: ldloc.s 47 (System.Int32)
IL_08AB: ldc.i4.1
IL_08AC: bne.un => Label75
IL_08B1: Label73
IL_08B1: ldloc.s 45 (System.Int32)
IL_08B3: ldloc.s 44 (System.Int32)
IL_08B5: ldc.i4.1
IL_08B6: add
IL_08B7: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_08BC: stloc.s 45 (System.Int32)
IL_08BE: Label74
IL_08BE: Label75
IL_08BE: br => Label76
IL_08C3: Label72
IL_08C3: ldloc.s 42 (NetLane+Flags)
IL_08C5: ldc.i4.s 96
IL_08C7: and
IL_08C8: ldc.i4.s 64
IL_08CA: bne.un => Label77
IL_08CF: ldloc.s 42 (NetLane+Flags)
IL_08D1: ldc.i4.s 16
IL_08D3: and
IL_08D4: brfalse => Label78
IL_08D9: ldloc.s 48 (System.Int32)
IL_08DB: ldc.i4.2
IL_08DC: blt => Label79
IL_08E1: ldloc.s 49 (System.Int32)
IL_08E3: ldc.i4.1
IL_08E4: bne.un => Label80
IL_08E9: Label78
IL_08E9: ldloc.s 44 (System.Int32)
IL_08EB: ldloc.s 45 (System.Int32)
IL_08ED: ldc.i4.1
IL_08EE: sub
IL_08EF: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_08F4: stloc.s 44 (System.Int32)
IL_08F6: Label48
IL_08F6: Label56
IL_08F6: Label71
IL_08F6: Label76
IL_08F6: Label77
IL_08F6: Label79
IL_08F6: Label80
IL_08F6: ldloc.s 46 (System.Boolean)
IL_08F8: brfalse => Label81
IL_08FD: ldloc.s 18 (System.Boolean)
IL_08FF: brfalse => Label82
IL_0904: ldloc.s 42 (NetLane+Flags)
IL_0906: ldc.i4.s -113
IL_0908: and
IL_0909: stloc.s 42 (NetLane+Flags)
IL_090B: br => Label83
IL_0910: Label82
IL_0910: ldloc.s 19 (System.Boolean)
IL_0912: brfalse => Label84
IL_0917: ldloc.s 42 (NetLane+Flags)
IL_0919: ldc.i4.s 16
IL_091B: or
IL_091C: stloc.s 42 (NetLane+Flags)
IL_091E: Label83
IL_091E: Label84
IL_091E: br => Label85
IL_0923: Label81
IL_0923: ldloc.s 26 (System.Boolean)
IL_0925: brfalse => Label86
IL_092A: ldloc.s 42 (NetLane+Flags)
IL_092C: ldc.i4.s -113
IL_092E: and
IL_092F: stloc.s 42 (NetLane+Flags)
IL_0931: br => Label87
IL_0936: Label86
IL_0936: ldloc.s 27 (System.Boolean)
IL_0938: brfalse => Label88
IL_093D: ldloc.s 42 (NetLane+Flags)
IL_093F: ldc.i4.s 16
IL_0941: or
IL_0942: stloc.s 42 (NetLane+Flags)
IL_0944: Label43
IL_0944: Label85
IL_0944: Label87
IL_0944: Label88
IL_0944: ldloc.0
IL_0945: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_094A: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_094F: ldloc.s 32 (System.UInt32)
IL_0951: conv.u
IL_0952: ldelema NetLane
IL_0957: ldloc.s 36 (UnityEngine.Vector3)
IL_0959: ldloc.s 40 (UnityEngine.Vector3)
IL_095B: ldloc.s 41 (UnityEngine.Vector3)
IL_095D: ldloc.s 38 (UnityEngine.Vector3)
IL_095F: newobj System.Void
ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3
_b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d)
IL_0964: stfld ColossalFramework.Math.Bezier3 NetLane::m_bezier
IL_0969: ldloc.0
IL_096A: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_096F: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0974: ldloc.s 32 (System.UInt32)
IL_0976: conv.u
IL_0977: ldelema NetLane
IL_097C: ldarg.1
IL_097D: stfld System.UInt16 NetLane::m_segment
IL_0982: ldloc.0
IL_0983: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0988: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_098D: ldloc.s 32 (System.UInt32)
IL_098F: conv.u
IL_0990: ldelema NetLane
IL_0995: ldloc.s 42 (NetLane+Flags)
IL_0997: conv.u2
IL_0998: stfld System.UInt16 NetLane::m_flags
IL_099D: ldloc.0
IL_099E: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09A3: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09A8: ldloc.s 32 (System.UInt32)
IL_09AA: conv.u
IL_09AB: ldelema NetLane
IL_09B0: ldloc.s 44 (System.Int32)
IL_09B2: conv.u1
IL_09B3: stfld System.Byte NetLane::m_firstTarget
IL_09B8: ldloc.0
IL_09B9: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09BE: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09C3: ldloc.s 32 (System.UInt32)
IL_09C5: conv.u
IL_09C6: ldelema NetLane
IL_09CB: ldloc.s 45 (System.Int32)
IL_09CD: conv.u1
IL_09CE: stfld System.Byte NetLane::m_lastTarget
IL_09D3: ldloc.s 29 (System.Single)
IL_09D5: ldloc.0
IL_09D6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09DB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09E0: ldloc.s 32 (System.UInt32)
IL_09E2: conv.u
IL_09E3: ldelema NetLane
IL_09E8: call System.Single NetLane::UpdateLength()
IL_09ED: add
IL_09EE: stloc.s 29 (System.Single)
IL_09F0: ldloc.s 30 (System.Single)
IL_09F2: ldc.r4 1
IL_09F7: add
IL_09F8: stloc.s 30 (System.Single)
IL_09FA: ldloc.s 32 (System.UInt32)
IL_09FC: stloc.s 31 (System.UInt32)
IL_09FE: ldloc.0
IL_09FF: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0A04: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0A09: ldloc.s 32 (System.UInt32)
IL_0A0B: conv.u
IL_0A0C: ldelema NetLane
IL_0A11: ldfld System.UInt32 NetLane::m_nextLane
IL_0A16: stloc.s 32 (System.UInt32)
IL_0A18: ldloc.s 33 (System.Int32)
IL_0A1A: ldc.i4.1
IL_0A1B: add
IL_0A1C: stloc.s 33 (System.Int32)
IL_0A1E: Label30
IL_0A1E: ldloc.s 33 (System.Int32)
IL_0A20: ldarg.0
IL_0A21: ldfld NetInfo NetAI::m_info
IL_0A26: ldfld Lane[] NetInfo::m_lanes
IL_0A2B: ldlen
IL_0A2C: conv.i4
IL_0A2D: blt => Label89
IL_0A32: Label36
IL_0A32: ldloc.s 30 (System.Single)
IL_0A34: ldc.r4 0
IL_0A39: beq => Label90
IL_0A3E: ldarg.2
IL_0A3F: ldloc.s 29 (System.Single)
IL_0A41: ldloc.s 30 (System.Single)
IL_0A43: div
IL_0A44: stfld System.Single NetSegment::m_averageLength
IL_0A49: br => Label91
IL_0A4E: Label90
IL_0A4E: ldarg.2
IL_0A4F: ldc.r4 0
IL_0A54: stfld System.Single NetSegment::m_averageLength
IL_0A59: Label91
IL_0A59: ldc.i4.0
IL_0A5A: stloc.s 64 (System.Boolean)
IL_0A5C: ldarg.2
IL_0A5D: ldfld System.Single NetSegment::m_averageLength
IL_0A62: ldc.r4 11
IL_0A67: bge.un => Label92
IL_0A6C: ldloc.0
IL_0A6D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0A72: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A77: ldarg.2
IL_0A78: ldfld System.UInt16 NetSegment::m_startNode
IL_0A7D: ldelema NetNode
IL_0A82: ldfld Flags NetNode::m_flags
IL_0A87: ldc.i4 128
IL_0A8C: and
IL_0A8D: brfalse => Label93
IL_0A92: ldloc.0
IL_0A93: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0A98: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A9D: ldarg.2
IL_0A9E: ldfld System.UInt16 NetSegment::m_endNode
IL_0AA3: ldelema NetNode
IL_0AA8: ldfld Flags NetNode::m_flags
IL_0AAD: ldc.i4 128
IL_0AB2: and
IL_0AB3: brfalse => Label94
IL_0AB8: ldc.i4.1
IL_0AB9: stloc.s 64 (System.Boolean)
IL_0ABB: Label92
IL_0ABB: Label93
IL_0ABB: Label94
IL_0ABB: ldarg.2
IL_0ABC: ldfld System.UInt32 NetSegment::m_lanes
IL_0AC1: stloc.s 32 (System.UInt32)
IL_0AC3: ldc.i4.0
IL_0AC4: stloc.s 65 (System.Int32)
IL_0AC6: br => Label95
IL_0ACB: Label98
IL_0ACB: ldloc.0
IL_0ACC: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0AD1: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0AD6: ldloc.s 32 (System.UInt32)
IL_0AD8: conv.u
IL_0AD9: ldelema NetLane
IL_0ADE: ldfld System.UInt16 NetLane::m_flags
IL_0AE3: ldc.i4.s -9
IL_0AE5: and
IL_0AE6: stloc.s 66 (NetLane+Flags)
IL_0AE8: ldloc.s 64 (System.Boolean)
IL_0AEA: brfalse => Label96
IL_0AEF: ldloc.s 66 (NetLane+Flags)
IL_0AF1: ldc.i4.8
IL_0AF2: or
IL_0AF3: stloc.s 66 (NetLane+Flags)
IL_0AF5: Label96
IL_0AF5: ldloc.0
IL_0AF6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0AFB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0B00: ldloc.s 32 (System.UInt32)
IL_0B02: conv.u
IL_0B03: ldelema NetLane
IL_0B08: ldloc.s 66 (NetLane+Flags)
IL_0B0A: conv.u2
IL_0B0B: stfld System.UInt16 NetLane::m_flags
IL_0B10: ldloc.0
IL_0B11: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0B16: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0B1B: ldloc.s 32 (System.UInt32)
IL_0B1D: conv.u
IL_0B1E: ldelema NetLane
IL_0B23: ldfld System.UInt32 NetLane::m_nextLane
IL_0B28: stloc.s 32 (System.UInt32)
IL_0B2A: ldloc.s 65 (System.Int32)
IL_0B2C: ldc.i4.1
IL_0B2D: add
IL_0B2E: stloc.s 65 (System.Int32)
IL_0B30: Label95
IL_0B30: ldloc.s 65 (System.Int32)
IL_0B32: ldarg.0
IL_0B33: ldfld NetInfo NetAI::m_info
IL_0B38: ldfld Lane[] NetInfo::m_lanes
IL_0B3D: ldlen
IL_0B3E: conv.i4
IL_0B3F: bge => Label97
IL_0B44: ldloc.s 32 (System.UInt32)
IL_0B46: brtrue => Label98
IL_0B4B: Label97
IL_0B4B: ldarg.3
IL_0B4C: brtrue => Label99
IL_0B51: ldarg.2
IL_0B52: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0B57: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0B5C: stloc.s 68 (UnityEngine.Vector3)
IL_0B5E: ldloca.s 68 (UnityEngine.Vector3)
IL_0B60: ldfld System.Single UnityEngine.Vector3::x
IL_0B65: ldc.r4 16
IL_0B6A: sub
IL_0B6B: ldc.r4 64
IL_0B70: div
IL_0B71: ldc.r4 135
IL_0B76: add
IL_0B77: conv.i4
IL_0B78: ldc.i4.0
IL_0B79: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0B7E: stloc.s 67 (System.Int32)
IL_0B80: ldarg.2
IL_0B81: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0B86: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0B8B: stloc.s 70 (UnityEngine.Vector3)
IL_0B8D: ldloca.s 70 (UnityEngine.Vector3)
IL_0B8F: ldfld System.Single UnityEngine.Vector3::z
IL_0B94: ldc.r4 16
IL_0B99: sub
IL_0B9A: ldc.r4 64
IL_0B9F: div
IL_0BA0: ldc.r4 135
IL_0BA5: add
IL_0BA6: conv.i4
IL_0BA7: ldc.i4.0
IL_0BA8: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0BAD: stloc.s 69 (System.Int32)
IL_0BAF: ldarg.2
IL_0BB0: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0BB5: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0BBA: stloc.s 72 (UnityEngine.Vector3)
IL_0BBC: ldloca.s 72 (UnityEngine.Vector3)
IL_0BBE: ldfld System.Single UnityEngine.Vector3::x
IL_0BC3: ldc.r4 16
IL_0BC8: add
IL_0BC9: ldc.r4 64
IL_0BCE: div
IL_0BCF: ldc.r4 135
IL_0BD4: add
IL_0BD5: conv.i4
IL_0BD6: ldc.i4 269
IL_0BDB: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0BE0: stloc.s 71 (System.Int32)
IL_0BE2: ldarg.2
IL_0BE3: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0BE8: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0BED: stloc.s 74 (UnityEngine.Vector3)
IL_0BEF: ldloca.s 74 (UnityEngine.Vector3)
IL_0BF1: ldfld System.Single UnityEngine.Vector3::z
IL_0BF6: ldc.r4 16
IL_0BFB: add
IL_0BFC: ldc.r4 64
IL_0C01: div
IL_0C02: ldc.r4 135
IL_0C07: add
IL_0C08: conv.i4
IL_0C09: ldc.i4 269
IL_0C0E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0C13: stloc.s 73 (System.Int32)
IL_0C15: ldloc.s 69 (System.Int32)
IL_0C17: stloc.s 75 (System.Int32)
IL_0C19: br => Label100
IL_0C1E: Label108
IL_0C1E: ldloc.s 67 (System.Int32)
IL_0C20: stloc.s 76 (System.Int32)
IL_0C22: br => Label101
IL_0C27: Label107
IL_0C27: ldloc.0
IL_0C28: ldfld System.UInt16[] NetManager::m_nodeGrid
IL_0C2D: ldloc.s 75 (System.Int32)
IL_0C2F: ldc.i4 270
IL_0C34: mul
IL_0C35: ldloc.s 76 (System.Int32)
IL_0C37: add
IL_0C38: ldelem.u2
IL_0C39: stloc.s 77 (System.UInt16)
IL_0C3B: ldc.i4.0
IL_0C3C: stloc.s 78 (System.Int32)
IL_0C3E: br => Label102
IL_0C43: Label106
IL_0C43: ldloc.0
IL_0C44: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0C49: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0C4E: ldloc.s 77 (System.UInt16)
IL_0C50: ldelema NetNode
IL_0C55: call NetInfo NetNode::get_Info()
IL_0C5A: stloc.s 79 (NetInfo)
IL_0C5C: ldloc.0
IL_0C5D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0C62: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0C67: ldloc.s 77 (System.UInt16)
IL_0C69: ldelema NetNode
IL_0C6E: ldfld UnityEngine.Vector3 NetNode::m_position
IL_0C73: stloc.s 80 (UnityEngine.Vector3)
IL_0C75: ldarg.2
IL_0C76: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0C7B: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0C80: stloc.s 82 (UnityEngine.Vector3)
IL_0C82: ldloca.s 82 (UnityEngine.Vector3)
IL_0C84: ldfld System.Single UnityEngine.Vector3::x
IL_0C89: ldc.r4 16
IL_0C8E: sub
IL_0C8F: ldloca.s 80 (UnityEngine.Vector3)
IL_0C91: ldfld System.Single UnityEngine.Vector3::x
IL_0C96: sub
IL_0C97: ldarg.2
IL_0C98: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0C9D: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0CA2: stloc.s 83 (UnityEngine.Vector3)
IL_0CA4: ldloca.s 83 (UnityEngine.Vector3)
IL_0CA6: ldfld System.Single UnityEngine.Vector3::z
IL_0CAB: ldc.r4 16
IL_0CB0: sub
IL_0CB1: ldloca.s 80 (UnityEngine.Vector3)
IL_0CB3: ldfld System.Single UnityEngine.Vector3::z
IL_0CB8: sub
IL_0CB9: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0CBE: ldloca.s 80 (UnityEngine.Vector3)
IL_0CC0: ldfld System.Single UnityEngine.Vector3::x
IL_0CC5: ldarg.2
IL_0CC6: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0CCB: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0CD0: stloc.s 84 (UnityEngine.Vector3)
IL_0CD2: ldloca.s 84 (UnityEngine.Vector3)
IL_0CD4: ldfld System.Single UnityEngine.Vector3::x
IL_0CD9: sub
IL_0CDA: ldc.r4 16
IL_0CDF: sub
IL_0CE0: ldloca.s 80 (UnityEngine.Vector3)
IL_0CE2: ldfld System.Single UnityEngine.Vector3::z
IL_0CE7: ldarg.2
IL_0CE8: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0CED: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0CF2: stloc.s 85 (UnityEngine.Vector3)
IL_0CF4: ldloca.s 85 (UnityEngine.Vector3)
IL_0CF6: ldfld System.Single UnityEngine.Vector3::z
IL_0CFB: sub
IL_0CFC: ldc.r4 16
IL_0D01: sub
IL_0D02: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0D07: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0D0C: stloc.s 81 (System.Single)
IL_0D0E: ldloc.s 81 (System.Single)
IL_0D10: ldc.r4 0
IL_0D15: bge.un => Label103
IL_0D1A: ldloc.s 79 (NetInfo)
IL_0D1C: ldfld NetAI NetInfo::m_netAI
IL_0D21: ldloc.s 77 (System.UInt16)
IL_0D23: ldloc.0
IL_0D24: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0D29: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0D2E: ldloc.s 77 (System.UInt16)
IL_0D30: ldelema NetNode
IL_0D35: callvirt virtual System.Void NetAI::NearbyLanesUpdated(System.UInt16
nodeID, NetNode& data)
IL_0D3A: Label103
IL_0D3A: ldloc.0
IL_0D3B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0D40: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0D45: ldloc.s 77 (System.UInt16)
IL_0D47: ldelema NetNode
IL_0D4C: ldfld System.UInt16 NetNode::m_nextGridNode
IL_0D51: stloc.s 77 (System.UInt16)
IL_0D53: ldloc.s 78 (System.Int32)
IL_0D55: ldc.i4.1
IL_0D56: add
IL_0D57: dup
IL_0D58: stloc.s 78 (System.Int32)
IL_0D5A: ldc.i4 32768
IL_0D5F: blt => Label104
IL_0D64: ldc.i4.1
IL_0D65: ldstr "Invalid list detected!\n"
IL_0D6A: call static System.String System.Environment::get_StackTrace()
IL_0D6F: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_0D74: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Error(LogChannel ll, System.String
msg)
IL_0D79: br => Label105
IL_0D7E: Label102
IL_0D7E: Label104
IL_0D7E: ldloc.s 77 (System.UInt16)
IL_0D80: brtrue => Label106
IL_0D85: Label105
IL_0D85: ldloc.s 76 (System.Int32)
IL_0D87: ldc.i4.1
IL_0D88: add
IL_0D89: stloc.s 76 (System.Int32)
IL_0D8B: Label101
IL_0D8B: ldloc.s 76 (System.Int32)
IL_0D8D: ldloc.s 71 (System.Int32)
IL_0D8F: ble => Label107
IL_0D94: ldloc.s 75 (System.Int32)
IL_0D96: ldc.i4.1
IL_0D97: add
IL_0D98: stloc.s 75 (System.Int32)
IL_0D9A: Label100
IL_0D9A: ldloc.s 75 (System.Int32)
IL_0D9C: ldloc.s 73 (System.Int32)
IL_0D9E: ble => Label108
IL_0DA3: ldarg.0
IL_0DA4: ldfld NetInfo NetAI::m_info
IL_0DA9: ldfld System.Boolean NetInfo::m_hasPedestrianLanes
IL_0DAE: brfalse => Label109
IL_0DB3: ldarg.0
IL_0DB4: ldfld NetInfo NetAI::m_info
IL_0DB9: ldfld System.Boolean NetInfo::m_hasForwardVehicleLanes
IL_0DBE: brtrue => Label110
IL_0DC3: ldarg.0
IL_0DC4: ldfld NetInfo NetAI::m_info
IL_0DC9: ldfld System.Boolean NetInfo::m_hasBackwardVehicleLanes
IL_0DCE: brfalse => Label111
IL_0DD3: Label110
IL_0DD3: ldarg.1
IL_0DD4: ldarg.2
IL_0DD5: call static System.Void RoadBaseAI::CheckBuildings(System.UInt16
segmentID, NetSegment& data)
IL_0DDA: // end original
IL_0DDA: Label99
IL_0DDA: Label109
IL_0DDA: Label111
IL_0DDA: 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::SetTrafficLightState_Patch0(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: // start original
IL_0000: ldarg.s 4
IL_0002: ldc.i4.2
IL_0003: shl
IL_0004: ldarg.3
IL_0005: or
IL_0006: stloc.0
IL_0007: ldarg.1
IL_0008: ldfld System.UInt16 NetSegment::m_startNode
IL_000D: ldarg.0
IL_000E: bne.un => Label0
IL_0013: ldarg.2
IL_0014: ldc.i4.8
IL_0015: shr.un
IL_0016: ldc.i4.1
IL_0017: and
IL_0018: brtrue => Label1
IL_001D: ldarg.1
IL_001E: ldarg.1
IL_001F: ldfld System.Byte NetSegment::m_trafficLightState0
IL_0024: ldc.i4 240
IL_0029: and
IL_002A: ldloc.0
IL_002B: or
IL_002C: conv.u1
IL_002D: stfld System.Byte NetSegment::m_trafficLightState0
IL_0032: br => Label2
IL_0037: Label1
IL_0037: ldarg.1
IL_0038: ldarg.1
IL_0039: ldfld System.Byte NetSegment::m_trafficLightState1
IL_003E: ldc.i4 240
IL_0043: and
IL_0044: ldloc.0
IL_0045: or
IL_0046: conv.u1
IL_0047: stfld System.Byte NetSegment::m_trafficLightState1
IL_004C: Label2
IL_004C: ldarg.s 5
IL_004E: brfalse => Label3
IL_0053: ldarg.1
IL_0054: dup
IL_0055: ldfld Flags NetSegment::m_flags
IL_005A: ldc.i4 4096
IL_005F: or
IL_0060: stfld Flags NetSegment::m_flags
IL_0065: br => Label4
IL_006A: Label3
IL_006A: ldarg.1
IL_006B: dup
IL_006C: ldfld Flags NetSegment::m_flags
IL_0071: ldc.i4 -4097
IL_0076: and
IL_0077: stfld Flags NetSegment::m_flags
IL_007C: Label4
IL_007C: ldarg.s 6
IL_007E: brfalse => Label5
IL_0083: ldarg.1
IL_0084: dup
IL_0085: ldfld Flags NetSegment::m_flags
IL_008A: ldc.i4 16384
IL_008F: or
IL_0090: stfld Flags NetSegment::m_flags
IL_0095: br => Label6
IL_009A: Label5
IL_009A: ldarg.1
IL_009B: dup
IL_009C: ldfld Flags NetSegment::m_flags
IL_00A1: ldc.i4 -16385
IL_00A6: and
IL_00A7: stfld Flags NetSegment::m_flags
IL_00AC: Label6
IL_00AC: br => Label7
IL_00B1: Label0
IL_00B1: ldarg.2
IL_00B2: ldc.i4.8
IL_00B3: shr.un
IL_00B4: ldc.i4.1
IL_00B5: and
IL_00B6: brtrue => Label8
IL_00BB: ldarg.1
IL_00BC: ldarg.1
IL_00BD: ldfld System.Byte NetSegment::m_trafficLightState0
IL_00C2: ldc.i4.s 15
IL_00C4: and
IL_00C5: ldloc.0
IL_00C6: ldc.i4.4
IL_00C7: shl
IL_00C8: or
IL_00C9: conv.u1
IL_00CA: stfld System.Byte NetSegment::m_trafficLightState0
IL_00CF: br => Label9
IL_00D4: Label8
IL_00D4: ldarg.1
IL_00D5: ldarg.1
IL_00D6: ldfld System.Byte NetSegment::m_trafficLightState1
IL_00DB: ldc.i4.s 15
IL_00DD: and
IL_00DE: ldloc.0
IL_00DF: ldc.i4.4
IL_00E0: shl
IL_00E1: or
IL_00E2: conv.u1
IL_00E3: stfld System.Byte NetSegment::m_trafficLightState1
IL_00E8: Label9
IL_00E8: ldarg.s 5
IL_00EA: brfalse => Label10
IL_00EF: ldarg.1
IL_00F0: dup
IL_00F1: ldfld Flags NetSegment::m_flags
IL_00F6: ldc.i4 8192
IL_00FB: or
IL_00FC: stfld Flags NetSegment::m_flags
IL_0101: br => Label11
IL_0106: Label10
IL_0106: ldarg.1
IL_0107: dup
IL_0108: ldfld Flags NetSegment::m_flags
IL_010D: ldc.i4 -8193
IL_0112: and
IL_0113: stfld Flags NetSegment::m_flags
IL_0118: Label11
IL_0118: ldarg.s 6
IL_011A: brfalse => Label12
IL_011F: ldarg.1
IL_0120: dup
IL_0121: ldfld Flags NetSegment::m_flags
IL_0126: ldc.i4 32768
IL_012B: or
IL_012C: stfld Flags NetSegment::m_flags
IL_0131: br => Label13
IL_0136: Label12
IL_0136: ldarg.1
IL_0137: dup
IL_0138: ldfld Flags NetSegment::m_flags
IL_013D: ldc.i4 -32769
IL_0142: and
IL_0143: stfld Flags NetSegment::m_flags
IL_0148: // end original
IL_0148: Label7
IL_0148: Label13
IL_0148: ret
DONE

### Patch: virtual System.Void RoadBaseAI::SimulationStep(System.UInt16 segmentID,


NetSegment& data)
### Replacement: static System.Void RoadBaseAI::SimulationStep_Patch0(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/Problem
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: // start original
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: ldarg.2
IL_0003: call virtual System.Void PlayerNetAI::SimulationStep(System.UInt16
segmentID, NetSegment& data)
IL_0008: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_000D: stloc.0
IL_000E: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0013: stloc.1
IL_0014: ldarg.2
IL_0015: ldfld Problem NetSegment::m_problems
IL_001A: ldc.i4 805306368
IL_001F: conv.i8
IL_0020: call static Problem Notification::RemoveProblems(Problem problems1,
Problem problems2)
IL_0025: stloc.2
IL_0026: ldarg.2
IL_0027: ldfld Flags NetSegment::m_flags
IL_002C: ldc.i4 2048
IL_0031: and
IL_0032: brfalse => Label0
IL_0037: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_003C: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0041: ldc.i4.s 16
IL_0043: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0048: brtrue => Label1
IL_004D: ldarg.2
IL_004E: dup
IL_004F: ldfld Flags NetSegment::m_flags
IL_0054: ldc.i4 -2049
IL_0059: and
IL_005A: stfld Flags NetSegment::m_flags
IL_005F: Label0
IL_005F: Label1
IL_005F: ldc.r4 0
IL_0064: stloc.3
IL_0065: ldarg.2
IL_0066: ldfld System.UInt32 NetSegment::m_lanes
IL_006B: stloc.s 4 (System.UInt32)
IL_006D: ldc.i4.0
IL_006E: stloc.s 5 (System.Int32)
IL_0070: br => Label2
IL_0075: Label6
IL_0075: ldarg.0
IL_0076: ldfld NetInfo NetAI::m_info
IL_007B: ldfld Lane[] NetInfo::m_lanes
IL_0080: ldloc.s 5 (System.Int32)
IL_0082: ldelem.ref
IL_0083: stloc.s 6 (NetInfo+Lane)
IL_0085: ldloc.s 6 (NetInfo+Lane)
IL_0087: ldfld LaneType Lane::m_laneType
IL_008C: ldc.i4.s 33
IL_008E: and
IL_008F: conv.u1
IL_0090: brfalse => Label3
IL_0095: ldloc.s 6 (NetInfo+Lane)
IL_0097: ldfld VehicleType Lane::m_vehicleType
IL_009C: ldc.i4.s -33
IL_009E: and
IL_009F: brfalse => Label4
IL_00A4: ldloc.3
IL_00A5: ldloc.1
IL_00A6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00AB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00B0: ldloc.s 4 (System.UInt32)
IL_00B2: conv.u
IL_00B3: ldelema NetLane
IL_00B8: ldfld System.Single NetLane::m_length
IL_00BD: add
IL_00BE: stloc.3
IL_00BF: Label3
IL_00BF: Label4
IL_00BF: ldloc.1
IL_00C0: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00C5: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00CA: ldloc.s 4 (System.UInt32)
IL_00CC: conv.u
IL_00CD: ldelema NetLane
IL_00D2: ldfld System.UInt32 NetLane::m_nextLane
IL_00D7: stloc.s 4 (System.UInt32)
IL_00D9: ldloc.s 5 (System.Int32)
IL_00DB: ldc.i4.1
IL_00DC: add
IL_00DD: stloc.s 5 (System.Int32)
IL_00DF: Label2
IL_00DF: ldloc.s 5 (System.Int32)
IL_00E1: ldarg.0
IL_00E2: ldfld NetInfo NetAI::m_info
IL_00E7: ldfld Lane[] NetInfo::m_lanes
IL_00EC: ldlen
IL_00ED: conv.i4
IL_00EE: bge => Label5
IL_00F3: ldloc.s 4 (System.UInt32)
IL_00F5: brtrue => Label6
IL_00FA: Label5
IL_00FA: ldc.i4.0
IL_00FB: stloc.s 7 (System.Int32)
IL_00FD: ldc.i4.0
IL_00FE: stloc.s 8 (System.Int32)
IL_0100: ldarg.2
IL_0101: ldfld System.UInt16 NetSegment::m_trafficBuffer
IL_0106: ldc.i4 65535
IL_010B: bne.un => Label7
IL_0110: ldarg.2
IL_0111: ldfld Flags NetSegment::m_flags
IL_0116: ldc.i4 2097152
IL_011B: and
IL_011C: brtrue => Label8
IL_0121: ldarg.2
IL_0122: dup
IL_0123: ldfld Flags NetSegment::m_flags
IL_0128: ldc.i4 2097152
IL_012D: or
IL_012E: stfld Flags NetSegment::m_flags
IL_0133: ldarg.2
IL_0134: ldloc.0
IL_0135: dup
IL_0136: ldfld System.UInt32 SimulationManager::m_currentBuildIndex
IL_013B: dup
IL_013C: stloc.s 9 (System.UInt32)
IL_013E: ldc.i4.1
IL_013F: add
IL_0140: stfld System.UInt32 SimulationManager::m_currentBuildIndex
IL_0145: ldloc.s 9 (System.UInt32)
IL_0147: stfld System.UInt32 NetSegment::m_modifiedIndex
IL_014C: Label8
IL_014C: br => Label9
IL_0151: Label7
IL_0151: ldarg.2
IL_0152: dup
IL_0153: ldfld Flags NetSegment::m_flags
IL_0158: ldc.i4 -2097153
IL_015D: and
IL_015E: stfld Flags NetSegment::m_flags
IL_0163: ldloc.3
IL_0164: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_0169: ldc.i4.4
IL_016A: shl
IL_016B: stloc.s 10 (System.Int32)
IL_016D: ldloc.s 10 (System.Int32)
IL_016F: brfalse => Label10
IL_0174: ldarg.2
IL_0175: ldfld System.UInt16 NetSegment::m_trafficBuffer
IL_017A: ldc.i4.s 100
IL_017C: mul
IL_017D: ldloc.s 10 (System.Int32)
IL_017F: div
IL_0180: ldc.i4.s 100
IL_0182: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0187: conv.u1
IL_0188: stloc.s 7 (System.Int32)
IL_018A: ldarg.2
IL_018B: ldfld System.UInt16 NetSegment::m_noiseBuffer
IL_0190: ldc.i4 250
IL_0195: mul
IL_0196: ldloc.s 10 (System.Int32)
IL_0198: div
IL_0199: ldc.i4.s 100
IL_019B: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01A0: conv.u1
IL_01A1: stloc.s 8 (System.Int32)
IL_01A3: Label9
IL_01A3: Label10
IL_01A3: ldarg.2
IL_01A4: ldc.i4.0
IL_01A5: stfld System.UInt16 NetSegment::m_trafficBuffer
IL_01AA: ldarg.2
IL_01AB: ldc.i4.0
IL_01AC: stfld System.UInt16 NetSegment::m_noiseBuffer
IL_01B1: ldloc.s 7 (System.Int32)
IL_01B3: ldarg.2
IL_01B4: ldfld System.Byte NetSegment::m_trafficDensity
IL_01B9: ble => Label11
IL_01BE: ldarg.2
IL_01BF: ldarg.2
IL_01C0: ldfld System.Byte NetSegment::m_trafficDensity
IL_01C5: ldc.i4.5
IL_01C6: add
IL_01C7: ldloc.s 7 (System.Int32)
IL_01C9: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01CE: conv.u1
IL_01CF: stfld System.Byte NetSegment::m_trafficDensity
IL_01D4: br => Label12
IL_01D9: Label11
IL_01D9: ldloc.s 7 (System.Int32)
IL_01DB: ldarg.2
IL_01DC: ldfld System.Byte NetSegment::m_trafficDensity
IL_01E1: bge => Label13
IL_01E6: ldarg.2
IL_01E7: ldarg.2
IL_01E8: ldfld System.Byte NetSegment::m_trafficDensity
IL_01ED: ldc.i4.5
IL_01EE: sub
IL_01EF: ldloc.s 7 (System.Int32)
IL_01F1: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_01F6: conv.u1
IL_01F7: stfld System.Byte NetSegment::m_trafficDensity
IL_01FC: Label12
IL_01FC: Label13
IL_01FC: ldloc.s 8 (System.Int32)
IL_01FE: ldarg.2
IL_01FF: ldfld System.Byte NetSegment::m_noiseDensity
IL_0204: ble => Label14
IL_0209: ldarg.2
IL_020A: ldarg.2
IL_020B: ldfld System.Byte NetSegment::m_noiseDensity
IL_0210: ldc.i4.2
IL_0211: add
IL_0212: ldloc.s 8 (System.Int32)
IL_0214: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0219: conv.u1
IL_021A: stfld System.Byte NetSegment::m_noiseDensity
IL_021F: br => Label15
IL_0224: Label14
IL_0224: ldloc.s 8 (System.Int32)
IL_0226: ldarg.2
IL_0227: ldfld System.Byte NetSegment::m_noiseDensity
IL_022C: bge => Label16
IL_0231: ldarg.2
IL_0232: ldarg.2
IL_0233: ldfld System.Byte NetSegment::m_noiseDensity
IL_0238: ldc.i4.2
IL_0239: sub
IL_023A: ldloc.s 8 (System.Int32)
IL_023C: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0241: conv.u1
IL_0242: stfld System.Byte NetSegment::m_noiseDensity
IL_0247: Label15
IL_0247: Label16
IL_0247: ldloc.1
IL_0248: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_024D: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0252: ldarg.2
IL_0253: ldfld System.UInt16 NetSegment::m_startNode
IL_0258: ldelema NetNode
IL_025D: ldfld UnityEngine.Vector3 NetNode::m_position
IL_0262: stloc.s 11 (UnityEngine.Vector3)
IL_0264: ldloc.1
IL_0265: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_026A: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_026F: ldarg.2
IL_0270: ldfld System.UInt16 NetSegment::m_endNode
IL_0275: ldelema NetNode
IL_027A: ldfld UnityEngine.Vector3 NetNode::m_position
IL_027F: stloc.s 12 (UnityEngine.Vector3)
IL_0281: ldloc.s 11 (UnityEngine.Vector3)
IL_0283: ldloc.s 12 (UnityEngine.Vector3)
IL_0285: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_028A: ldc.r4 0.5
IL_028F: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_0294: stloc.s 13 (UnityEngine.Vector3)
IL_0296: ldc.i4.0
IL_0297: stloc.s 14 (System.Boolean)
IL_0299: ldarg.0
IL_029A: ldfld NetInfo NetAI::m_info
IL_029F: ldfld Flags NetInfo::m_setVehicleFlags
IL_02A4: ldc.i4 268435456
IL_02A9: and
IL_02AA: brtrue => Label17
IL_02AF: call static TerrainManager
ColossalFramework.Singleton`1<TerrainManager>::get_instance()
IL_02B4: ldloc.s 13 (UnityEngine.Vector3)
IL_02B6: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_02BB: callvirt System.Single TerrainManager::WaterLevel(UnityEngine.Vector2
position)
IL_02C0: stloc.s 15 (System.Single)
IL_02C2: ldloc.s 15 (System.Single)
IL_02C4: ldloca.s 13 (UnityEngine.Vector3)
IL_02C6: ldfld System.Single UnityEngine.Vector3::y
IL_02CB: ldc.r4 1
IL_02D0: add
IL_02D1: ble.un => Label18
IL_02D6: ldloc.s 15 (System.Single)
IL_02D8: ldc.r4 0
IL_02DD: ble.un => Label19
IL_02E2: ldc.i4.1
IL_02E3: stloc.s 14 (System.Boolean)
IL_02E5: ldarg.2
IL_02E6: dup
IL_02E7: ldfld Flags NetSegment::m_flags
IL_02EC: ldc.i4 4194304
IL_02F1: or
IL_02F2: stfld Flags NetSegment::m_flags
IL_02F7: ldloc.2
IL_02F8: ldc.i8 4611686018695823360
IL_0301: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0306: stloc.2
IL_0307: ldarg.2
IL_0308: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_030D: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0312: stloc.s 16 (UnityEngine.Vector3)
IL_0314: ldarg.2
IL_0315: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_031A: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_031F: stloc.s 17 (UnityEngine.Vector3)
IL_0321: ldloca.s 16 (UnityEngine.Vector3)
IL_0323: ldfld System.Single UnityEngine.Vector3::x
IL_0328: ldloca.s 16 (UnityEngine.Vector3)
IL_032A: ldfld System.Single UnityEngine.Vector3::z
IL_032F: ldloca.s 17 (UnityEngine.Vector3)
IL_0331: ldfld System.Single UnityEngine.Vector3::x
IL_0336: ldloca.s 17 (UnityEngine.Vector3)
IL_0338: ldfld System.Single UnityEngine.Vector3::z
IL_033D: call static System.Void RoadBaseAI::FloodParkedCars(System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0342: br => Label20
IL_0347: Label18
IL_0347: Label19
IL_0347: ldarg.2
IL_0348: dup
IL_0349: ldfld Flags NetSegment::m_flags
IL_034E: ldc.i4 -4194305
IL_0353: and
IL_0354: stfld Flags NetSegment::m_flags
IL_0359: ldloc.s 15 (System.Single)
IL_035B: ldloca.s 13 (UnityEngine.Vector3)
IL_035D: ldfld System.Single UnityEngine.Vector3::y
IL_0362: ble.un => Label21
IL_0367: ldloc.s 15 (System.Single)
IL_0369: ldc.r4 0
IL_036E: ble.un => Label22
IL_0373: ldc.i4.1
IL_0374: stloc.s 14 (System.Boolean)
IL_0376: ldloc.2
IL_0377: ldc.i4 268435456
IL_037C: conv.i8
IL_037D: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0382: stloc.2
IL_0383: Label17
IL_0383: Label20
IL_0383: Label21
IL_0383: Label22
IL_0383: call static DistrictManager
ColossalFramework.Singleton`1<DistrictManager>::get_instance()
IL_0388: stloc.s 18 (DistrictManager)
IL_038A: ldloc.s 18 (DistrictManager)
IL_038C: ldloc.s 13 (UnityEngine.Vector3)
IL_038E: callvirt System.Byte DistrictManager::GetDistrict(UnityEngine.Vector3
worldPos)
IL_0393: stloc.s 19 (System.Byte)
IL_0395: ldloc.s 18 (DistrictManager)
IL_0397: ldfld Array8`1<District> DistrictManager::m_districts
IL_039C: ldfld District[] Array8`1<District>::m_buffer
IL_03A1: ldloc.s 19 (System.Byte)
IL_03A3: ldelema District
IL_03A8: ldfld CityPlanning District::m_cityPlanningPolicies
IL_03AD: stloc.s 20 (DistrictPolicies+CityPlanning)
IL_03AF: ldc.i4.s 100
IL_03B1: ldarg.2
IL_03B2: ldfld System.Byte NetSegment::m_noiseDensity
IL_03B7: ldc.i4.s 100
IL_03B9: sub
IL_03BA: ldarg.2
IL_03BB: ldfld System.Byte NetSegment::m_noiseDensity
IL_03C0: ldc.i4.s 100
IL_03C2: sub
IL_03C3: mul
IL_03C4: ldc.i4.s 100
IL_03C6: div
IL_03C7: sub
IL_03C8: stloc.s 21 (System.Int32)
IL_03CA: ldarg.0
IL_03CB: ldfld NetInfo NetAI::m_info
IL_03D0: ldfld VehicleType NetInfo::m_vehicleTypes
IL_03D5: ldc.i4.1
IL_03D6: and
IL_03D7: brfalse => Label23
IL_03DC: ldarg.0
IL_03DD: ldfld NetInfo NetAI::m_info
IL_03E2: ldfld Flags NetInfo::m_setVehicleFlags
IL_03E7: ldc.i4 268435456
IL_03EC: and
IL_03ED: brtrue => Label24
IL_03F2: ldloc.s 14 (System.Boolean)
IL_03F4: brfalse => Label25
IL_03F9: ldarg.2
IL_03FA: ldfld Flags NetSegment::m_flags
IL_03FF: ldc.i4 2099200
IL_0404: and
IL_0405: brtrue => Label26
IL_040A: ldloc.0
IL_040B: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0410: ldc.i4.s 10
IL_0412: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0417: brtrue => Label27
IL_041C: ldloca.s 22 (TransferManager+TransferOffer)
IL_041E: initobj TransferManager+TransferOffer
IL_0424: ldloca.s 22 (TransferManager+TransferOffer)
IL_0426: ldc.i4.4
IL_0427: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_042C: ldloca.s 22 (TransferManager+TransferOffer)
IL_042E: ldarg.1
IL_042F: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_0434: ldloca.s 22 (TransferManager+TransferOffer)
IL_0436: ldloc.s 13 (UnityEngine.Vector3)
IL_0438: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_043D: ldloca.s 22 (TransferManager+TransferOffer)
IL_043F: ldc.i4.1
IL_0440: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_0445: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_044A: ldc.i4.s 73
IL_044C: ldloc.s 22 (TransferManager+TransferOffer)
IL_044E: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason
material, TransferOffer offer)
IL_0453: Label25
IL_0453: Label26
IL_0453: Label27
IL_0453: ldarg.2
IL_0454: ldfld System.Byte NetSegment::m_wetness
IL_0459: stloc.s 23 (System.Int32)
IL_045B: ldloc.1
IL_045C: ldfld System.Boolean NetManager::m_treatWetAsSnow
IL_0461: brtrue => Label28
IL_0466: ldloc.s 14 (System.Boolean)
IL_0468: brfalse => Label29
IL_046D: ldc.i4 255
IL_0472: stloc.s 23 (System.Int32)
IL_0474: br => Label30
IL_0479: Label29
IL_0479: ldloc.s 23 (System.Int32)
IL_047B: ldc.i4.s 63
IL_047D: add
IL_047E: ldc.i4.5
IL_047F: shr
IL_0480: neg
IL_0481: stloc.s 24 (System.Int32)
IL_0483: call static WeatherManager
ColossalFramework.Singleton`1<WeatherManager>::get_instance()
IL_0488: ldloc.s 13 (UnityEngine.Vector3)
IL_048A: ldc.i4.0
IL_048B: callvirt System.Single
WeatherManager::SampleRainIntensity(UnityEngine.Vector3 pos, System.Boolean
ignoreWeather)
IL_0490: stloc.s 25 (System.Single)
IL_0492: ldloc.s 25 (System.Single)
IL_0494: ldc.r4 0
IL_0499: beq => Label31
IL_049E: ldloc.s 25 (System.Single)
IL_04A0: ldc.r4 4000
IL_04A5: mul
IL_04A6: ldc.r4 1000
IL_04AB: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_04B0: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_04B5: stloc.s 26 (System.Int32)
IL_04B7: ldloc.s 24 (System.Int32)
IL_04B9: ldloc.0
IL_04BA: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_04BF: ldloc.s 26 (System.Int32)
IL_04C1: ldloc.s 26 (System.Int32)
IL_04C3: ldc.i4.s 99
IL_04C5: add
IL_04C6: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_04CB: ldc.i4.s 100
IL_04CD: div
IL_04CE: add
IL_04CF: stloc.s 24 (System.Int32)
IL_04D1: Label31
IL_04D1: ldloc.s 23 (System.Int32)
IL_04D3: ldloc.s 24 (System.Int32)
IL_04D5: add
IL_04D6: ldc.i4.0
IL_04D7: ldc.i4 255
IL_04DC: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_04E1: stloc.s 23 (System.Int32)
IL_04E3: Label30
IL_04E3: br => Label32
IL_04E8: Label28
IL_04E8: ldarg.0
IL_04E9: ldfld System.Boolean RoadBaseAI::m_accumulateSnow
IL_04EE: brfalse => Label33
IL_04F3: ldloc.s 14 (System.Boolean)
IL_04F5: brfalse => Label34
IL_04FA: ldc.i4 128
IL_04FF: stloc.s 23 (System.Int32)
IL_0501: br => Label35
IL_0506: Label34
IL_0506: call static WeatherManager
ColossalFramework.Singleton`1<WeatherManager>::get_instance()
IL_050B: ldloc.s 13 (UnityEngine.Vector3)
IL_050D: ldc.i4.0
IL_050E: callvirt System.Single
WeatherManager::SampleRainIntensity(UnityEngine.Vector3 pos, System.Boolean
ignoreWeather)
IL_0513: stloc.s 27 (System.Single)
IL_0515: ldloc.s 27 (System.Single)
IL_0517: ldc.r4 0
IL_051C: beq => Label36
IL_0521: ldloc.s 27 (System.Single)
IL_0523: ldc.r4 400
IL_0528: mul
IL_0529: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_052E: stloc.s 28 (System.Int32)
IL_0530: ldloc.0
IL_0531: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0536: ldloc.s 28 (System.Int32)
IL_0538: ldloc.s 28 (System.Int32)
IL_053A: ldc.i4.s 99
IL_053C: add
IL_053D: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_0542: ldc.i4.s 100
IL_0544: div
IL_0545: stloc.s 29 (System.Int32)
IL_0547: call static UnlockManager
ColossalFramework.Singleton`1<UnlockManager>::get_instance()
IL_054C: ldc.i4.s 24
IL_054E: callvirt System.Boolean UnlockManager::Unlocked(Feature feature)
IL_0553: brfalse => Label37
IL_0558: ldloc.s 23 (System.Int32)
IL_055A: ldloc.s 29 (System.Int32)
IL_055C: add
IL_055D: ldc.i4 255
IL_0562: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0567: stloc.s 23 (System.Int32)
IL_0569: br => Label38
IL_056E: Label37
IL_056E: ldloc.s 23 (System.Int32)
IL_0570: ldloc.s 29 (System.Int32)
IL_0572: add
IL_0573: ldc.i4 128
IL_0578: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_057D: stloc.s 23 (System.Int32)
IL_057F: Label38
IL_057F: br => Label39
IL_0584: Label36
IL_0584: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0589: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_058E: ldc.i4.4
IL_058F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0594: brtrue => Label40
IL_0599: ldloc.s 23 (System.Int32)
IL_059B: ldc.i4.1
IL_059C: sub
IL_059D: ldc.i4.0
IL_059E: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_05A3: stloc.s 23 (System.Int32)
IL_05A5: Label39
IL_05A5: Label40
IL_05A5: ldloc.s 23 (System.Int32)
IL_05A7: ldc.i4.s 64
IL_05A9: blt => Label41
IL_05AE: ldarg.2
IL_05AF: ldfld Flags NetSegment::m_flags
IL_05B4: ldc.i4 6293504
IL_05B9: and
IL_05BA: brtrue => Label42
IL_05BF: ldloc.0
IL_05C0: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_05C5: ldc.i4.s 10
IL_05C7: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_05CC: brtrue => Label43
IL_05D1: ldloca.s 30 (TransferManager+TransferOffer)
IL_05D3: initobj TransferManager+TransferOffer
IL_05D9: ldloca.s 30 (TransferManager+TransferOffer)
IL_05DB: ldloc.s 23 (System.Int32)
IL_05DD: ldc.i4.s 50
IL_05DF: div
IL_05E0: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_05E5: ldloca.s 30 (TransferManager+TransferOffer)
IL_05E7: ldarg.1
IL_05E8: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_05ED: ldloca.s 30 (TransferManager+TransferOffer)
IL_05EF: ldloc.s 13 (UnityEngine.Vector3)
IL_05F1: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_05F6: ldloca.s 30 (TransferManager+TransferOffer)
IL_05F8: ldc.i4.1
IL_05F9: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_05FE: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_0603: ldc.i4.s 64
IL_0605: ldloc.s 30 (TransferManager+TransferOffer)
IL_0607: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason
material, TransferOffer offer)
IL_060C: Label41
IL_060C: Label42
IL_060C: Label43
IL_060C: ldloc.s 23 (System.Int32)
IL_060E: ldc.i4 192
IL_0613: blt => Label44
IL_0618: ldloc.2
IL_0619: ldc.i4 536870912
IL_061E: conv.i8
IL_061F: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0624: stloc.2
IL_0625: Label44
IL_0625: ldloc.s 18 (DistrictManager)
IL_0627: ldfld Array8`1<District> DistrictManager::m_districts
IL_062C: ldfld District[] Array8`1<District>::m_buffer
IL_0631: ldloc.s 19 (System.Byte)
IL_0633: ldelema District
IL_0638: ldflda DistrictProductionData District::m_productionData
IL_063D: dup
IL_063E: ldfld System.UInt32 DistrictProductionData::m_tempSnowCover
IL_0643: ldloc.s 23 (System.Int32)
IL_0645: add
IL_0646: stfld System.UInt32 DistrictProductionData::m_tempSnowCover
IL_064B: Label32
IL_064B: Label33
IL_064B: Label35
IL_064B: ldloc.s 23 (System.Int32)
IL_064D: ldarg.2
IL_064E: ldfld System.Byte NetSegment::m_wetness
IL_0653: beq => Label45
IL_0658: ldarg.2
IL_0659: ldfld System.Byte NetSegment::m_wetness
IL_065E: ldloc.s 23 (System.Int32)
IL_0660: sub
IL_0661: call static System.Int32 UnityEngine.Mathf::Abs(System.Int32 value)
IL_0666: ldc.i4.s 10
IL_0668: ble => Label46
IL_066D: ldarg.2
IL_066E: ldloc.s 23 (System.Int32)
IL_0670: conv.u1
IL_0671: stfld System.Byte NetSegment::m_wetness
IL_0676: ldsfld InstanceID InstanceID::Empty
IL_067B: stloc.s 31 (InstanceID)
IL_067D: ldloca.s 31 (InstanceID)
IL_067F: ldarg.1
IL_0680: call System.Void InstanceID::set_NetSegment(System.UInt16 value)
IL_0685: ldloc.1
IL_0686: ldloc.s 31 (InstanceID)
IL_0688: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_068D: ldloca.s 31 (InstanceID)
IL_068F: ldarg.2
IL_0690: ldfld System.UInt16 NetSegment::m_startNode
IL_0695: call System.Void InstanceID::set_NetNode(System.UInt16 value)
IL_069A: ldloc.1
IL_069B: ldloc.s 31 (InstanceID)
IL_069D: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06A2: ldloca.s 31 (InstanceID)
IL_06A4: ldarg.2
IL_06A5: ldfld System.UInt16 NetSegment::m_endNode
IL_06AA: call System.Void InstanceID::set_NetNode(System.UInt16 value)
IL_06AF: ldloc.1
IL_06B0: ldloc.s 31 (InstanceID)
IL_06B2: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06B7: br => Label47
IL_06BC: Label46
IL_06BC: ldarg.2
IL_06BD: ldloc.s 23 (System.Int32)
IL_06BF: conv.u1
IL_06C0: stfld System.Byte NetSegment::m_wetness
IL_06C5: ldloc.1
IL_06C6: ldc.i4 256
IL_06CB: stfld System.Int32 NetManager::m_wetnessChanged
IL_06D0: Label24
IL_06D0: Label45
IL_06D0: Label47
IL_06D0: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_06D2: ldc.i4 1024
IL_06D7: and
IL_06D8: brfalse => Label48
IL_06DD: ldloc.s 21 (System.Int32)
IL_06DF: ldc.i4.3
IL_06E0: mul
IL_06E1: ldc.i4.1
IL_06E2: add
IL_06E3: ldc.i4.1
IL_06E4: shr
IL_06E5: stloc.s 21 (System.Int32)
IL_06E7: ldc.i4 700
IL_06EC: ldc.i4.s 50
IL_06EE: ldarg.2
IL_06EF: ldfld System.Byte NetSegment::m_trafficDensity
IL_06F4: ldc.i4.6
IL_06F5: mul
IL_06F6: add
IL_06F7: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_06FC: stloc.s 32 (System.Int32)
IL_06FE: br => Label49
IL_0703: Label48
IL_0703: ldc.i4 500
IL_0708: ldc.i4.s 50
IL_070A: ldarg.2
IL_070B: ldfld System.Byte NetSegment::m_trafficDensity
IL_0710: ldc.i4.4
IL_0711: mul
IL_0712: add
IL_0713: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0718: stloc.s 32 (System.Int32)
IL_071A: Label49
IL_071A: ldarg.0
IL_071B: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_0720: brtrue => Label50
IL_0725: ldloc.0
IL_0726: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_072B: ldloc.s 32 (System.Int32)
IL_072D: ldloc.s 32 (System.Int32)
IL_072F: ldc.i4.s 99
IL_0731: add
IL_0732: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_0737: ldc.i4.s 100
IL_0739: div
IL_073A: stloc.s 33 (System.Int32)
IL_073C: ldarg.2
IL_073D: ldarg.2
IL_073E: ldfld System.Byte NetSegment::m_condition
IL_0743: ldloc.s 33 (System.Int32)
IL_0745: sub
IL_0746: ldc.i4.0
IL_0747: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_074C: conv.u1
IL_074D: stfld System.Byte NetSegment::m_condition
IL_0752: ldarg.2
IL_0753: ldfld System.Byte NetSegment::m_condition
IL_0758: ldc.i4 192
IL_075D: bge => Label51
IL_0762: ldarg.2
IL_0763: ldfld Flags NetSegment::m_flags
IL_0768: ldc.i4 6293504
IL_076D: and
IL_076E: brtrue => Label52
IL_0773: ldloc.0
IL_0774: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0779: ldc.i4.s 20
IL_077B: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0780: brtrue => Label53
IL_0785: ldloca.s 34 (TransferManager+TransferOffer)
IL_0787: initobj TransferManager+TransferOffer
IL_078D: ldloca.s 34 (TransferManager+TransferOffer)
IL_078F: ldc.i4 255
IL_0794: ldarg.2
IL_0795: ldfld System.Byte NetSegment::m_condition
IL_079A: sub
IL_079B: ldc.i4.s 50
IL_079D: div
IL_079E: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_07A3: ldloca.s 34 (TransferManager+TransferOffer)
IL_07A5: ldarg.1
IL_07A6: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_07AB: ldloca.s 34 (TransferManager+TransferOffer)
IL_07AD: ldloc.s 13 (UnityEngine.Vector3)
IL_07AF: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_07B4: ldloca.s 34 (TransferManager+TransferOffer)
IL_07B6: ldc.i4.1
IL_07B7: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_07BC: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_07C1: ldc.i4.s 66
IL_07C3: ldloc.s 34 (TransferManager+TransferOffer)
IL_07C5: callvirt System.Void TransferManager::AddIncomingOffer(TransferReason
material, TransferOffer offer)
IL_07CA: Label23
IL_07CA: Label50
IL_07CA: Label51
IL_07CA: Label52
IL_07CA: Label53
IL_07CA: ldarg.0
IL_07CB: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_07D0: brtrue => Label54
IL_07D5: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_07D7: ldc.i4.s 32
IL_07D9: and
IL_07DA: brfalse => Label55
IL_07DF: ldarg.2
IL_07E0: dup
IL_07E1: ldfld Flags NetSegment::m_flags
IL_07E6: ldc.i4 1048576
IL_07EB: or
IL_07EC: stfld Flags NetSegment::m_flags
IL_07F1: br => Label56
IL_07F6: Label55
IL_07F6: ldarg.2
IL_07F7: dup
IL_07F8: ldfld Flags NetSegment::m_flags
IL_07FD: ldc.i4 -1048577
IL_0802: and
IL_0803: stfld Flags NetSegment::m_flags
IL_0808: Label56
IL_0808: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_080A: ldc.i4 128
IL_080F: and
IL_0810: brfalse => Label57
IL_0815: ldarg.2
IL_0816: dup
IL_0817: ldfld Flags NetSegment::m_flags
IL_081C: ldc.i4 8388608
IL_0821: or
IL_0822: stfld Flags NetSegment::m_flags
IL_0827: br => Label58
IL_082C: Label57
IL_082C: ldarg.2
IL_082D: dup
IL_082E: ldfld Flags NetSegment::m_flags
IL_0833: ldc.i4 -8388609
IL_0838: and
IL_0839: stfld Flags NetSegment::m_flags
IL_083E: Label58
IL_083E: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_0840: ldc.i4 512
IL_0845: and
IL_0846: brfalse => Label59
IL_084B: ldarg.2
IL_084C: dup
IL_084D: ldfld Flags NetSegment::m_flags
IL_0852: ldc.i4 16777216
IL_0857: or
IL_0858: stfld Flags NetSegment::m_flags
IL_085D: br => Label60
IL_0862: Label59
IL_0862: ldarg.2
IL_0863: dup
IL_0864: ldfld Flags NetSegment::m_flags
IL_0869: ldc.i4 -16777217
IL_086E: and
IL_086F: stfld Flags NetSegment::m_flags
IL_0874: Label60
IL_0874: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_0876: ldc.i4 65536
IL_087B: and
IL_087C: brfalse => Label61
IL_0881: ldarg.2
IL_0882: dup
IL_0883: ldfld Flags NetSegment::m_flags
IL_0888: ldc.i4 256
IL_088D: or
IL_088E: stfld Flags NetSegment::m_flags
IL_0893: br => Label62
IL_0898: Label61
IL_0898: ldarg.2
IL_0899: dup
IL_089A: ldfld Flags NetSegment::m_flags
IL_089F: ldc.i4 -257
IL_08A4: and
IL_08A5: stfld Flags NetSegment::m_flags
IL_08AA: Label54
IL_08AA: Label62
IL_08AA: ldarg.0
IL_08AB: ldfld System.Int32 RoadBaseAI::m_noiseAccumulation
IL_08B0: ldloc.s 21 (System.Int32)
IL_08B2: mul
IL_08B3: ldc.i4.s 100
IL_08B5: div
IL_08B6: stloc.s 35 (System.Int32)
IL_08B8: ldloc.s 35 (System.Int32)
IL_08BA: brfalse => Label63
IL_08BF: ldloc.s 11 (UnityEngine.Vector3)
IL_08C1: ldloc.s 12 (UnityEngine.Vector3)
IL_08C3: call static System.Single
UnityEngine.Vector3::Distance(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_08C8: stloc.s 36 (System.Single)
IL_08CA: ldloc.s 36 (System.Single)
IL_08CC: ldarg.0
IL_08CD: ldfld System.Single RoadBaseAI::m_noiseRadius
IL_08D2: div
IL_08D3: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single
f)
IL_08D8: stloc.s 37 (System.Int32)
IL_08DA: ldc.i4.0
IL_08DB: stloc.s 38 (System.Int32)
IL_08DD: br => Label64
IL_08E2: Label65
IL_08E2: ldloc.s 11 (UnityEngine.Vector3)
IL_08E4: ldloc.s 12 (UnityEngine.Vector3)
IL_08E6: ldloc.s 38 (System.Int32)
IL_08E8: ldc.i4.1
IL_08E9: add
IL_08EA: conv.r4
IL_08EB: ldloc.s 37 (System.Int32)
IL_08ED: ldc.i4.1
IL_08EE: add
IL_08EF: conv.r4
IL_08F0: div
IL_08F1: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_08F6: stloc.s 39 (UnityEngine.Vector3)
IL_08F8: call static ImmaterialResourceManager
ColossalFramework.Singleton`1<ImmaterialResourceManager>::get_instance()
IL_08FD: ldc.i4.8
IL_08FE: ldloc.s 35 (System.Int32)
IL_0900: ldloc.s 39 (UnityEngine.Vector3)
IL_0902: ldarg.0
IL_0903: ldfld System.Single RoadBaseAI::m_noiseRadius
IL_0908: callvirt System.Int32 ImmaterialResourceManager::AddResource(Resource
resource, System.Int32 rate, UnityEngine.Vector3 position, System.Single radius)
IL_090D: pop
IL_090E: ldloc.s 38 (System.Int32)
IL_0910: ldc.i4.1
IL_0911: add
IL_0912: stloc.s 38 (System.Int32)
IL_0914: Label64
IL_0914: ldloc.s 38 (System.Int32)
IL_0916: ldloc.s 37 (System.Int32)
IL_0918: blt => Label65
IL_091D: Label63
IL_091D: ldarg.2
IL_091E: ldfld System.Byte NetSegment::m_trafficDensity
IL_0923: ldc.i4.s 50
IL_0925: blt => Label66
IL_092A: ldarg.2
IL_092B: ldfld System.Single NetSegment::m_averageLength
IL_0930: ldc.r4 25
IL_0935: bge.un => Label67
IL_093A: ldloc.1
IL_093B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0940: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0945: ldarg.2
IL_0946: ldfld System.UInt16 NetSegment::m_startNode
IL_094B: ldelema NetNode
IL_0950: ldfld Flags NetNode::m_flags
IL_0955: ldc.i4 10485760
IL_095A: and
IL_095B: ldc.i4 8388608
IL_0960: bne.un => Label68
IL_0965: ldloc.1
IL_0966: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_096B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0970: ldarg.2
IL_0971: ldfld System.UInt16 NetSegment::m_endNode
IL_0976: ldelema NetNode
IL_097B: ldfld Flags NetNode::m_flags
IL_0980: ldc.i4 10485760
IL_0985: and
IL_0986: ldc.i4 8388608
IL_098B: bne.un => Label69
IL_0990: call static GuideManager
ColossalFramework.Singleton`1<GuideManager>::get_instance()
IL_0995: ldfld GuideController SimulationManagerBase`2<GuideManager,
GuideController>::m_properties
IL_099A: stloc.s 40 (GuideController)
IL_099C: ldloc.s 40 (GuideController)
IL_099E: brfalse => Label70
IL_09A3: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_09A8: ldfld NetSegmentInstanceGuide NetManager::m_shortRoadTraffic
IL_09AD: ldloc.s 40 (GuideController)
IL_09AF: ldfld GuideInfo GuideController::m_shortRoadTraffic
IL_09B4: ldarg.1
IL_09B5: ldc.i4.0
IL_09B6: callvirt System.Void NetSegmentInstanceGuide::Activate(GuideInfo
guideInfo, System.UInt16 segmentID, System.Boolean ignoreID)
IL_09BB: Label66
IL_09BB: Label67
IL_09BB: Label68
IL_09BB: Label69
IL_09BB: Label70
IL_09BB: ldarg.2
IL_09BC: ldfld Flags NetSegment::m_flags
IL_09C1: ldc.i4.8
IL_09C2: and
IL_09C3: brfalse => Label71
IL_09C8: call static GuideManager
ColossalFramework.Singleton`1<GuideManager>::get_instance()
IL_09CD: ldfld GuideController SimulationManagerBase`2<GuideManager,
GuideController>::m_properties
IL_09D2: stloc.s 41 (GuideController)
IL_09D4: ldloc.s 41 (GuideController)
IL_09D6: brfalse => Label72
IL_09DB: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_09E0: ldfld NetSegmentInstanceGuide NetManager::m_roadDestroyed
IL_09E5: ldloc.s 41 (GuideController)
IL_09E7: ldfld GuideInfo GuideController::m_roadDestroyed
IL_09EC: ldarg.1
IL_09ED: ldc.i4.0
IL_09EE: callvirt System.Void NetSegmentInstanceGuide::Activate(GuideInfo
guideInfo, System.UInt16 segmentID, System.Boolean ignoreID)
IL_09F3: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_09F8: ldfld ServiceTypeGuide NetManager::m_roadDestroyed2
IL_09FD: ldloc.s 41 (GuideController)
IL_09FF: ldfld GuideInfo GuideController::m_roadDestroyed2
IL_0A04: ldarg.0
IL_0A05: ldfld NetInfo NetAI::m_info
IL_0A0A: ldfld ItemClass NetInfo::m_class
IL_0A0F: ldfld Service ItemClass::m_service
IL_0A14: callvirt System.Void ServiceTypeGuide::Activate(GuideInfo guideInfo,
Service service)
IL_0A19: Label72
IL_0A19: ldloc.0
IL_0A1A: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0A1F: ldc.i4.8
IL_0A20: shr.un
IL_0A21: ldc.i4.s 15
IL_0A23: and
IL_0A24: conv.u8
IL_0A25: ldarg.1
IL_0A26: ldc.i4.s 15
IL_0A28: and
IL_0A29: conv.i8
IL_0A2A: bne.un => Label73
IL_0A2F: ldarg.2
IL_0A30: ldfld System.Single NetSegment::m_averageLength
IL_0A35: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_0A3A: stloc.s 42 (System.Int32)
IL_0A3C: call static StatisticsManager
ColossalFramework.Singleton`1<StatisticsManager>::get_instance()
IL_0A41: ldc.i4.s 53
IL_0A43: callvirt StatisticBase StatisticsManager::Acquire(StatisticType type)
IL_0A48: stloc.s 43 (StatisticBase)
IL_0A4A: ldloc.s 43 (StatisticBase)
IL_0A4C: ldloc.s 42 (System.Int32)
IL_0A4E: callvirt abstract virtual System.Void StatisticBase::Add(System.Int32
delta)
IL_0A53: Label71
IL_0A53: Label73
IL_0A53: ldarg.2
IL_0A54: ldloc.2
IL_0A55: stfld Problem NetSegment::m_problems
IL_0A5A: // end original
IL_0A5A: ret
DONE

### Patch: static System.Void


TrainTrackBaseAI::LevelCrossingSimulationStep(System.UInt16 nodeID, NetNode& data)
### Replacement: static System.Void
TrainTrackBaseAI::LevelCrossingSimulationStep_Patch0(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: // start original
IL_0000: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0005: stloc.0
IL_0006: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_000B: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldc.i4.0
IL_0014: stloc.3
IL_0015: ldc.i4.0
IL_0016: stloc.s 4 (System.Int32)
IL_0018: br => Label0
IL_001D: Label12
IL_001D: ldarg.1
IL_001E: ldloc.s 4 (System.Int32)
IL_0020: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0025: stloc.s 5 (System.UInt16)
IL_0027: ldloc.s 5 (System.UInt16)
IL_0029: brfalse => Label1
IL_002E: ldloc.0
IL_002F: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0034: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0039: ldloc.s 5 (System.UInt16)
IL_003B: ldelema NetSegment
IL_0040: call NetInfo NetSegment::get_Info()
IL_0045: stloc.s 6 (NetInfo)
IL_0047: ldloc.s 6 (NetInfo)
IL_0049: ldfld ItemClass NetInfo::m_class
IL_004E: ldfld Service ItemClass::m_service
IL_0053: ldc.i4.s 9
IL_0055: beq => Label2
IL_005A: ldloc.s 6 (NetInfo)
IL_005C: ldfld Lane[] NetInfo::m_lanes
IL_0061: brfalse => Label3
IL_0066: ldloc.0
IL_0067: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_006C: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0071: ldloc.s 5 (System.UInt16)
IL_0073: ldelema NetSegment
IL_0078: ldfld System.UInt16 NetSegment::m_startNode
IL_007D: ldarg.0
IL_007E: ceq
IL_0080: stloc.s 7 (System.Boolean)
IL_0082: ldloc.0
IL_0083: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0088: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_008D: ldloc.s 5 (System.UInt16)
IL_008F: ldelema NetSegment
IL_0094: ldfld System.UInt32 NetSegment::m_lanes
IL_0099: stloc.s 8 (System.UInt32)
IL_009B: ldc.i4.0
IL_009C: stloc.s 9 (System.Int32)
IL_009E: br => Label4
IL_00A3: Label10
IL_00A3: ldloc.s 6 (NetInfo)
IL_00A5: ldfld Lane[] NetInfo::m_lanes
IL_00AA: ldloc.s 9 (System.Int32)
IL_00AC: ldelem.ref
IL_00AD: ldfld LaneType Lane::m_laneType
IL_00B2: ldc.i4.1
IL_00B3: bne.un => Label5
IL_00B8: ldloc.0
IL_00B9: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00BE: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00C3: ldloc.s 8 (System.UInt32)
IL_00C5: conv.u
IL_00C6: ldelema NetLane
IL_00CB: ldloc.s 7 (System.Boolean)
IL_00CD: brfalse => Label6
IL_00D2: ldc.r4 0
IL_00D7: br => Label7
IL_00DC: Label6
IL_00DC: ldc.r4 1
IL_00E1: Label7
IL_00E1: call UnityEngine.Vector3 NetLane::CalculatePosition(System.Single
laneOffset)
IL_00E6: stloc.s 10 (UnityEngine.Vector3)
IL_00E8: ldloc.s 10 (UnityEngine.Vector3)
IL_00EA: call static System.Boolean
TrainTrackBaseAI::CheckOverlap(UnityEngine.Vector3 pos)
IL_00EF: brfalse => Label8
IL_00F4: ldc.i4.1
IL_00F5: stloc.2
IL_00F6: Label5
IL_00F6: Label8
IL_00F6: ldloc.0
IL_00F7: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00FC: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0101: ldloc.s 8 (System.UInt32)
IL_0103: conv.u
IL_0104: ldelema NetLane
IL_0109: ldfld System.UInt32 NetLane::m_nextLane
IL_010E: stloc.s 8 (System.UInt32)
IL_0110: ldloc.s 9 (System.Int32)
IL_0112: ldc.i4.1
IL_0113: add
IL_0114: stloc.s 9 (System.Int32)
IL_0116: Label4
IL_0116: ldloc.s 9 (System.Int32)
IL_0118: ldloc.s 6 (NetInfo)
IL_011A: ldfld Lane[] NetInfo::m_lanes
IL_011F: ldlen
IL_0120: conv.i4
IL_0121: bge => Label9
IL_0126: ldloc.s 8 (System.UInt32)
IL_0128: brtrue => Label10
IL_012D: Label3
IL_012D: Label9
IL_012D: ldarg.0
IL_012E: ldloc.0
IL_012F: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0134: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0139: ldloc.s 5 (System.UInt16)
IL_013B: ldelema NetSegment
IL_0140: ldloc.1
IL_0141: ldc.i4 256
IL_0146: sub
IL_0147: ldloca.s 11 (RoadBaseAI+TrafficLightState)
IL_0149: ldloca.s 12 (RoadBaseAI+TrafficLightState)
IL_014B: ldloca.s 13 (System.Boolean)
IL_014D: ldloca.s 14 (System.Boolean)
IL_014F: 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_0154: ldloc.s 13 (System.Boolean)
IL_0156: brfalse => Label11
IL_015B: ldc.i4.1
IL_015C: stloc.2
IL_015D: Label1
IL_015D: Label2
IL_015D: Label11
IL_015D: ldloc.s 4 (System.Int32)
IL_015F: ldc.i4.1
IL_0160: add
IL_0161: stloc.s 4 (System.Int32)
IL_0163: Label0
IL_0163: ldloc.s 4 (System.Int32)
IL_0165: ldc.i4.8
IL_0166: blt => Label12
IL_016B: ldloc.2
IL_016C: stloc.3
IL_016D: ldc.i4.0
IL_016E: stloc.s 15 (System.Int32)
IL_0170: br => Label13
IL_0175: Label27
IL_0175: ldarg.1
IL_0176: ldloc.s 15 (System.Int32)
IL_0178: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_017D: stloc.s 16 (System.UInt16)
IL_017F: ldloc.s 16 (System.UInt16)
IL_0181: brfalse => Label14
IL_0186: ldloc.0
IL_0187: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_018C: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0191: ldloc.s 16 (System.UInt16)
IL_0193: ldelema NetSegment
IL_0198: call NetInfo NetSegment::get_Info()
IL_019D: stloc.s 17 (NetInfo)
IL_019F: ldarg.0
IL_01A0: ldloc.0
IL_01A1: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01A6: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01AB: ldloc.s 16 (System.UInt16)
IL_01AD: ldelema NetSegment
IL_01B2: ldloc.1
IL_01B3: ldc.i4 256
IL_01B8: sub
IL_01B9: ldloca.s 18 (RoadBaseAI+TrafficLightState)
IL_01BB: ldloca.s 19 (RoadBaseAI+TrafficLightState)
IL_01BD: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_01C2: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01C4: ldc.i4.s -2
IL_01C6: and
IL_01C7: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01C9: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_01CB: ldc.i4.s -2
IL_01CD: and
IL_01CE: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_01D0: ldloc.s 17 (NetInfo)
IL_01D2: ldfld ItemClass NetInfo::m_class
IL_01D7: ldfld Service ItemClass::m_service
IL_01DC: ldc.i4.s 9
IL_01DE: bne.un => Label15
IL_01E3: ldloc.3
IL_01E4: brfalse => Label16
IL_01E9: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01EB: ldc.i4.2
IL_01EC: and
IL_01ED: brtrue => Label17
IL_01F2: ldc.i4.3
IL_01F3: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01F5: Label17
IL_01F5: br => Label18
IL_01FA: Label16
IL_01FA: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01FC: ldc.i4.2
IL_01FD: and
IL_01FE: brfalse => Label19
IL_0203: ldc.i4.1
IL_0204: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0206: Label18
IL_0206: Label19
IL_0206: ldc.i4.0
IL_0207: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0209: br => Label20
IL_020E: Label15
IL_020E: ldloc.3
IL_020F: brfalse => Label21
IL_0214: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0216: ldc.i4.2
IL_0217: and
IL_0218: brfalse => Label22
IL_021D: ldc.i4.1
IL_021E: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0220: Label22
IL_0220: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0222: ldc.i4.2
IL_0223: and
IL_0224: brtrue => Label23
IL_0229: ldc.i4.3
IL_022A: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_022C: Label23
IL_022C: br => Label24
IL_0231: Label21
IL_0231: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0233: ldc.i4.2
IL_0234: and
IL_0235: brtrue => Label25
IL_023A: ldc.i4.3
IL_023B: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_023D: Label25
IL_023D: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_023F: ldc.i4.2
IL_0240: and
IL_0241: brfalse => Label26
IL_0246: ldc.i4.1
IL_0247: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0249: Label20
IL_0249: Label24
IL_0249: Label26
IL_0249: ldarg.0
IL_024A: ldloc.0
IL_024B: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0250: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0255: ldloc.s 16 (System.UInt16)
IL_0257: ldelema NetSegment
IL_025C: ldloc.1
IL_025D: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_025F: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0261: ldc.i4.0
IL_0262: ldc.i4.0
IL_0263: 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_0268: Label14
IL_0268: ldloc.s 15 (System.Int32)
IL_026A: ldc.i4.1
IL_026B: add
IL_026C: stloc.s 15 (System.Int32)
IL_026E: Label13
IL_026E: ldloc.s 15 (System.Int32)
IL_0270: ldc.i4.8
IL_0271: blt => Label27
IL_0276: // end original
IL_0276: ret
DONE

### Patch: virtual System.Void HumanAI::ArriveAtDestination(System.UInt16


instanceID, CitizenInstance& citizenData, System.Boolean success)
### Replacement: static System.Void HumanAI::ArriveAtDestination_Patch0(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: // start original
IL_0000: ldarg.2
IL_0001: ldfld System.UInt32 CitizenInstance::m_citizen
IL_0006: stloc.0
IL_0007: ldloc.0
IL_0008: brfalse => Label0
IL_000D: call static CitizenManager
ColossalFramework.Singleton`1<CitizenManager>::get_instance()
IL_0012: stloc.1
IL_0013: ldloc.1
IL_0014: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0019: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_001E: ldloc.0
IL_001F: conv.u
IL_0020: ldelema Citizen
IL_0025: ldloc.0
IL_0026: ldc.i4.0
IL_0027: ldc.i4.0
IL_0028: call System.Void Citizen::SetVehicle(System.UInt32 citizenID,
System.UInt16 vehicleID, System.UInt32 unitID)
IL_002D: ldarg.2
IL_002E: ldfld Flags CitizenInstance::m_flags
IL_0033: ldc.i4 134217728
IL_0038: and
IL_0039: brfalse => Label1
IL_003E: ldarg.3
IL_003F: brfalse => Label2
IL_0044: ldarg.2
IL_0045: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_004A: stloc.2
IL_004B: ldloc.2
IL_004C: brfalse => Label3
IL_0051: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0056: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_005B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0060: ldloc.2
IL_0061: ldelema NetNode
IL_0066: ldfld System.UInt16 NetNode::m_transportLine
IL_006B: stloc.3
IL_006C: ldloc.3
IL_006D: brfalse => Label4
IL_0072: call static TransportManager
ColossalFramework.Singleton`1<TransportManager>::get_instance()
IL_0077: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_007C: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_0081: ldloc.3
IL_0082: ldelema TransportLine
IL_0087: call TransportInfo TransportLine::get_Info()
IL_008C: stloc.s 4 (TransportInfo)
IL_008E: ldloc.s 4 (TransportInfo)
IL_0090: ldfld VehicleType TransportInfo::m_vehicleType
IL_0095: brtrue => Label5
IL_009A: ldarg.1
IL_009B: ldc.i4.1
IL_009C: and
IL_009D: brtrue => Label6
IL_00A2: ldloc.2
IL_00A3: call static System.UInt16 TransportLine::GetNextStop(System.UInt16
stop)
IL_00A8: stloc.2
IL_00A9: br => Label7
IL_00AE: Label6
IL_00AE: ldloc.2
IL_00AF: call static System.UInt16 TransportLine::GetPrevStop(System.UInt16
stop)
IL_00B4: stloc.2
IL_00B5: Label7
IL_00B5: ldloc.2
IL_00B6: brfalse => Label8
IL_00BB: ldarg.2
IL_00BC: dup
IL_00BD: ldfld Flags CitizenInstance::m_flags
IL_00C2: ldc.i4 268435456
IL_00C7: or
IL_00C8: stfld Flags CitizenInstance::m_flags
IL_00CD: ldarg.0
IL_00CE: ldarg.1
IL_00CF: ldarg.2
IL_00D0: ldloc.2
IL_00D1: ldc.i4.1
IL_00D2: callvirt virtual System.Void CitizenAI::SetTarget(System.UInt16
instanceID, CitizenInstance& data, System.UInt16 targetIndex, System.Boolean
targetIsNode)
IL_00D7: br => Label16
IL_00DC: Label8
IL_00DC: br => Label9
IL_00E1: Label5
IL_00E1: ldarg.2
IL_00E2: dup
IL_00E3: ldfld Flags CitizenInstance::m_flags
IL_00E8: ldc.i4 268435456
IL_00ED: or
IL_00EE: stfld Flags CitizenInstance::m_flags
IL_00F3: ldarg.0
IL_00F4: ldarg.1
IL_00F5: ldarg.2
IL_00F6: ldloc.2
IL_00F7: call System.Void HumanAI::WaitTouristVehicle(System.UInt16
instanceID, CitizenInstance& citizenData, System.UInt16 stop)
IL_00FC: br => Label17
IL_0101: Label2
IL_0101: Label3
IL_0101: Label4
IL_0101: Label9
IL_0101: br => Label10
IL_0106: Label1
IL_0106: ldarg.3
IL_0107: brfalse => Label11
IL_010C: ldloc.1
IL_010D: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0112: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0117: ldloc.0
IL_0118: conv.u
IL_0119: ldelema Citizen
IL_011E: ldloc.0
IL_011F: ldarg.2
IL_0120: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_0125: call System.Void Citizen::SetLocationByBuilding(System.UInt32
citizenID, System.UInt16 buildingID)
IL_012A: Label11
IL_012A: ldarg.2
IL_012B: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_0130: brfalse => Label12
IL_0135: ldloc.1
IL_0136: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_013B: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0140: ldloc.0
IL_0141: conv.u
IL_0142: ldelema Citizen
IL_0147: call Location Citizen::get_CurrentLocation()
IL_014C: ldc.i4.2
IL_014D: bne.un => Label13
IL_0152: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0157: stloc.s 5 (BuildingManager)
IL_0159: ldloc.s 5 (BuildingManager)
IL_015B: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0160: ldfld Building[] Array16`1<Building>::m_buffer
IL_0165: ldarg.2
IL_0166: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_016B: ldelema Building
IL_0170: call BuildingInfo Building::get_Info()
IL_0175: stloc.s 6 (BuildingInfo)
IL_0177: ldloc.s 6 (BuildingInfo)
IL_0179: ldfld BuildingAI BuildingInfo::m_buildingAI
IL_017E: ldarg.2
IL_017F: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_0184: ldloc.s 5 (BuildingManager)
IL_0186: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_018B: ldfld Building[] Array16`1<Building>::m_buffer
IL_0190: ldarg.2
IL_0191: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_0196: ldelema Building
IL_019B: ldloc.0
IL_019C: callvirt virtual System.Void BuildingAI::VisitorEnter(System.UInt16
buildingID, Building& data, System.UInt32 citizen)
IL_01A1: Label0
IL_01A1: Label10
IL_01A1: Label12
IL_01A1: Label13
IL_01A1: ldarg.2
IL_01A2: ldfld Flags CitizenInstance::m_flags
IL_01A7: ldc.i4.s 64
IL_01A9: and
IL_01AA: brfalse => Label14
IL_01AF: ldarg.3
IL_01B0: brtrue => Label15
IL_01B5: Label14
IL_01B5: ldarg.0
IL_01B6: ldarg.1
IL_01B7: ldarg.2
IL_01B8: ldc.i4.0
IL_01B9: callvirt virtual System.Void CitizenAI::SetSource(System.UInt16
instanceID, CitizenInstance& data, System.UInt16 sourceBuilding)
IL_01BE: ldarg.0
IL_01BF: ldarg.1
IL_01C0: ldarg.2
IL_01C1: ldc.i4.0
IL_01C2: call System.Void CitizenAI::SetTarget(System.UInt16 instanceID,
CitizenInstance& data, System.UInt16 targetBuilding)
IL_01C7: ldarg.2
IL_01C8: ldarg.1
IL_01C9: call System.Void CitizenInstance::Unspawn(System.UInt16 instanceID)
IL_01CE: // end original
IL_01CE: Label15
IL_01CE: Label16
IL_01CE: Label17
IL_01CE: ret
DONE

### Patch: virtual System.Void CommonBuildingAI::SimulationStep(System.UInt16


buildingID, Building& data)
### Replacement: static System.Void
CommonBuildingAI::SimulationStep_Patch0(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: // start original
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: ldarg.2
IL_0003: call virtual System.Void BuildingAI::SimulationStep(System.UInt16
buildingID, Building& data)
IL_0008: ldarg.2
IL_0009: ldfld Flags Building::m_flags
IL_000E: ldc.i4 524288
IL_0013: and
IL_0014: brfalse => Label0
IL_0019: ldarg.1
IL_001A: ldc.i4.8
IL_001B: shl
IL_001C: ldc.i4 49152
IL_0021: div.un
IL_0022: stloc.0
IL_0023: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0028: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_002D: ldloc.0
IL_002E: sub
IL_002F: stloc.1
IL_0030: ldarg.2
IL_0031: ldfld Flags Building::m_flags
IL_0036: ldc.i4 4194304
IL_003B: and
IL_003C: brfalse => Label1
IL_0041: ldarg.2
IL_0042: ldloc.1
IL_0043: ldc.i4 256
IL_0048: sub
IL_0049: call Frame Building::GetFrameData(System.UInt32 simulationFrame)
IL_004E: stloc.2
IL_004F: ldloca.s 2 (Building+Frame)
IL_0051: ldfld System.Byte Frame::m_constructState
IL_0056: brtrue => Label2
IL_005B: Label1
IL_005B: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0060: ldarg.1
IL_0061: callvirt System.Void BuildingManager::ReleaseBuilding(System.UInt16
building)
IL_0066: // end original
IL_0066: Label0
IL_0066: Label2
IL_0066: ret
DONE

### Patch: System.Void RoadWorldInfoPanel::OnAdjustRoadButton()


### Replacement: static System.Void
RoadWorldInfoPanel::OnAdjustRoadButton_Patch0(RoadWorldInfoPanel this)
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: ldc.i4.s 30
IL_0007: ldc.i4.2
IL_0008: callvirt System.Void InfoManager::SetCurrentMode(InfoMode mode,
SubInfoMode subMode)
IL_000D: ldarg.0
IL_000E: call System.Void WorldInfoPanel::Hide()
IL_0013: // end original
IL_0013: ret
DONE

### Patch: System.Void NetSegment::CalculateSegment(System.UInt16 segmentID)


### Replacement: static System.Void NetSegment::CalculateSegment_Patch0(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<NetManager>::get_instance()
IL_0036: stloc.0
IL_0037: ldloc.0
IL_0038: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0074: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16>
NetManager::m_updateNameVisibility
IL_00CF: ldarg.1
IL_00D0: callvirt System.Boolean
System.Collections.Generic.HashSet`1<System.UInt16>::Add(System.UInt16 item)
IL_00D5: pop
IL_00D6: // end original
IL_00D6: Label0
IL_00D6: ret
DONE

### Patch: System.Void LoadAssetPanel::OnLoad()


### Replacement: static System.Void LoadAssetPanel::OnLoad_Patch0(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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<CustomAssetMetaData>::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<CustomAssetMetaData>::GetListingMetaData(System.Int32 index)
IL_0037: stloc.0
IL_0038: ldarg.0
IL_0039: ldloc.0
IL_003A: call System.Void
LoadSavePanelBase`1<CustomAssetMetaData>::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<CustomAssetMetaData>::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<SimulationManager>::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<SimulationManager>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_010B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<VehicleInfo>::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<VehicleInfo>::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<VehicleInfo>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_023B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<BuildingInfo>::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<BuildingInfo>::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<BuildingInfo>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_036B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<BuildingInfo>::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<BuildingInfo>::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<BuildingInfo>::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<BuildingManager>::get_instance()
IL_0482: callvirt virtual System.Void SimulationManagerBase`2<BuildingManager,
BuildingProperties>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_04A5: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<BuildingInfo>::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<CitizenInfo>::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<VehicleInfo>::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<PropInfo>::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<TreeInfo>::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<NetInfo>::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: ret
DONE

### Patch: System.Void InfoManager::SetMode(InfoMode mode, SubInfoMode subMode)


### Replacement: static System.Void InfoManager::SetMode_Patch0(InfoManager this,
InfoMode mode, SubInfoMode subMode)
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: stfld InfoMode InfoManager::m_currentMode
IL_0007: ldarg.0
IL_0008: ldarg.2
IL_0009: stfld SubInfoMode InfoManager::m_currentSubMode
IL_000E: ldarg.1
IL_000F: ldc.i4.1
IL_0010: sub
IL_0011: 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
IL_00AA: br => Label37
IL_00AF: Label0
IL_00AF: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00B4: ldc.i4.0
IL_00B5: ldc.i4.0
IL_00B6: ldc.i4.m1
IL_00B7: ldc.r4 300
IL_00BC: ldc.i4.0
IL_00BD: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_00C2: br => Label38
IL_00C7: Label1
IL_00C7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00CC: ldc.i4.0
IL_00CD: ldc.i4.0
IL_00CE: ldc.i4.m1
IL_00CF: ldc.r4 300
IL_00D4: ldc.i4.0
IL_00D5: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_00DA: br => Label39
IL_00DF: Label2
IL_00DF: ldarg.2
IL_00E0: brtrue => Label40
IL_00E5: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00EA: ldc.i4.s 15
IL_00EC: ldc.i4.0
IL_00ED: ldc.i4.0
IL_00EE: ldc.r4 500
IL_00F3: ldc.i4.0
IL_00F4: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_00F9: br => Label41
IL_00FE: Label40
IL_00FE: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0103: ldc.i4.0
IL_0104: ldc.i4.0
IL_0105: ldc.i4.m1
IL_0106: ldc.r4 300
IL_010B: ldc.i4.0
IL_010C: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0111: Label41
IL_0111: br => Label42
IL_0116: Label3
IL_0116: ldarg.2
IL_0117: ldc.i4.1
IL_0118: bne.un => Label43
IL_011D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0122: ldc.i4.s 14
IL_0124: ldc.i4.0
IL_0125: ldc.i4.1
IL_0126: ldc.r4 500
IL_012B: ldc.i4.0
IL_012C: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0131: br => Label44
IL_0136: Label43
IL_0136: ldarg.2
IL_0137: ldc.i4.3
IL_0138: bne.un => Label45
IL_013D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0142: ldc.i4.s 14
IL_0144: ldc.i4.0
IL_0145: ldc.i4.4
IL_0146: ldc.r4 500
IL_014B: ldc.i4.0
IL_014C: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0151: br => Label46
IL_0156: Label45
IL_0156: ldarg.2
IL_0157: ldc.i4.2
IL_0158: bne.un => Label47
IL_015D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0162: ldc.i4.s 14
IL_0164: ldc.i4.0
IL_0165: ldc.i4.3
IL_0166: ldc.r4 500
IL_016B: ldc.i4.0
IL_016C: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0171: br => Label48
IL_0176: Label47
IL_0176: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_017B: ldc.i4.s 14
IL_017D: ldc.i4.0
IL_017E: ldc.i4.0
IL_017F: ldc.r4 500
IL_0184: ldc.i4.0
IL_0185: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_018A: Label44
IL_018A: Label46
IL_018A: Label48
IL_018A: br => Label49
IL_018F: Label12
IL_018F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0194: ldc.i4.0
IL_0195: ldc.i4.0
IL_0196: ldc.i4.m1
IL_0197: ldc.r4 300
IL_019C: ldc.i4.0
IL_019D: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01A2: br => Label50
IL_01A7: Label4
IL_01A7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01AC: ldc.i4.0
IL_01AD: ldc.i4.0
IL_01AE: ldc.i4.m1
IL_01AF: ldc.r4 300
IL_01B4: ldc.i4.0
IL_01B5: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01BA: br => Label51
IL_01BF: Label5
IL_01BF: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01C4: ldc.i4.0
IL_01C5: ldc.i4.0
IL_01C6: ldc.i4.m1
IL_01C7: ldc.r4 300
IL_01CC: ldc.i4.0
IL_01CD: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01D2: br => Label52
IL_01D7: Label8
IL_01D7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01DC: ldc.i4.0
IL_01DD: ldc.i4.0
IL_01DE: ldc.i4.m1
IL_01DF: ldc.r4 300
IL_01E4: ldc.i4.0
IL_01E5: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01EA: br => Label53
IL_01EF: Label6
IL_01EF: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01F4: ldc.i4.0
IL_01F5: ldc.i4.0
IL_01F6: ldc.i4.m1
IL_01F7: ldc.r4 300
IL_01FC: ldc.i4.0
IL_01FD: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0202: br => Label54
IL_0207: Label7
IL_0207: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_020C: ldc.i4.0
IL_020D: ldc.i4.0
IL_020E: ldc.i4.m1
IL_020F: ldc.r4 300
IL_0214: ldc.i4.0
IL_0215: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_021A: br => Label55
IL_021F: Label9
IL_021F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0224: ldc.i4.0
IL_0225: ldc.i4.0
IL_0226: ldc.i4.m1
IL_0227: ldc.r4 300
IL_022C: ldc.i4.0
IL_022D: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0232: br => Label56
IL_0237: Label10
IL_0237: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_023C: ldc.i4.0
IL_023D: ldc.i4.0
IL_023E: ldc.i4.m1
IL_023F: ldc.r4 300
IL_0244: ldc.i4.0
IL_0245: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_024A: br => Label57
IL_024F: Label11
IL_024F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0254: ldc.i4.0
IL_0255: ldc.i4.0
IL_0256: ldc.i4.m1
IL_0257: ldc.r4 300
IL_025C: ldc.i4.0
IL_025D: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0262: br => Label58
IL_0267: Label14
IL_0267: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_026C: ldc.i4.0
IL_026D: ldc.i4.0
IL_026E: ldc.i4.m1
IL_026F: ldc.r4 300
IL_0274: ldc.i4.0
IL_0275: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_027A: br => Label59
IL_027F: Label17
IL_027F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0284: ldc.i4.s 18
IL_0286: ldc.i4.0
IL_0287: ldc.i4.0
IL_0288: ldc.r4 500
IL_028D: ldc.i4.0
IL_028E: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0293: br => Label60
IL_0298: Label19
IL_0298: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_029D: ldc.i4.0
IL_029E: ldc.i4.0
IL_029F: ldc.i4.m1
IL_02A0: ldc.r4 300
IL_02A5: ldc.i4.1
IL_02A6: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02AB: br => Label61
IL_02B0: Label18
IL_02B0: ldarg.2
IL_02B1: ldc.i4.1
IL_02B2: bne.un => Label62
IL_02B7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02BC: ldc.i4.s 16
IL_02BE: ldc.i4.0
IL_02BF: ldc.i4.1
IL_02C0: ldc.r4 500
IL_02C5: ldc.i4.1
IL_02C6: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02CB: br => Label63
IL_02D0: Label62
IL_02D0: ldarg.2
IL_02D1: ldc.i4.2
IL_02D2: bne.un => Label64
IL_02D7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02DC: ldc.i4.s 16
IL_02DE: ldc.i4.0
IL_02DF: ldc.i4.2
IL_02E0: ldc.r4 500
IL_02E5: ldc.i4.1
IL_02E6: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02EB: br => Label65
IL_02F0: Label64
IL_02F0: ldarg.2
IL_02F1: brtrue => Label66
IL_02F6: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02FB: ldc.i4.s 16
IL_02FD: ldc.i4.0
IL_02FE: ldc.i4.0
IL_02FF: ldc.r4 500
IL_0304: ldc.i4.1
IL_0305: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_030A: br => Label67
IL_030F: Label66
IL_030F: ldarg.2
IL_0310: ldc.i4.4
IL_0311: bne.un => Label68
IL_0316: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_031B: ldc.i4.s 16
IL_031D: ldc.i4.0
IL_031E: ldc.i4.3
IL_031F: ldc.r4 500
IL_0324: ldc.i4.1
IL_0325: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_032A: br => Label69
IL_032F: Label68
IL_032F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0334: ldc.i4.s 16
IL_0336: ldc.i4.0
IL_0337: ldc.i4.2
IL_0338: ldc.r4 500
IL_033D: ldc.i4.1
IL_033E: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0343: Label63
IL_0343: Label65
IL_0343: Label67
IL_0343: Label69
IL_0343: br => Label70
IL_0348: Label16
IL_0348: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_034D: ldc.i4.0
IL_034E: ldc.i4.0
IL_034F: ldc.i4.m1
IL_0350: ldc.r4 300
IL_0355: ldc.i4.0
IL_0356: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_035B: br => Label71
IL_0360: Label13
IL_0360: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0365: ldc.i4.0
IL_0366: ldc.i4.0
IL_0367: ldc.i4.m1
IL_0368: ldc.r4 300
IL_036D: ldc.i4.0
IL_036E: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0373: br => Label72
IL_0378: Label15
IL_0378: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_037D: ldc.i4.s 13
IL_037F: ldc.i4.0
IL_0380: ldc.i4.m1
IL_0381: ldc.r4 2000
IL_0386: ldc.i4.0
IL_0387: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_038C: br => Label73
IL_0391: Label20
IL_0391: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0396: ldc.i4.0
IL_0397: ldc.i4.0
IL_0398: ldc.i4.m1
IL_0399: ldc.r4 300
IL_039E: ldc.i4.0
IL_039F: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03A4: br => Label74
IL_03A9: Label21
IL_03A9: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03AE: ldc.i4.0
IL_03AF: ldc.i4.0
IL_03B0: ldc.i4.m1
IL_03B1: ldc.r4 300
IL_03B6: ldc.i4.0
IL_03B7: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03BC: br => Label75
IL_03C1: Label22
IL_03C1: ldarg.2
IL_03C2: brtrue => Label76
IL_03C7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03CC: ldc.i4.s 9
IL_03CE: ldc.i4.0
IL_03CF: ldc.i4.1
IL_03D0: ldc.r4 2000
IL_03D5: ldc.i4.0
IL_03D6: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03DB: br => Label77
IL_03E0: Label76
IL_03E0: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03E5: ldc.i4.0
IL_03E6: ldc.i4.0
IL_03E7: ldc.i4.m1
IL_03E8: ldc.r4 300
IL_03ED: ldc.i4.0
IL_03EE: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03F3: Label77
IL_03F3: br => Label78
IL_03F8: Label23
IL_03F8: ldarg.2
IL_03F9: brtrue => Label79
IL_03FE: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0403: ldc.i4.s 9
IL_0405: ldc.i4.0
IL_0406: ldc.i4.3
IL_0407: ldc.r4 2000
IL_040C: ldc.i4.0
IL_040D: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0412: br => Label80
IL_0417: Label79
IL_0417: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_041C: ldc.i4.0
IL_041D: ldc.i4.0
IL_041E: ldc.i4.m1
IL_041F: ldc.r4 300
IL_0424: ldc.i4.0
IL_0425: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_042A: Label80
IL_042A: br => Label81
IL_042F: Label24
IL_042F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0434: ldc.i4.s 20
IL_0436: ldc.i4.0
IL_0437: ldc.i4.3
IL_0438: ldc.r4 500
IL_043D: ldc.i4.1
IL_043E: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0443: br => Label82
IL_0448: Label25
IL_0448: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_044D: ldc.i4.0
IL_044E: ldc.i4.0
IL_044F: ldc.i4.m1
IL_0450: ldc.r4 300
IL_0455: ldc.i4.0
IL_0456: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_045B: br => Label83
IL_0460: Label26
IL_0460: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0465: ldc.i4.s 20
IL_0467: ldc.i4.0
IL_0468: ldc.i4.1
IL_0469: ldc.r4 2000
IL_046E: ldc.i4.0
IL_046F: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0474: br => Label84
IL_0479: Label27
IL_0479: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_047E: ldc.i4.0
IL_047F: ldc.i4.0
IL_0480: ldc.i4.m1
IL_0481: ldc.r4 300
IL_0486: ldc.i4.0
IL_0487: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_048C: br => Label85
IL_0491: Label28
IL_0491: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0496: ldc.i4.0
IL_0497: ldc.i4.0
IL_0498: ldc.i4.m1
IL_0499: ldc.r4 300
IL_049E: ldc.i4.0
IL_049F: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04A4: br => Label86
IL_04A9: Label29
IL_04A9: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04AE: ldc.i4.0
IL_04AF: ldc.i4.0
IL_04B0: ldc.i4.m1
IL_04B1: ldc.r4 300
IL_04B6: ldc.i4.0
IL_04B7: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04BC: br => Label87
IL_04C1: Label30
IL_04C1: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04C6: ldc.i4.0
IL_04C7: ldc.i4.0
IL_04C8: ldc.i4.m1
IL_04C9: ldc.r4 300
IL_04CE: ldc.i4.0
IL_04CF: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04D4: br => Label88
IL_04D9: Label31
IL_04D9: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04DE: ldc.i4.0
IL_04DF: ldc.i4.0
IL_04E0: ldc.i4.m1
IL_04E1: ldc.r4 300
IL_04E6: ldc.i4.0
IL_04E7: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04EC: br => Label89
IL_04F1: Label32
IL_04F1: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04F6: ldc.i4.s 12
IL_04F8: ldc.i4.s 17
IL_04FA: ldc.i4.1
IL_04FB: ldc.r4 2000
IL_0500: ldc.i4.0
IL_0501: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0506: br => Label90
IL_050B: Label33
IL_050B: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0510: ldc.i4.0
IL_0511: ldc.i4.0
IL_0512: ldc.i4.m1
IL_0513: ldc.r4 300
IL_0518: ldc.i4.0
IL_0519: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_051E: br => Label91
IL_0523: Label34
IL_0523: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0528: ldc.i4.s 19
IL_052A: ldc.i4.s 28
IL_052C: ldc.i4.1
IL_052D: ldc.r4 500
IL_0532: ldc.i4.0
IL_0533: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0538: br => Label92
IL_053D: Label35
IL_053D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0542: ldc.i4.0
IL_0543: ldc.i4.0
IL_0544: ldc.i4.m1
IL_0545: ldc.r4 300
IL_054A: ldc.i4.0
IL_054B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0550: br => Label93
IL_0555: Label36
IL_0555: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_055A: ldc.i4.0
IL_055B: ldc.i4.0
IL_055C: ldc.i4.m1
IL_055D: ldc.r4 300
IL_0562: ldc.i4.0
IL_0563: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0568: br => Label94
IL_056D: Label37
IL_056D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0572: ldc.i4.0
IL_0573: ldc.i4.0
IL_0574: ldc.i4.m1
IL_0575: ldc.r4 300
IL_057A: ldc.i4.0
IL_057B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0580: br => Label95
IL_0585: // end original
IL_0585: Label38
IL_0585: Label39
IL_0585: Label42
IL_0585: Label49
IL_0585: Label50
IL_0585: Label51
IL_0585: Label52
IL_0585: Label53
IL_0585: Label54
IL_0585: Label55
IL_0585: Label56
IL_0585: Label57
IL_0585: Label58
IL_0585: Label59
IL_0585: Label60
IL_0585: Label61
IL_0585: Label70
IL_0585: Label71
IL_0585: Label72
IL_0585: Label73
IL_0585: Label74
IL_0585: Label75
IL_0585: Label78
IL_0585: Label81
IL_0585: Label82
IL_0585: Label83
IL_0585: Label84
IL_0585: Label85
IL_0585: Label86
IL_0585: Label87
IL_0585: Label88
IL_0585: Label89
IL_0585: Label90
IL_0585: Label91
IL_0585: Label92
IL_0585: Label93
IL_0585: Label94
IL_0585: Label95
IL_0585: ret
DONE

### Patch: virtual System.Void DefaultTool::OnToolGUI(UnityEngine.Event e)


### Replacement: static System.Void DefaultTool::OnToolGUI_Patch0(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<SimulationManager>::get_instance()
IL_0046: ldarg.0
IL_0047: ldftn System.Void DefaultTool::<OnToolGUI>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<InstanceManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<BuildingManager>::get_instance()
IL_017E: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0183: ldfld Building[] Array16`1<Building>::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<SimulationManager>::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<SimulationManager>::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::<OnToolGUI>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<SimulationManager>::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::<OnToolGUI>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<LogChannel>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<BuildingManager>::get_instance()
IL_04D2: stloc.s 13 (BuildingManager)
IL_04D4: ldloc.s 13 (BuildingManager)
IL_04D6: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_04DB: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_04FA: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0555: ldfld Building[] Array16`1<Building>::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<VehicleManager>::get_instance()
IL_0590: stloc.s 16 (VehicleManager)
IL_0592: ldloc.s 16 (VehicleManager)
IL_0594: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0599: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_05B8: ldfld Vehicle[] Array16`1<Vehicle>::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})"
IL_05DD: ldc.i4.2
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: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_0601: stloc.s 12 (System.String)
IL_0603: ldloc.s 17 (VehicleInfo)
IL_0605: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_060A: ldloc.s 8 (System.UInt16)
IL_060C: ldloc.s 16 (VehicleManager)
IL_060E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0613: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0618: ldloc.s 8 (System.UInt16)
IL_061A: ldelema Vehicle
IL_061F: callvirt virtual System.String VehicleAI::GetDebugString(System.UInt16
vehicleID, Vehicle& data)
IL_0624: stloc.s 18 (System.String)
IL_0626: ldloc.s 18 (System.String)
IL_0628: brfalse => Label68
IL_062D: ldloc.s 12 (System.String)
IL_062F: ldstr "\n"
IL_0634: ldloc.s 18 (System.String)
IL_0636: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_063B: stloc.s 12 (System.String)
IL_063D: Label66
IL_063D: Label67
IL_063D: Label68
IL_063D: br => Label69
IL_0642: Label65
IL_0642: ldloc.s 9 (System.UInt16)
IL_0644: brfalse => Label70
IL_0649: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_064E: stloc.s 19 (VehicleManager)
IL_0650: ldloc.s 19 (VehicleManager)
IL_0652: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_0657: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_065C: ldloc.s 9 (System.UInt16)
IL_065E: ldelema VehicleParked
IL_0663: ldfld System.UInt16 VehicleParked::m_flags
IL_0668: ldc.i4.1
IL_0669: and
IL_066A: brfalse => Label71
IL_066F: ldloc.s 19 (VehicleManager)
IL_0671: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_0676: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_067B: ldloc.s 9 (System.UInt16)
IL_067D: ldelema VehicleParked
IL_0682: call VehicleInfo VehicleParked::get_Info()
IL_0687: stloc.s 20 (VehicleInfo)
IL_0689: ldloc.s 20 (VehicleInfo)
IL_068B: ldnull
IL_068C: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0691: brfalse => Label72
IL_0696: ldstr "{0} ({1})"
IL_069B: ldc.i4.2
IL_069C: newarr System.Object
IL_06A1: dup
IL_06A2: ldc.i4.0
IL_06A3: ldloc.s 20 (VehicleInfo)
IL_06A5: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_06AA: callvirt System.String UnityEngine.Object::get_name()
IL_06AF: stelem.ref
IL_06B0: dup
IL_06B1: ldc.i4.1
IL_06B2: ldloc.s 9 (System.UInt16)
IL_06B4: box System.UInt16
IL_06B9: stelem.ref
IL_06BA: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_06BF: stloc.s 12 (System.String)
IL_06C1: ldloc.s 20 (VehicleInfo)
IL_06C3: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_06C8: ldloc.s 9 (System.UInt16)
IL_06CA: ldloc.s 19 (VehicleManager)
IL_06CC: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_06D1: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_06D6: ldloc.s 9 (System.UInt16)
IL_06D8: ldelema VehicleParked
IL_06DD: callvirt virtual System.String VehicleAI::GetDebugString(System.UInt16
parkedVehicleID, VehicleParked& data)
IL_06E2: stloc.s 21 (System.String)
IL_06E4: ldloc.s 21 (System.String)
IL_06E6: brfalse => Label73
IL_06EB: ldloc.s 12 (System.String)
IL_06ED: ldstr "\n"
IL_06F2: ldloc.s 21 (System.String)
IL_06F4: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_06F9: stloc.s 12 (System.String)
IL_06FB: Label71
IL_06FB: Label72
IL_06FB: Label73
IL_06FB: br => Label74
IL_0700: Label70
IL_0700: ldloc.s 10 (System.UInt16)
IL_0702: brfalse => Label75
IL_0707: call static CitizenManager
ColossalFramework.Singleton`1<CitizenManager>::get_instance()
IL_070C: stloc.s 22 (CitizenManager)
IL_070E: ldloc.s 22 (CitizenManager)
IL_0710: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0715: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_071A: ldloc.s 10 (System.UInt16)
IL_071C: ldelema CitizenInstance
IL_0721: ldfld Flags CitizenInstance::m_flags
IL_0726: ldc.i4.1
IL_0727: and
IL_0728: brfalse => Label76
IL_072D: ldloc.s 22 (CitizenManager)
IL_072F: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0734: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0739: ldloc.s 10 (System.UInt16)
IL_073B: ldelema CitizenInstance
IL_0740: call CitizenInfo CitizenInstance::get_Info()
IL_0745: stloc.s 23 (CitizenInfo)
IL_0747: ldloc.s 23 (CitizenInfo)
IL_0749: ldnull
IL_074A: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_074F: brfalse => Label77
IL_0754: ldstr "{0} ({1})"
IL_0759: ldc.i4.2
IL_075A: newarr System.Object
IL_075F: dup
IL_0760: ldc.i4.0
IL_0761: ldloc.s 23 (CitizenInfo)
IL_0763: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_0768: callvirt System.String UnityEngine.Object::get_name()
IL_076D: stelem.ref
IL_076E: dup
IL_076F: ldc.i4.1
IL_0770: ldloc.s 10 (System.UInt16)
IL_0772: box System.UInt16
IL_0777: stelem.ref
IL_0778: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_077D: stloc.s 12 (System.String)
IL_077F: ldloc.s 23 (CitizenInfo)
IL_0781: ldfld CitizenAI CitizenInfo::m_citizenAI
IL_0786: ldloc.s 10 (System.UInt16)
IL_0788: ldloc.s 22 (CitizenManager)
IL_078A: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_078F: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0794: ldloc.s 10 (System.UInt16)
IL_0796: ldelema CitizenInstance
IL_079B: callvirt virtual System.String CitizenAI::GetDebugString(System.UInt16
instanceID, CitizenInstance& data)
IL_07A0: stloc.s 24 (System.String)
IL_07A2: ldloc.s 24 (System.String)
IL_07A4: brfalse => Label78
IL_07A9: ldloc.s 12 (System.String)
IL_07AB: ldstr "\n"
IL_07B0: ldloc.s 24 (System.String)
IL_07B2: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_07B7: stloc.s 12 (System.String)
IL_07B9: Label76
IL_07B9: Label77
IL_07B9: Label78
IL_07B9: br => Label79
IL_07BE: Label75
IL_07BE: ldloc.s 11 (System.UInt16)
IL_07C0: brfalse => Label80
IL_07C5: call static TransportManager
ColossalFramework.Singleton`1<TransportManager>::get_instance()
IL_07CA: stloc.s 25 (TransportManager)
IL_07CC: ldloc.s 25 (TransportManager)
IL_07CE: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_07D3: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_07D8: ldloc.s 11 (System.UInt16)
IL_07DA: ldelema TransportLine
IL_07DF: ldfld Flags TransportLine::m_flags
IL_07E4: ldc.i4.1
IL_07E5: and
IL_07E6: brfalse => Label81
IL_07EB: ldloc.s 25 (TransportManager)
IL_07ED: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_07F2: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_07F7: ldloc.s 11 (System.UInt16)
IL_07F9: ldelema TransportLine
IL_07FE: call TransportInfo TransportLine::get_Info()
IL_0803: stloc.s 26 (TransportInfo)
IL_0805: ldloc.s 26 (TransportInfo)
IL_0807: ldnull
IL_0808: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_080D: brfalse => Label82
IL_0812: ldstr "{0} ({1})"
IL_0817: ldc.i4.2
IL_0818: newarr System.Object
IL_081D: dup
IL_081E: ldc.i4.0
IL_081F: ldloc.s 26 (TransportInfo)
IL_0821: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_0826: callvirt System.String UnityEngine.Object::get_name()
IL_082B: stelem.ref
IL_082C: dup
IL_082D: ldc.i4.1
IL_082E: ldloc.s 11 (System.UInt16)
IL_0830: box System.UInt16
IL_0835: stelem.ref
IL_0836: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_083B: stloc.s 12 (System.String)
IL_083D: ldloc.s 25 (TransportManager)
IL_083F: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_0844: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_0849: ldloc.s 11 (System.UInt16)
IL_084B: ldelema TransportLine
IL_0850: ldloc.s 11 (System.UInt16)
IL_0852: call System.String TransportLine::GetDebugString(System.UInt16
lineID)
IL_0857: stloc.s 27 (System.String)
IL_0859: ldloc.s 27 (System.String)
IL_085B: brfalse => Label83
IL_0860: ldloc.s 12 (System.String)
IL_0862: ldstr "\n"
IL_0867: ldloc.s 27 (System.String)
IL_0869: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_086E: stloc.s 12 (System.String)
IL_0870: Label64
IL_0870: Label69
IL_0870: Label74
IL_0870: Label79
IL_0870: Label80
IL_0870: Label81
IL_0870: Label82
IL_0870: Label83
IL_0870: ldloc.s 12 (System.String)
IL_0872: brfalse => Label84
IL_0877: ldloc.s 6 (InstanceID)
IL_0879: ldloca.s 28 (UnityEngine.Vector3)
IL_087B: ldloca.s 29 (UnityEngine.Quaternion)
IL_087D: ldloca.s 30 (UnityEngine.Vector3)
IL_087F: call static System.Boolean InstanceManager::GetPosition(InstanceID
id, UnityEngine.Vector3& position, UnityEngine.Quaternion& rotation,
UnityEngine.Vector3& size)
IL_0884: brtrue => Label85
IL_0889: ldarg.0
IL_088A: ldfld UnityEngine.Vector3 DefaultTool::m_mousePosition
IL_088F: stloc.s 28 (UnityEngine.Vector3)
IL_0891: Label85
IL_0891: call static UnityEngine.Camera UnityEngine.Camera::get_main()
IL_0896: ldloc.s 28 (UnityEngine.Vector3)
IL_0898: callvirt UnityEngine.Vector3
UnityEngine.Camera::WorldToScreenPoint(UnityEngine.Vector3 position)
IL_089D: stloc.s 31 (UnityEngine.Vector3)
IL_089F: ldloca.s 31 (UnityEngine.Vector3)
IL_08A1: call static System.Int32 UnityEngine.Screen::get_height()
IL_08A6: conv.r4
IL_08A7: ldloca.s 31 (UnityEngine.Vector3)
IL_08A9: ldfld System.Single UnityEngine.Vector3::y
IL_08AE: sub
IL_08AF: stfld System.Single UnityEngine.Vector3::y
IL_08B4: call static UnityEngine.Color UnityEngine.GUI::get_color()
IL_08B9: stloc.s 32 (UnityEngine.Color)
IL_08BB: call static UnityEngine.Color UnityEngine.Color::get_cyan()
IL_08C0: call static System.Void UnityEngine.GUI::set_color(UnityEngine.Color
value)
IL_08C5: ldloca.s 31 (UnityEngine.Vector3)
IL_08C7: ldfld System.Single UnityEngine.Vector3::x
IL_08CC: ldloca.s 31 (UnityEngine.Vector3)
IL_08CE: ldfld System.Single UnityEngine.Vector3::y
IL_08D3: ldc.r4 500
IL_08D8: ldc.r4 500
IL_08DD: newobj System.Void UnityEngine.Rect::.ctor(System.Single x,
System.Single y, System.Single width, System.Single height)
IL_08E2: ldloc.s 12 (System.String)
IL_08E4: call static UnityEngine.Color UnityEngine.Color::get_black()
IL_08E9: call static UnityEngine.Color UnityEngine.Color::get_cyan()
IL_08EE: call static UnityEngine.GUISkin UnityEngine.GUI::get_skin()
IL_08F3: callvirt UnityEngine.GUIStyle UnityEngine.GUISkin::get_label()
IL_08F8: ldc.r4 2
IL_08FD: 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_0902: ldloc.s 32 (UnityEngine.Color)
IL_0904: call static System.Void UnityEngine.GUI::set_color(UnityEngine.Color
value)
IL_0909: // end original
IL_0909: Label57
IL_0909: Label58
IL_0909: Label59
IL_0909: Label84
IL_0909: ret
DONE

### Patch: virtual System.Void DefaultTool::RenderOverlay(CameraInfo cameraInfo)


### Replacement: static System.Void DefaultTool::RenderOverlay_Patch0(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<PropManager>::get_instance()
IL_0079: ldfld Array16`1<PropInstance> PropManager::m_props
IL_007E: ldfld PropInstance[] Array16`1<PropInstance>::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<TreeManager>::get_instance()
IL_012C: ldfld Array32`1<TreeInstance> TreeManager::m_trees
IL_0131: ldfld TreeInstance[] Array32`1<TreeInstance>::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<BuildingManager>::get_instance()
IL_01E6: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01EB: ldfld Building[] Array16`1<Building>::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<DisasterManager>::get_instance()
IL_03A3: ldfld FastList`1<DisasterData> DisasterManager::m_disasters
IL_03A8: ldfld DisasterData[] FastList`1<DisasterData>::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<NetManager>::get_instance()
IL_04A6: stloc.s 24 (NetManager)
IL_04A8: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_04AD: stloc.s 25 (BuildingManager)
IL_04AF: ldloc.s 25 (BuildingManager)
IL_04B1: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_04B6: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_04F6: ldfld Building[] Array16`1<Building>::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<NetNode> NetManager::m_nodes
IL_0520: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_0543: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0562: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0582: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_05AA: ldfld NetNode[] Array16`1<NetNode>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_05F6: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0618: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0637: ldfld Building[] Array16`1<Building>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_0693: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06AD: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06C7: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06F2: ldfld Building[] Array16`1<Building>::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<NetNode> NetManager::m_nodes
IL_071C: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_073F: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_075E: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_077F: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_07A9: ldfld NetNode[] Array16`1<NetNode>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_07F5: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0817: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0831: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_084B: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0865: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0890: ldfld Building[] Array16`1<Building>::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<LogChannel>::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<NetManager>::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<RenderManager>::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<NetSegment> NetManager::m_segments
IL_09A8: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_09CC: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_09D1: ldloc.s 45 (NetManager)
IL_09D3: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_09D8: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_0A01: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A06: ldloc.s 45 (NetManager)
IL_0A08: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0A0D: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0A73: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0A92: ldfld NetSegment[] Array16`1<NetSegment>::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<ToolManager>::get_instance()
IL_0C1C: ldflda DrawCallData SimulationManagerBase`2<ToolManager,
ToolController>::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<RenderManager>::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<NetSegment> NetManager::m_segments
IL_0C75: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0C96: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0CF4: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0D18: ldfld NetSegment[] Array16`1<NetSegment>::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<TreeManager>::get_instance()
IL_0D40: stloc.s 67 (TreeManager)
IL_0D42: ldloc.s 67 (TreeManager)
IL_0D44: ldfld Array32`1<TreeInstance> TreeManager::m_trees
IL_0D49: ldfld TreeInstance[] Array32`1<TreeInstance>::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<TreeInstance> TreeManager::m_trees
IL_0D64: ldfld TreeInstance[] Array32`1<TreeInstance>::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<PropManager>::get_instance()
IL_0E07: stloc.s 75 (PropManager)
IL_0E09: ldloc.s 75 (PropManager)
IL_0E0B: ldfld Array16`1<PropInstance> PropManager::m_props
IL_0E10: ldfld PropInstance[] Array16`1<PropInstance>::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<PropInstance> PropManager::m_props
IL_0E2A: ldfld PropInstance[] Array16`1<PropInstance>::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<PropInstance> PropManager::m_props
IL_0E44: ldfld PropInstance[] Array16`1<PropInstance>::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<VehicleManager>::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<Vehicle> VehicleManager::m_vehicles
IL_0F0E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0F38: ldfld Vehicle[] Array16`1<Vehicle>::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<VehicleManager>::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<VehicleParked> VehicleManager::m_parkedVehicles
IL_0F87: ldfld VehicleParked[] Array16`1<VehicleParked>::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<VehicleParked> VehicleManager::m_parkedVehicles
IL_0FB1: ldfld VehicleParked[] Array16`1<VehicleParked>::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<CitizenManager>::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<CitizenInstance> CitizenManager::m_instances
IL_1000: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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<CitizenInstance> CitizenManager::m_instances
IL_102A: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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<InfoManager>::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<DistrictManager>::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<InfoManager>::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<DistrictManager>::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<DisasterManager>::get_instance()
IL_1129: stloc.s 104 (DisasterManager)
IL_112B: ldloc.s 104 (DisasterManager)
IL_112D: ldfld FastList`1<DisasterData> DisasterManager::m_disasters
IL_1132: ldfld DisasterData[] FastList`1<DisasterData>::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<DisasterData> DisasterManager::m_disasters
IL_114C: ldfld DisasterData[] FastList`1<DisasterData>::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<DisasterData> DisasterManager::m_disasters
IL_1166: ldfld DisasterData[] FastList`1<DisasterData>::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: ret
DONE

### Patch: System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen)


### Replacement: static System.Void
CitizenManager::ReleaseCitizen_Patch0(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<Citizen> CitizenManager::m_citizens
IL_0008: ldfld Citizen[] Array32`1<Citizen>::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: ret
DONE

### Patch: System.Void CitizenManager::ReleaseCitizenInstance(System.UInt16


instance)
### Replacement: static System.Void
CitizenManager::ReleaseCitizenInstance_Patch0(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<CitizenInstance> CitizenManager::m_instances
IL_0008: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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: ret
DONE

### Patch: static System.Void BuildingDecoration::LoadPaths(BuildingInfo info,


System.UInt16 buildingID, Building& data, System.Single elevation)
### Replacement: static System.Void
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<NetManager>::get_instance()
IL_0010: stloc.0
IL_0011: ldloc.0
IL_0012: ldfld FastList`1<System.UInt16> NetManager::m_tempNodeBuffer
IL_0017: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_001C: ldloc.0
IL_001D: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_0022: callvirt System.Void FastList`1<System.UInt16>::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<System.UInt16> 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<System.UInt16> 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<System.UInt16> 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<System.UInt16>::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<NodePosition> 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<NodePosition> 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<System.UInt16> NetManager::m_tempNodeBuffer
IL_022C: ldloc.s 9 (System.UInt16)
IL_022E: callvirt System.Void FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_0268: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_02AC: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16> 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<System.UInt16> 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<NodePosition> 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<NodePosition> 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<System.UInt16> NetManager::m_tempNodeBuffer
IL_056B: ldloc.s 20 (System.UInt16)
IL_056D: callvirt System.Void FastList`1<System.UInt16>::Add(System.UInt16 item)
IL_0572: ldloc.0
IL_0573: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_0578: ldloc.s 21 (System.UInt16)
IL_057A: callvirt System.Void FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_05B6: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_05FC: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_0646: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_067B: ldfld NetSegment[] Array16`1<NetSegment>::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<System.UInt16> NetManager::m_tempNodeBuffer
IL_06D4: ldfld System.UInt16[] FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_06E4: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_071D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_073E: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_075D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0788: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16> NetManager::m_tempNodeBuffer
IL_07C2: ldfld System.Int32 FastList`1<System.UInt16>::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<System.UInt16> NetManager::m_tempSegmentBuffer
IL_07DA: ldfld System.UInt16[] FastList`1<System.UInt16>::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<NetSegment> NetManager::m_segments
IL_07EA: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_080F: ldfld NetSegment[] Array16`1<NetSegment>::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<ToolManager>::get_instance()
IL_083B: ldfld ToolController SimulationManagerBase`2<ToolManager,
ToolController>::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<NetSegment> NetManager::m_segments
IL_0852: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0879: ldfld NetSegment[] Array16`1<NetSegment>::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<System.UInt16> NetManager::m_tempSegmentBuffer
IL_08A9: ldfld System.Int32 FastList`1<System.UInt16>::m_size
IL_08AE: blt => Label60
IL_08B3: ldloc.0
IL_08B4: ldfld FastList`1<System.UInt16> NetManager::m_tempNodeBuffer
IL_08B9: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_08BE: ldloc.0
IL_08BF: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_08C4: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_08C9: // end original
IL_08C9: Label0
IL_08C9: ret
DONE

### Harmony id=cgameworld.instantreturntodesktop, version=2.0.0.9, location=E:\


Games\data-0000000015990080
### Started from static System.Boolean
CitiesHarmony.Harmony1201SelfPatcher::HarmonyInstance_UnpatchAll_Prefix(System.Stri
ng ___id, System.String harmonyID), location E:\Games\data-000000001475B980
### At 2022-11-05 01.24.50
### Patch: UnityEngine.Coroutine LoadingManager::QuitApplication()
### Replacement: static UnityEngine.Coroutine
LoadingManager::QuitApplication_Patch0(LoadingManager this)
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: volatile.
IL_0003: ldfld System.Boolean LoadingManager::m_applicationQuitting
IL_0008: brtrue => Label0
IL_000D: ldarg.0
IL_000E: ldfld LoadingWrapper LoadingManager::m_LoadingWrapper
IL_0013: brfalse => Label1
IL_0018: ldarg.0
IL_0019: ldfld LoadingWrapper LoadingManager::m_LoadingWrapper
IL_001E: callvirt System.Void LoadingWrapper::OnLevelUnloading()
IL_0023: Label1
IL_0023: ldarg.0
IL_0024: ldfld LoadingAnimation LoadingManager::m_loadingAnimation
IL_0029: ldc.i4.1
IL_002A: callvirt System.Void UnityEngine.Behaviour::set_enabled(System.Boolean
value)
IL_002F: ldarg.0
IL_0030: ldc.i4.1
IL_0031: volatile.
IL_0033: stfld System.Boolean LoadingManager::m_applicationQuitting
IL_0038: ldarg.0
IL_0039: ldarg.0
IL_003A: call System.Collections.IEnumerator
LoadingManager::QuitApplicationCoroutine()
IL_003F: call UnityEngine.Coroutine
UnityEngine.MonoBehaviour::StartCoroutine(System.Collections.IEnumerator routine)
IL_0044: br => Label2
IL_0049: Label0
IL_0049: ldnull
IL_004A: // end original
IL_004A: Label2
IL_004A: ret
DONE

### Harmony id=cgameworld.instantreturntodesktop, version=2.0.0.9, location=E:\


Games\data-0000000015990080
### Started from static HarmonyLib.Harmony
CitiesHarmony.Harmony1201SelfPatcher::CreateHarmony(System.Object
oldHarmonyInstance), location E:\Games\data-000000001475B980
### At 2022-11-05 01.24.52
### Patch: UnityEngine.Coroutine LoadingManager::QuitApplication()
### Replacement: static UnityEngine.Coroutine
LoadingManager::QuitApplication_Patch1(LoadingManager this)
IL_0000: Local var 0: UnityEngine.Coroutine
IL_0000: Local var 1: System.Boolean
IL_0000: ldnull
IL_0001: stloc 0 (UnityEngine.Coroutine)
IL_0005: ldc.i4 0
IL_000A: stloc 1 (System.Boolean)
IL_000E: ldc.i4.1
IL_000F: stloc 1 (System.Boolean)
IL_0013: ldloc 1 (System.Boolean)
IL_0017: brfalse.s => Label1
IL_0019: call static System.Boolean InstantReturnToDesktop.Patch::Prefix()
IL_001E: stloc 1 (System.Boolean)
IL_0022: nop
IL_0023: ldloc 1 (System.Boolean)
IL_0027: brfalse => Label0
IL_002C: // start original
IL_002C: ldarg.0
IL_002D: volatile.
IL_002F: ldfld System.Boolean LoadingManager::m_applicationQuitting
IL_0034: brtrue => Label2
IL_0039: ldarg.0
IL_003A: ldfld LoadingWrapper LoadingManager::m_LoadingWrapper
IL_003F: brfalse => Label3
IL_0044: ldarg.0
IL_0045: ldfld LoadingWrapper LoadingManager::m_LoadingWrapper
IL_004A: callvirt System.Void LoadingWrapper::OnLevelUnloading()
IL_004F: Label3
IL_004F: ldarg.0
IL_0050: ldfld LoadingAnimation LoadingManager::m_loadingAnimation
IL_0055: ldc.i4.1
IL_0056: callvirt System.Void UnityEngine.Behaviour::set_enabled(System.Boolean
value)
IL_005B: ldarg.0
IL_005C: ldc.i4.1
IL_005D: volatile.
IL_005F: stfld System.Boolean LoadingManager::m_applicationQuitting
IL_0064: ldarg.0
IL_0065: ldarg.0
IL_0066: call System.Collections.IEnumerator
LoadingManager::QuitApplicationCoroutine()
IL_006B: call UnityEngine.Coroutine
UnityEngine.MonoBehaviour::StartCoroutine(System.Collections.IEnumerator routine)
IL_0070: br => Label4
IL_0075: Label2
IL_0075: ldnull
IL_0076: // end original
IL_0076: Label4
IL_0076: stloc 0 (UnityEngine.Coroutine)
IL_007A: Label0
IL_007A: ldloc 0 (UnityEngine.Coroutine)
IL_007E: ret
DONE

### Harmony id=de.viathinksoft.tmpe, version=2.0.0.9, location=E:\Games\data-


0000000015990080
### Started from System.Void TrafficManager.Patcher::Install(), location E:\Games\
data-0000000016967040
### At 2022-11-05 01.25.38
### 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::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.s => Label1
IL_001D: ldarg.0
IL_001E: ldarg 1
IL_0022: ldarg 3
IL_0026: call static System.Boolean
TrafficManager.Patch._VehicleManager.CreateVehiclePatch::Prefix(VehicleManager
__instance, System.UInt16& vehicle, VehicleInfo info)
IL_002B: stloc 3 (System.Boolean)
IL_002F: nop
IL_0030: ldloc 3 (System.Boolean)
IL_0034: brfalse => Label0
IL_0039: // start original
IL_0039: ldarg.0
IL_003A: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_003F: ldloca.s 0 (System.UInt16)
IL_0041: ldarg.2
IL_0042: callvirt System.Boolean Array16`1<Vehicle>::CreateItem(System.UInt16&
item, ColossalFramework.Math.Randomizer& r)
IL_0047: brfalse => Label2
IL_004C: ldarg.1
IL_004D: ldloc.0
IL_004E: stind.i2
IL_004F: ldloca.s 1 (Vehicle+Frame)
IL_0051: ldarg.s 4
IL_0053: call static UnityEngine.Quaternion
UnityEngine.Quaternion::get_identity()
IL_0058: call System.Void Frame::.ctor(UnityEngine.Vector3 position,
UnityEngine.Quaternion rotation)
IL_005D: ldarg.0
IL_005E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0063: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0068: ldarg.1
IL_0069: ldind.u2
IL_006A: ldelema Vehicle
IL_006F: ldc.i4.1
IL_0070: stfld Flags Vehicle::m_flags
IL_0075: ldarg.0
IL_0076: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_007B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0080: ldarg.1
IL_0081: ldind.u2
IL_0082: ldelema Vehicle
IL_0087: ldc.i4.0
IL_0088: stfld Flags2 Vehicle::m_flags2
IL_008D: ldarg.s 6
IL_008F: brfalse => Label3
IL_0094: ldarg.0
IL_0095: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_009A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_009F: ldarg.1
IL_00A0: ldind.u2
IL_00A1: ldelema Vehicle
IL_00A6: dup
IL_00A7: ldfld Flags Vehicle::m_flags
IL_00AC: ldc.i4.s 32
IL_00AE: or
IL_00AF: stfld Flags Vehicle::m_flags
IL_00B4: Label3
IL_00B4: ldarg.s 7
IL_00B6: brfalse => Label4
IL_00BB: ldarg.0
IL_00BC: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00C1: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00C6: ldarg.1
IL_00C7: ldind.u2
IL_00C8: ldelema Vehicle
IL_00CD: dup
IL_00CE: ldfld Flags Vehicle::m_flags
IL_00D3: ldc.i4.s 16
IL_00D5: or
IL_00D6: stfld Flags Vehicle::m_flags
IL_00DB: Label4
IL_00DB: ldarg.0
IL_00DC: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00E1: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00E6: ldarg.1
IL_00E7: ldind.u2
IL_00E8: ldelema Vehicle
IL_00ED: ldarg.3
IL_00EE: call System.Void Vehicle::set_Info(VehicleInfo value)
IL_00F3: ldarg.0
IL_00F4: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00F9: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00FE: ldarg.1
IL_00FF: ldind.u2
IL_0100: ldelema Vehicle
IL_0105: ldloc.1
IL_0106: stfld Frame Vehicle::m_frame0
IL_010B: ldarg.0
IL_010C: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0111: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0116: ldarg.1
IL_0117: ldind.u2
IL_0118: ldelema Vehicle
IL_011D: ldloc.1
IL_011E: stfld Frame Vehicle::m_frame1
IL_0123: ldarg.0
IL_0124: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0129: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_012E: ldarg.1
IL_012F: ldind.u2
IL_0130: ldelema Vehicle
IL_0135: ldloc.1
IL_0136: stfld Frame Vehicle::m_frame2
IL_013B: ldarg.0
IL_013C: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0141: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0146: ldarg.1
IL_0147: ldind.u2
IL_0148: ldelema Vehicle
IL_014D: ldloc.1
IL_014E: stfld Frame Vehicle::m_frame3
IL_0153: ldarg.0
IL_0154: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0159: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_015E: ldarg.1
IL_015F: ldind.u2
IL_0160: ldelema Vehicle
IL_0165: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_016A: stfld UnityEngine.Vector4 Vehicle::m_targetPos0
IL_016F: ldarg.0
IL_0170: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0175: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_017A: ldarg.1
IL_017B: ldind.u2
IL_017C: ldelema Vehicle
IL_0181: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_0186: stfld UnityEngine.Vector4 Vehicle::m_targetPos1
IL_018B: ldarg.0
IL_018C: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0191: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0196: ldarg.1
IL_0197: ldind.u2
IL_0198: ldelema Vehicle
IL_019D: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_01A2: stfld UnityEngine.Vector4 Vehicle::m_targetPos2
IL_01A7: ldarg.0
IL_01A8: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01AD: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01B2: ldarg.1
IL_01B3: ldind.u2
IL_01B4: ldelema Vehicle
IL_01B9: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_01BE: stfld UnityEngine.Vector4 Vehicle::m_targetPos3
IL_01C3: ldarg.0
IL_01C4: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01C9: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01CE: ldarg.1
IL_01CF: ldind.u2
IL_01D0: ldelema Vehicle
IL_01D5: ldc.i4.0
IL_01D6: stfld System.UInt16 Vehicle::m_sourceBuilding
IL_01DB: ldarg.0
IL_01DC: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01E1: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01E6: ldarg.1
IL_01E7: ldind.u2
IL_01E8: ldelema Vehicle
IL_01ED: ldc.i4.0
IL_01EE: stfld System.UInt16 Vehicle::m_targetBuilding
IL_01F3: ldarg.0
IL_01F4: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01F9: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01FE: ldarg.1
IL_01FF: ldind.u2
IL_0200: ldelema Vehicle
IL_0205: ldarg.s 5
IL_0207: conv.u1
IL_0208: stfld System.Byte Vehicle::m_transferType
IL_020D: ldarg.0
IL_020E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0213: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0218: ldarg.1
IL_0219: ldind.u2
IL_021A: ldelema Vehicle
IL_021F: ldc.i4.0
IL_0220: stfld System.UInt16 Vehicle::m_transferSize
IL_0225: ldarg.0
IL_0226: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_022B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0230: ldarg.1
IL_0231: ldind.u2
IL_0232: ldelema Vehicle
IL_0237: ldc.i4.0
IL_0238: stfld System.Byte Vehicle::m_waitCounter
IL_023D: ldarg.0
IL_023E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0243: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0248: ldarg.1
IL_0249: ldind.u2
IL_024A: ldelema Vehicle
IL_024F: ldc.i4.0
IL_0250: stfld System.Byte Vehicle::m_blockCounter
IL_0255: ldarg.0
IL_0256: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_025B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0260: ldarg.1
IL_0261: ldind.u2
IL_0262: ldelema Vehicle
IL_0267: ldc.i4.0
IL_0268: stfld System.UInt16 Vehicle::m_nextGridVehicle
IL_026D: ldarg.0
IL_026E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0273: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0278: ldarg.1
IL_0279: ldind.u2
IL_027A: ldelema Vehicle
IL_027F: ldc.i4.0
IL_0280: stfld System.UInt16 Vehicle::m_nextOwnVehicle
IL_0285: ldarg.0
IL_0286: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_028B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0290: ldarg.1
IL_0291: ldind.u2
IL_0292: ldelema Vehicle
IL_0297: ldc.i4.0
IL_0298: stfld System.UInt16 Vehicle::m_nextGuestVehicle
IL_029D: ldarg.0
IL_029E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02A3: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02A8: ldarg.1
IL_02A9: ldind.u2
IL_02AA: ldelema Vehicle
IL_02AF: ldc.i4.0
IL_02B0: stfld System.UInt16 Vehicle::m_nextLineVehicle
IL_02B5: ldarg.0
IL_02B6: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02BB: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02C0: ldarg.1
IL_02C1: ldind.u2
IL_02C2: ldelema Vehicle
IL_02C7: ldc.i4.0
IL_02C8: stfld System.UInt16 Vehicle::m_transportLine
IL_02CD: ldarg.0
IL_02CE: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02D3: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02D8: ldarg.1
IL_02D9: ldind.u2
IL_02DA: ldelema Vehicle
IL_02DF: ldc.i4.0
IL_02E0: stfld System.UInt16 Vehicle::m_leadingVehicle
IL_02E5: ldarg.0
IL_02E6: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02EB: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02F0: ldarg.1
IL_02F1: ldind.u2
IL_02F2: ldelema Vehicle
IL_02F7: ldc.i4.0
IL_02F8: stfld System.UInt16 Vehicle::m_trailingVehicle
IL_02FD: ldarg.0
IL_02FE: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0303: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0308: ldarg.1
IL_0309: ldind.u2
IL_030A: ldelema Vehicle
IL_030F: ldc.i4.0
IL_0310: stfld System.UInt16 Vehicle::m_cargoParent
IL_0315: ldarg.0
IL_0316: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_031B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0320: ldarg.1
IL_0321: ldind.u2
IL_0322: ldelema Vehicle
IL_0327: ldc.i4.0
IL_0328: stfld System.UInt16 Vehicle::m_firstCargo
IL_032D: ldarg.0
IL_032E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0333: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0338: ldarg.1
IL_0339: ldind.u2
IL_033A: ldelema Vehicle
IL_033F: ldc.i4.0
IL_0340: stfld System.UInt16 Vehicle::m_nextCargo
IL_0345: ldarg.0
IL_0346: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_034B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0350: ldarg.1
IL_0351: ldind.u2
IL_0352: ldelema Vehicle
IL_0357: ldc.i4.0
IL_0358: stfld System.UInt32 Vehicle::m_citizenUnits
IL_035D: ldarg.0
IL_035E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0363: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0368: ldarg.1
IL_0369: ldind.u2
IL_036A: ldelema Vehicle
IL_036F: ldc.i4.0
IL_0370: stfld System.UInt32 Vehicle::m_path
IL_0375: ldarg.0
IL_0376: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_037B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0380: ldarg.1
IL_0381: ldind.u2
IL_0382: ldelema Vehicle
IL_0387: ldc.i4.0
IL_0388: stfld System.Byte Vehicle::m_lastFrame
IL_038D: ldarg.0
IL_038E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0393: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0398: ldarg.1
IL_0399: ldind.u2
IL_039A: ldelema Vehicle
IL_039F: ldc.i4.0
IL_03A0: stfld System.Byte Vehicle::m_pathPositionIndex
IL_03A5: ldarg.0
IL_03A6: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03AB: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03B0: ldarg.1
IL_03B1: ldind.u2
IL_03B2: ldelema Vehicle
IL_03B7: ldc.i4.0
IL_03B8: stfld System.Byte Vehicle::m_lastPathOffset
IL_03BD: ldarg.0
IL_03BE: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03C3: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03C8: ldarg.1
IL_03C9: ldind.u2
IL_03CA: ldelema Vehicle
IL_03CF: ldc.i4.0
IL_03D0: stfld System.Byte Vehicle::m_gateIndex
IL_03D5: ldarg.0
IL_03D6: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03DB: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03E0: ldarg.1
IL_03E1: ldind.u2
IL_03E2: ldelema Vehicle
IL_03E7: ldc.i4.0
IL_03E8: stfld System.UInt16 Vehicle::m_waterSource
IL_03ED: ldarg.0
IL_03EE: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03F3: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03F8: ldarg.1
IL_03F9: ldind.u2
IL_03FA: ldelema Vehicle
IL_03FF: ldc.i4.0
IL_0400: stfld System.UInt16 Vehicle::m_touristCount
IL_0405: ldarg.0
IL_0406: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_040B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0410: ldarg.1
IL_0411: ldind.u2
IL_0412: ldelema Vehicle
IL_0417: ldc.i4.0
IL_0418: stfld System.UInt16 Vehicle::m_custom
IL_041D: ldarg.3
IL_041E: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_0423: ldarg.1
IL_0424: ldind.u2
IL_0425: ldarg.0
IL_0426: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_042B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0430: ldarg.1
IL_0431: ldind.u2
IL_0432: ldelema Vehicle
IL_0437: callvirt virtual System.Void VehicleAI::CreateVehicle(System.UInt16
vehicleID, Vehicle& data)
IL_043C: ldarg.3
IL_043D: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_0442: ldarg.1
IL_0443: ldind.u2
IL_0444: ldarg.0
IL_0445: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_044A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_044F: ldarg.1
IL_0450: ldind.u2
IL_0451: ldelema Vehicle
IL_0456: ldarg.0
IL_0457: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_045C: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0461: ldarg.1
IL_0462: ldind.u2
IL_0463: ldelema Vehicle
IL_0468: ldflda Frame Vehicle::m_frame0
IL_046D: callvirt virtual System.Void VehicleAI::FrameDataUpdated(System.UInt16
vehicleID, Vehicle& vehicleData, Frame& frameData)
IL_0472: ldarg.0
IL_0473: ldarg.0
IL_0474: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0479: callvirt System.UInt32 Array16`1<Vehicle>::ItemCount()
IL_047E: ldc.i4.1
IL_047F: sub
IL_0480: stfld System.Int32 VehicleManager::m_vehicleCount
IL_0485: ldc.i4.1
IL_0486: br => Label5
IL_048B: Label2
IL_048B: ldarg.1
IL_048C: ldc.i4.0
IL_048D: stind.i2
IL_048E: ldc.i4.0
IL_048F: // end original
IL_048F: Label5
IL_048F: stloc 2 (System.Boolean)
IL_0493: Label0
IL_0493: ldarg.0
IL_0494: ldloc 2 (System.Boolean)
IL_0498: ldarg 1
IL_049C: call static System.Void
TrafficManager.Patch._VehicleManager.CreateVehiclePatch::Postfix(VehicleManager
__instance, System.Boolean __result, System.UInt16& vehicle)
IL_04A1: ldloc 2 (System.Boolean)
IL_04A5: ret
DONE

### Patch: System.Void VehicleManager::ReleaseVehicle(System.UInt16 vehicle)


### Replacement: static System.Void
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<Vehicle> VehicleManager::m_vehicles
IL_0012: ldfld Vehicle[] Array16`1<Vehicle>::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::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<NetSegment> NetManager::m_segments
IL_0030: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0047: ldfld NetSegment[] Array16`1<NetSegment>::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::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<NetNode> NetManager::m_nodes
IL_0006: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0021: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_00CD: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_00F3: ldfld NetSegment[] Array16`1<NetSegment>::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<LogChannel>::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 RoadBaseAI::TrafficLightSimulationStep(System.UInt16


nodeID, NetNode& data)
### Replacement: static System.Void
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.Int32
IL_0000: Local var 38: System.UInt16
IL_0000: Local var 39: RoadBaseAI/TrafficLightState
IL_0000: Local var 40: RoadBaseAI/TrafficLightState
IL_0000: Local var 41: UnityEngine.Vector3
IL_0000: Local var 42: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 42 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 42 (System.Boolean)
IL_000E: ldloc 42 (System.Boolean)
IL_0012: brfalse.s => Label1
IL_0014: ldnull
IL_0015: ldarg 0
IL_0019: ldarg 1
IL_001D: call static System.Boolean
TrafficManager.Patch._TrainTrackBase.LevelCrossingSimulationStepPatch::Prefix(Train
TrackBaseAI __instance, System.UInt16 nodeID, NetNode& data)
IL_0022: stloc 42 (System.Boolean)
IL_0026: nop
IL_0027: ldloc 42 (System.Boolean)
IL_002B: brfalse => Label0
IL_0030: // start original
IL_0030: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0035: stloc.0
IL_0036: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_003B: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0040: stloc.1
IL_0041: ldarg.1
IL_0042: ldfld System.Byte NetNode::m_maxWaitTime
IL_0047: ldc.i4.3
IL_0048: and
IL_0049: stloc.2
IL_004A: ldarg.1
IL_004B: ldfld System.Byte NetNode::m_maxWaitTime
IL_0050: ldc.i4.2
IL_0051: shr
IL_0052: ldc.i4.7
IL_0053: and
IL_0054: stloc.3
IL_0055: ldarg.1
IL_0056: ldfld System.Byte NetNode::m_maxWaitTime
IL_005B: ldc.i4.5
IL_005C: shr
IL_005D: stloc.s 4 (System.Int32)
IL_005F: ldc.i4.m1
IL_0060: stloc.s 5 (System.Int32)
IL_0062: ldc.i4.m1
IL_0063: stloc.s 6 (System.Int32)
IL_0065: ldc.i4.m1
IL_0066: stloc.s 7 (System.Int32)
IL_0068: ldc.i4.m1
IL_0069: stloc.s 8 (System.Int32)
IL_006B: ldc.i4.m1
IL_006C: stloc.s 9 (System.Int32)
IL_006E: ldc.i4.m1
IL_006F: stloc.s 10 (System.Int32)
IL_0071: ldc.i4.0
IL_0072: stloc.s 11 (System.Int32)
IL_0074: ldc.i4.0
IL_0075: stloc.s 12 (System.Int32)
IL_0077: ldc.i4.0
IL_0078: stloc.s 13 (System.Int32)
IL_007A: ldc.i4.0
IL_007B: stloc.s 14 (System.Int32)
IL_007D: ldc.i4.0
IL_007E: stloc.s 15 (System.Int32)
IL_0080: ldc.i4.0
IL_0081: stloc.s 16 (System.Int32)
IL_0083: br => Label2
IL_0088: Label24
IL_0088: ldarg.1
IL_0089: ldloc.s 16 (System.Int32)
IL_008B: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0090: stloc.s 17 (System.UInt16)
IL_0092: ldloc.s 17 (System.UInt16)
IL_0094: brfalse => Label3
IL_0099: ldc.i4.0
IL_009A: stloc.s 18 (System.Int32)
IL_009C: ldc.i4.0
IL_009D: stloc.s 19 (System.Int32)
IL_009F: ldloc.0
IL_00A0: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_00A5: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00AA: ldloc.s 17 (System.UInt16)
IL_00AC: ldelema NetSegment
IL_00B1: ldloc.s 17 (System.UInt16)
IL_00B3: ldc.i4.s 33
IL_00B5: ldc.i4 65601
IL_00BA: ldloca.s 18 (System.Int32)
IL_00BC: ldloca.s 19 (System.Int32)
IL_00BE: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_00C3: ldloc.0
IL_00C4: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_00C9: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00CE: ldloc.s 17 (System.UInt16)
IL_00D0: ldelema NetSegment
IL_00D5: ldfld System.UInt16 NetSegment::m_startNode
IL_00DA: ldarg.0
IL_00DB: ceq
IL_00DD: stloc.s 20 (System.Boolean)
IL_00DF: ldloc.s 20 (System.Boolean)
IL_00E1: brfalse => Label4
IL_00E6: ldloc.s 19 (System.Int32)
IL_00E8: ldc.i4.0
IL_00E9: ceq
IL_00EB: ldc.i4.0
IL_00EC: ceq
IL_00EE: br => Label5
IL_00F3: Label4
IL_00F3: ldloc.s 18 (System.Int32)
IL_00F5: ldc.i4.0
IL_00F6: ceq
IL_00F8: ldc.i4.0
IL_00F9: ceq
IL_00FB: Label5
IL_00FB: stloc.s 21 (System.Boolean)
IL_00FD: ldloc.s 20 (System.Boolean)
IL_00FF: brfalse => Label6
IL_0104: ldloc.s 18 (System.Int32)
IL_0106: ldc.i4.0
IL_0107: ceq
IL_0109: ldc.i4.0
IL_010A: ceq
IL_010C: br => Label7
IL_0111: Label6
IL_0111: ldloc.s 19 (System.Int32)
IL_0113: ldc.i4.0
IL_0114: ceq
IL_0116: ldc.i4.0
IL_0117: ceq
IL_0119: Label7
IL_0119: stloc.s 22 (System.Boolean)
IL_011B: ldloc.s 21 (System.Boolean)
IL_011D: brfalse => Label8
IL_0122: ldloc.s 11 (System.Int32)
IL_0124: ldc.i4.1
IL_0125: ldloc.s 16 (System.Int32)
IL_0127: ldc.i4.s 31
IL_0129: and
IL_012A: shl
IL_012B: or
IL_012C: stloc.s 11 (System.Int32)
IL_012E: Label8
IL_012E: ldloc.s 22 (System.Boolean)
IL_0130: brfalse => Label9
IL_0135: ldloc.s 12 (System.Int32)
IL_0137: ldc.i4.1
IL_0138: ldloc.s 16 (System.Int32)
IL_013A: ldc.i4.s 31
IL_013C: and
IL_013D: shl
IL_013E: or
IL_013F: stloc.s 12 (System.Int32)
IL_0141: ldloc.s 14 (System.Int32)
IL_0143: ldc.i4.1
IL_0144: add
IL_0145: stloc.s 14 (System.Int32)
IL_0147: Label9
IL_0147: ldarg.0
IL_0148: ldloc.0
IL_0149: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_014E: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0153: ldloc.s 17 (System.UInt16)
IL_0155: ldelema NetSegment
IL_015A: ldloc.1
IL_015B: ldc.i4 256
IL_0160: sub
IL_0161: ldloca.s 23 (RoadBaseAI+TrafficLightState)
IL_0163: ldloca.s 24 (RoadBaseAI+TrafficLightState)
IL_0165: ldloca.s 25 (System.Boolean)
IL_0167: ldloca.s 26 (System.Boolean)
IL_0169: 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_016E: ldloc.s 24 (RoadBaseAI+TrafficLightState)
IL_0170: ldc.i4.2
IL_0171: and
IL_0172: brfalse => Label10
IL_0177: ldloc.s 26 (System.Boolean)
IL_0179: brfalse => Label11
IL_017E: ldloc.s 8 (System.Int32)
IL_0180: ldc.i4.m1
IL_0181: bne.un => Label12
IL_0186: ldloc.s 16 (System.Int32)
IL_0188: stloc.s 8 (System.Int32)
IL_018A: Label12
IL_018A: ldloc.s 10 (System.Int32)
IL_018C: ldc.i4.m1
IL_018D: bne.un => Label13
IL_0192: ldloc.s 15 (System.Int32)
IL_0194: ldloc.s 4 (System.Int32)
IL_0196: blt => Label14
IL_019B: ldloc.s 16 (System.Int32)
IL_019D: stloc.s 10 (System.Int32)
IL_019F: Label10
IL_019F: Label11
IL_019F: Label13
IL_019F: Label14
IL_019F: ldloc.s 15 (System.Int32)
IL_01A1: ldc.i4.1
IL_01A2: add
IL_01A3: stloc.s 15 (System.Int32)
IL_01A5: ldloc.s 21 (System.Boolean)
IL_01A7: brtrue => Label15
IL_01AC: ldloc.s 25 (System.Boolean)
IL_01AE: brfalse => Label16
IL_01B3: Label15
IL_01B3: ldloc.s 23 (RoadBaseAI+TrafficLightState)
IL_01B5: ldc.i4.2
IL_01B6: and
IL_01B7: brtrue => Label17
IL_01BC: ldloc.s 16 (System.Int32)
IL_01BE: stloc.s 6 (System.Int32)
IL_01C0: ldloc.s 25 (System.Boolean)
IL_01C2: brfalse => Label18
IL_01C7: ldloc.s 16 (System.Int32)
IL_01C9: stloc.s 5 (System.Int32)
IL_01CB: Label18
IL_01CB: br => Label19
IL_01D0: Label17
IL_01D0: ldloc.s 25 (System.Boolean)
IL_01D2: brfalse => Label20
IL_01D7: ldloc.s 7 (System.Int32)
IL_01D9: ldc.i4.m1
IL_01DA: bne.un => Label21
IL_01DF: ldloc.s 16 (System.Int32)
IL_01E1: stloc.s 7 (System.Int32)
IL_01E3: Label21
IL_01E3: ldloc.s 9 (System.Int32)
IL_01E5: ldc.i4.m1
IL_01E6: bne.un => Label22
IL_01EB: ldloc.s 13 (System.Int32)
IL_01ED: ldloc.3
IL_01EE: blt => Label23
IL_01F3: ldloc.s 16 (System.Int32)
IL_01F5: stloc.s 9 (System.Int32)
IL_01F7: Label19
IL_01F7: Label20
IL_01F7: Label22
IL_01F7: Label23
IL_01F7: ldloc.s 13 (System.Int32)
IL_01F9: ldc.i4.1
IL_01FA: add
IL_01FB: stloc.s 13 (System.Int32)
IL_01FD: Label3
IL_01FD: Label16
IL_01FD: ldloc.s 16 (System.Int32)
IL_01FF: ldc.i4.1
IL_0200: add
IL_0201: stloc.s 16 (System.Int32)
IL_0203: Label2
IL_0203: ldloc.s 16 (System.Int32)
IL_0205: ldc.i4.8
IL_0206: blt => Label24
IL_020B: ldloc.s 9 (System.Int32)
IL_020D: ldc.i4.m1
IL_020E: bne.un => Label25
IL_0213: ldloc.s 7 (System.Int32)
IL_0215: stloc.s 9 (System.Int32)
IL_0217: Label25
IL_0217: ldloc.s 10 (System.Int32)
IL_0219: ldc.i4.m1
IL_021A: bne.un => Label26
IL_021F: ldloc.s 8 (System.Int32)
IL_0221: stloc.s 10 (System.Int32)
IL_0223: Label26
IL_0223: ldloc.s 6 (System.Int32)
IL_0225: ldc.i4.m1
IL_0226: beq => Label27
IL_022B: ldloc.s 5 (System.Int32)
IL_022D: ldc.i4.m1
IL_022E: beq => Label28
IL_0233: ldloc.2
IL_0234: ldc.i4.1
IL_0235: bgt => Label29
IL_023A: ldc.i4.m1
IL_023B: stloc.s 9 (System.Int32)
IL_023D: ldc.i4.m1
IL_023E: stloc.s 10 (System.Int32)
IL_0240: ldloc.2
IL_0241: ldc.i4.1
IL_0242: add
IL_0243: stloc.2
IL_0244: Label27
IL_0244: Label28
IL_0244: Label29
IL_0244: ldloc.s 10 (System.Int32)
IL_0246: ldc.i4.m1
IL_0247: beq => Label30
IL_024C: ldloc.s 9 (System.Int32)
IL_024E: ldc.i4.m1
IL_024F: beq => Label31
IL_0254: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0259: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_025E: ldc.i4.3
IL_025F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0264: brfalse => Label32
IL_0269: ldc.i4.m1
IL_026A: stloc.s 10 (System.Int32)
IL_026C: Label30
IL_026C: Label31
IL_026C: Label32
IL_026C: ldloc.s 9 (System.Int32)
IL_026E: ldc.i4.m1
IL_026F: beq => Label33
IL_0274: ldloc.s 9 (System.Int32)
IL_0276: stloc.s 6 (System.Int32)
IL_0278: Label33
IL_0278: ldloc.s 10 (System.Int32)
IL_027A: ldloc.s 6 (System.Int32)
IL_027C: bne.un => Label34
IL_0281: ldc.i4.m1
IL_0282: stloc.s 6 (System.Int32)
IL_0284: Label34
IL_0284: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_0289: stloc.s 27 (UnityEngine.Vector3)
IL_028B: ldloc.s 10 (System.Int32)
IL_028D: ldc.i4.m1
IL_028E: beq => Label35
IL_0293: ldarg.1
IL_0294: ldloc.s 10 (System.Int32)
IL_0296: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_029B: stloc.s 28 (System.UInt16)
IL_029D: ldloc.0
IL_029E: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02A3: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02A8: ldloc.s 28 (System.UInt16)
IL_02AA: ldelema NetSegment
IL_02AF: ldarg.0
IL_02B0: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_02B5: stloc.s 27 (UnityEngine.Vector3)
IL_02B7: ldloc.s 6 (System.Int32)
IL_02B9: ldc.i4.m1
IL_02BA: beq => Label36
IL_02BF: ldarg.1
IL_02C0: ldloc.s 6 (System.Int32)
IL_02C2: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_02C7: stloc.s 28 (System.UInt16)
IL_02C9: ldloc.0
IL_02CA: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02CF: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02D4: ldloc.s 28 (System.UInt16)
IL_02D6: ldelema NetSegment
IL_02DB: ldarg.0
IL_02DC: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_02E1: stloc.s 29 (UnityEngine.Vector3)
IL_02E3: ldloca.s 29 (UnityEngine.Vector3)
IL_02E5: ldfld System.Single UnityEngine.Vector3::x
IL_02EA: ldloca.s 27 (UnityEngine.Vector3)
IL_02EC: ldfld System.Single UnityEngine.Vector3::x
IL_02F1: mul
IL_02F2: ldloca.s 29 (UnityEngine.Vector3)
IL_02F4: ldfld System.Single UnityEngine.Vector3::z
IL_02F9: ldloca.s 27 (UnityEngine.Vector3)
IL_02FB: ldfld System.Single UnityEngine.Vector3::z
IL_0300: mul
IL_0301: add
IL_0302: ldc.r4 -0.5
IL_0307: bge.un => Label37
IL_030C: ldc.i4.m1
IL_030D: stloc.s 6 (System.Int32)
IL_030F: Label36
IL_030F: Label37
IL_030F: ldloc.s 6 (System.Int32)
IL_0311: ldc.i4.m1
IL_0312: bne.un => Label38
IL_0317: ldc.i4.0
IL_0318: stloc.s 30 (System.Int32)
IL_031A: br => Label39
IL_031F: Label45
IL_031F: ldloc.s 30 (System.Int32)
IL_0321: ldloc.s 10 (System.Int32)
IL_0323: beq => Label40
IL_0328: ldloc.s 11 (System.Int32)
IL_032A: ldc.i4.1
IL_032B: ldloc.s 30 (System.Int32)
IL_032D: ldc.i4.s 31
IL_032F: and
IL_0330: shl
IL_0331: and
IL_0332: brfalse => Label41
IL_0337: ldarg.1
IL_0338: ldloc.s 30 (System.Int32)
IL_033A: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_033F: stloc.s 28 (System.UInt16)
IL_0341: ldloc.s 28 (System.UInt16)
IL_0343: brfalse => Label42
IL_0348: ldloc.0
IL_0349: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_034E: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0353: ldloc.s 28 (System.UInt16)
IL_0355: ldelema NetSegment
IL_035A: ldarg.0
IL_035B: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0360: stloc.s 31 (UnityEngine.Vector3)
IL_0362: ldloca.s 31 (UnityEngine.Vector3)
IL_0364: ldfld System.Single UnityEngine.Vector3::x
IL_0369: ldloca.s 27 (UnityEngine.Vector3)
IL_036B: ldfld System.Single UnityEngine.Vector3::x
IL_0370: mul
IL_0371: ldloca.s 31 (UnityEngine.Vector3)
IL_0373: ldfld System.Single UnityEngine.Vector3::z
IL_0378: ldloca.s 27 (UnityEngine.Vector3)
IL_037A: ldfld System.Single UnityEngine.Vector3::z
IL_037F: mul
IL_0380: add
IL_0381: ldc.r4 -0.5
IL_0386: blt.un => Label43
IL_038B: ldloc.s 30 (System.Int32)
IL_038D: stloc.s 6 (System.Int32)
IL_038F: br => Label44
IL_0394: Label40
IL_0394: Label41
IL_0394: Label42
IL_0394: Label43
IL_0394: ldloc.s 30 (System.Int32)
IL_0396: ldc.i4.1
IL_0397: add
IL_0398: stloc.s 30 (System.Int32)
IL_039A: Label39
IL_039A: ldloc.s 30 (System.Int32)
IL_039C: ldc.i4.8
IL_039D: blt => Label45
IL_03A2: Label35
IL_03A2: Label38
IL_03A2: Label44
IL_03A2: ldc.i4.m1
IL_03A3: stloc.s 32 (System.Int32)
IL_03A5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_03AA: stloc.s 33 (UnityEngine.Vector3)
IL_03AC: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_03B1: stloc.s 34 (UnityEngine.Vector3)
IL_03B3: ldloc.s 6 (System.Int32)
IL_03B5: ldc.i4.m1
IL_03B6: beq => Label46
IL_03BB: ldarg.1
IL_03BC: ldloc.s 6 (System.Int32)
IL_03BE: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_03C3: stloc.s 35 (System.UInt16)
IL_03C5: ldloc.0
IL_03C6: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_03CB: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_03D0: ldloc.s 35 (System.UInt16)
IL_03D2: ldelema NetSegment
IL_03D7: ldarg.0
IL_03D8: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_03DD: stloc.s 33 (UnityEngine.Vector3)
IL_03DF: ldloc.s 11 (System.Int32)
IL_03E1: ldloc.s 12 (System.Int32)
IL_03E3: and
IL_03E4: ldc.i4.1
IL_03E5: ldloc.s 6 (System.Int32)
IL_03E7: ldc.i4.s 31
IL_03E9: and
IL_03EA: shl
IL_03EB: and
IL_03EC: brfalse => Label47
IL_03F1: ldc.i4.0
IL_03F2: stloc.s 36 (System.Int32)
IL_03F4: br => Label48
IL_03F9: Label59
IL_03F9: ldloc.s 36 (System.Int32)
IL_03FB: ldloc.s 6 (System.Int32)
IL_03FD: beq => Label49
IL_0402: ldloc.s 36 (System.Int32)
IL_0404: ldloc.s 10 (System.Int32)
IL_0406: beq => Label50
IL_040B: ldloc.s 11 (System.Int32)
IL_040D: ldloc.s 12 (System.Int32)
IL_040F: and
IL_0410: ldc.i4.1
IL_0411: ldloc.s 36 (System.Int32)
IL_0413: ldc.i4.s 31
IL_0415: and
IL_0416: shl
IL_0417: and
IL_0418: brfalse => Label51
IL_041D: ldarg.1
IL_041E: ldloc.s 36 (System.Int32)
IL_0420: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0425: stloc.s 35 (System.UInt16)
IL_0427: ldloc.s 35 (System.UInt16)
IL_0429: brfalse => Label52
IL_042E: ldloc.0
IL_042F: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0434: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0439: ldloc.s 35 (System.UInt16)
IL_043B: ldelema NetSegment
IL_0440: ldarg.0
IL_0441: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0446: stloc.s 34 (UnityEngine.Vector3)
IL_0448: ldloc.s 10 (System.Int32)
IL_044A: ldc.i4.m1
IL_044B: beq => Label53
IL_0450: ldloca.s 34 (UnityEngine.Vector3)
IL_0452: ldfld System.Single UnityEngine.Vector3::x
IL_0457: ldloca.s 27 (UnityEngine.Vector3)
IL_0459: ldfld System.Single UnityEngine.Vector3::x
IL_045E: mul
IL_045F: ldloca.s 34 (UnityEngine.Vector3)
IL_0461: ldfld System.Single UnityEngine.Vector3::z
IL_0466: ldloca.s 27 (UnityEngine.Vector3)
IL_0468: ldfld System.Single UnityEngine.Vector3::z
IL_046D: mul
IL_046E: add
IL_046F: ldc.r4 -0.5
IL_0474: blt.un => Label54
IL_0479: Label53
IL_0479: ldloc.s 14 (System.Int32)
IL_047B: ldc.i4.2
IL_047C: bne.un => Label55
IL_0481: ldloc.s 36 (System.Int32)
IL_0483: stloc.s 32 (System.Int32)
IL_0485: br => Label56
IL_048A: Label55
IL_048A: ldloca.s 34 (UnityEngine.Vector3)
IL_048C: ldfld System.Single UnityEngine.Vector3::x
IL_0491: ldloca.s 33 (UnityEngine.Vector3)
IL_0493: ldfld System.Single UnityEngine.Vector3::x
IL_0498: mul
IL_0499: ldloca.s 34 (UnityEngine.Vector3)
IL_049B: ldfld System.Single UnityEngine.Vector3::z
IL_04A0: ldloca.s 33 (UnityEngine.Vector3)
IL_04A2: ldfld System.Single UnityEngine.Vector3::z
IL_04A7: mul
IL_04A8: add
IL_04A9: ldc.r4 -0.9396926
IL_04AE: bge.un => Label57
IL_04B3: ldloc.s 36 (System.Int32)
IL_04B5: stloc.s 32 (System.Int32)
IL_04B7: br => Label58
IL_04BC: Label49
IL_04BC: Label50
IL_04BC: Label51
IL_04BC: Label52
IL_04BC: Label54
IL_04BC: Label57
IL_04BC: ldloc.s 36 (System.Int32)
IL_04BE: ldc.i4.1
IL_04BF: add
IL_04C0: stloc.s 36 (System.Int32)
IL_04C2: Label48
IL_04C2: ldloc.s 36 (System.Int32)
IL_04C4: ldc.i4.8
IL_04C5: blt => Label59
IL_04CA: Label46
IL_04CA: Label47
IL_04CA: Label56
IL_04CA: Label58
IL_04CA: ldc.i4.0
IL_04CB: stloc.s 37 (System.Int32)
IL_04CD: br => Label60
IL_04D2: Label79
IL_04D2: ldarg.1
IL_04D3: ldloc.s 37 (System.Int32)
IL_04D5: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_04DA: stloc.s 38 (System.UInt16)
IL_04DC: ldloc.s 38 (System.UInt16)
IL_04DE: brfalse => Label61
IL_04E3: ldarg.0
IL_04E4: ldloc.0
IL_04E5: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_04EA: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_04EF: ldloc.s 38 (System.UInt16)
IL_04F1: ldelema NetSegment
IL_04F6: ldloc.1
IL_04F7: ldc.i4 256
IL_04FC: sub
IL_04FD: ldloca.s 39 (RoadBaseAI+TrafficLightState)
IL_04FF: ldloca.s 40 (RoadBaseAI+TrafficLightState)
IL_0501: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_0506: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0508: ldc.i4.s -2
IL_050A: and
IL_050B: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_050D: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_050F: ldc.i4.s -2
IL_0511: and
IL_0512: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0514: ldloc.s 6 (System.Int32)
IL_0516: ldloc.s 37 (System.Int32)
IL_0518: beq => Label62
IL_051D: ldloc.s 32 (System.Int32)
IL_051F: ldloc.s 37 (System.Int32)
IL_0521: bne.un => Label63
IL_0526: Label62
IL_0526: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0528: ldc.i4.2
IL_0529: and
IL_052A: brfalse => Label64
IL_052F: ldc.i4.1
IL_0530: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0532: ldc.i4.0
IL_0533: stloc.2
IL_0534: ldloc.3
IL_0535: ldc.i4.1
IL_0536: add
IL_0537: dup
IL_0538: stloc.3
IL_0539: ldloc.s 13 (System.Int32)
IL_053B: blt => Label65
IL_0540: ldc.i4.0
IL_0541: stloc.3
IL_0542: Label64
IL_0542: Label65
IL_0542: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0544: ldc.i4.2
IL_0545: and
IL_0546: brtrue => Label66
IL_054B: ldc.i4.3
IL_054C: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_054E: Label66
IL_054E: br => Label67
IL_0553: Label63
IL_0553: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0555: ldc.i4.2
IL_0556: and
IL_0557: brtrue => Label68
IL_055C: ldc.i4.3
IL_055D: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_055F: Label68
IL_055F: ldloc.0
IL_0560: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0565: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_056A: ldloc.s 38 (System.UInt16)
IL_056C: ldelema NetSegment
IL_0571: ldarg.0
IL_0572: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0577: stloc.s 41 (UnityEngine.Vector3)
IL_0579: ldloc.s 12 (System.Int32)
IL_057B: ldc.i4.1
IL_057C: ldloc.s 37 (System.Int32)
IL_057E: ldc.i4.s 31
IL_0580: and
IL_0581: shl
IL_0582: and
IL_0583: brfalse => Label69
IL_0588: ldloc.s 10 (System.Int32)
IL_058A: ldloc.s 37 (System.Int32)
IL_058C: beq => Label70
IL_0591: ldloc.s 6 (System.Int32)
IL_0593: ldc.i4.m1
IL_0594: beq => Label71
IL_0599: ldloca.s 41 (UnityEngine.Vector3)
IL_059B: ldfld System.Single UnityEngine.Vector3::x
IL_05A0: ldloca.s 33 (UnityEngine.Vector3)
IL_05A2: ldfld System.Single UnityEngine.Vector3::x
IL_05A7: mul
IL_05A8: ldloca.s 41 (UnityEngine.Vector3)
IL_05AA: ldfld System.Single UnityEngine.Vector3::z
IL_05AF: ldloca.s 33 (UnityEngine.Vector3)
IL_05B1: ldfld System.Single UnityEngine.Vector3::z
IL_05B6: mul
IL_05B7: add
IL_05B8: ldc.r4 -0.5
IL_05BD: blt => Label72
IL_05C2: Label71
IL_05C2: ldloc.s 32 (System.Int32)
IL_05C4: ldc.i4.m1
IL_05C5: beq => Label73
IL_05CA: ldloca.s 41 (UnityEngine.Vector3)
IL_05CC: ldfld System.Single UnityEngine.Vector3::x
IL_05D1: ldloca.s 34 (UnityEngine.Vector3)
IL_05D3: ldfld System.Single UnityEngine.Vector3::x
IL_05D8: mul
IL_05D9: ldloca.s 41 (UnityEngine.Vector3)
IL_05DB: ldfld System.Single UnityEngine.Vector3::z
IL_05E0: ldloca.s 34 (UnityEngine.Vector3)
IL_05E2: ldfld System.Single UnityEngine.Vector3::z
IL_05E7: mul
IL_05E8: add
IL_05E9: ldc.r4 -0.5
IL_05EE: bge.un => Label74
IL_05F3: Label72
IL_05F3: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05F5: ldc.i4.2
IL_05F6: and
IL_05F7: brtrue => Label75
IL_05FC: ldc.i4.3
IL_05FD: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05FF: Label75
IL_05FF: br => Label76
IL_0604: Label69
IL_0604: Label70
IL_0604: Label73
IL_0604: Label74
IL_0604: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0606: ldc.i4.2
IL_0607: and
IL_0608: brfalse => Label77
IL_060D: ldc.i4.1
IL_060E: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0610: ldloc.s 4 (System.Int32)
IL_0612: ldc.i4.1
IL_0613: add
IL_0614: dup
IL_0615: stloc.s 4 (System.Int32)
IL_0617: ldloc.s 15 (System.Int32)
IL_0619: blt => Label78
IL_061E: ldc.i4.0
IL_061F: stloc.s 4 (System.Int32)
IL_0621: Label67
IL_0621: Label76
IL_0621: Label77
IL_0621: Label78
IL_0621: ldarg.0
IL_0622: ldloc.0
IL_0623: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0628: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_062D: ldloc.s 38 (System.UInt16)
IL_062F: ldelema NetSegment
IL_0634: ldloc.1
IL_0635: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0637: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0639: ldc.i4.0
IL_063A: ldc.i4.0
IL_063B: 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_0640: Label61
IL_0640: ldloc.s 37 (System.Int32)
IL_0642: ldc.i4.1
IL_0643: add
IL_0644: stloc.s 37 (System.Int32)
IL_0646: Label60
IL_0646: ldloc.s 37 (System.Int32)
IL_0648: ldc.i4.8
IL_0649: blt => Label79
IL_064E: ldarg.1
IL_064F: ldloc.s 4 (System.Int32)
IL_0651: ldc.i4.5
IL_0652: shl
IL_0653: ldloc.3
IL_0654: ldc.i4.2
IL_0655: shl
IL_0656: or
IL_0657: ldloc.2
IL_0658: or
IL_0659: conv.u1
IL_065A: stfld System.Byte NetNode::m_maxWaitTime
IL_065F: // end original
IL_065F: Label0
IL_065F: ret
DONE

### Patch: static System.Void RoadBaseAI::GetTrafficLightNodeState(System.UInt16


nodeID, NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData, Flags&
flags, UnityEngine.Color& color)
### Replacement: static System.Void
RoadBaseAI::GetTrafficLightNodeState_Patch1(System.UInt16 nodeID, NetNode&
nodeData, System.UInt16 segmentID, NetSegment& segmentData, Flags& 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.s => Label1
IL_0014: ldarg 0
IL_0018: ldarg 1
IL_001C: ldarg 2
IL_0020: ldarg 3
IL_0024: ldarg 4
IL_0028: ldarg 5
IL_002C: call static System.Boolean
TrafficManager.Patch._RoadBaseAI.GetTrafficLightNodeStatePatch::Prefix(System.UInt1
6 nodeID, NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData,
Flags& flags, UnityEngine.Color& color)
IL_0031: stloc 5 (System.Boolean)
IL_0035: nop
IL_0036: ldloc 5 (System.Boolean)
IL_003A: brfalse => Label0
IL_003F: // start original
IL_003F: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0044: ldfld System.UInt32 SimulationManager::m_referenceFrameIndex
IL_0049: ldc.i4.s 15
IL_004B: sub
IL_004C: stloc.2
IL_004D: ldarg.0
IL_004E: ldc.i4.8
IL_004F: shl
IL_0050: ldc.i4 32768
IL_0055: div.un
IL_0056: stloc.3
IL_0057: ldloc.2
IL_0058: ldloc.3
IL_0059: sub
IL_005A: ldc.i4 255
IL_005F: and
IL_0060: stloc.s 4 (System.UInt32)
IL_0062: ldarg.0
IL_0063: ldarg.3
IL_0064: ldloc.2
IL_0065: ldloc.3
IL_0066: sub
IL_0067: ldloca.s 0 (RoadBaseAI+TrafficLightState)
IL_0069: ldloca.s 1 (RoadBaseAI+TrafficLightState)
IL_006B: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_0070: ldarg.s 5
IL_0072: ldc.r4 0.5
IL_0077: stfld System.Single UnityEngine.Color::a
IL_007C: ldloc.0
IL_007D: switch => Labels2,3,4,5
IL_0092: br => Label6
IL_0097: Label2
IL_0097: ldarg.s 5
IL_0099: ldc.r4 1
IL_009E: stfld System.Single UnityEngine.Color::g
IL_00A3: br => Label7
IL_00A8: Label3
IL_00A8: ldloc.s 4 (System.UInt32)
IL_00AA: ldc.i4.s 45
IL_00AC: bge.un => Label8
IL_00B1: ldarg.s 5
IL_00B3: ldc.r4 0
IL_00B8: stfld System.Single UnityEngine.Color::g
IL_00BD: br => Label9
IL_00C2: Label8
IL_00C2: ldloc.s 4 (System.UInt32)
IL_00C4: ldc.i4.s 60
IL_00C6: bge.un => Label10
IL_00CB: ldarg.s 5
IL_00CD: ldc.r4 1
IL_00D2: stfld System.Single UnityEngine.Color::r
IL_00D7: br => Label11
IL_00DC: Label10
IL_00DC: ldarg.s 5
IL_00DE: ldc.r4 1
IL_00E3: stfld System.Single UnityEngine.Color::g
IL_00E8: Label9
IL_00E8: Label11
IL_00E8: br => Label12
IL_00ED: Label4
IL_00ED: ldarg.s 5
IL_00EF: ldc.r4 0
IL_00F4: stfld System.Single UnityEngine.Color::g
IL_00F9: br => Label13
IL_00FE: Label5
IL_00FE: ldloc.s 4 (System.UInt32)
IL_0100: ldc.i4.s 45
IL_0102: bge.un => Label14
IL_0107: ldarg.s 5
IL_0109: ldc.r4 1
IL_010E: stfld System.Single UnityEngine.Color::r
IL_0113: br => Label15
IL_0118: Label14
IL_0118: ldarg.s 5
IL_011A: ldc.r4 0
IL_011F: stfld System.Single UnityEngine.Color::g
IL_0124: Label15
IL_0124: br => Label16
IL_0129: Label6
IL_0129: Label7
IL_0129: Label12
IL_0129: Label13
IL_0129: Label16
IL_0129: ldloc.1
IL_012A: switch => Labels17,18,19,20
IL_013F: br => Label21
IL_0144: Label17
IL_0144: ldarg.s 5
IL_0146: ldc.r4 1
IL_014B: stfld System.Single UnityEngine.Color::b
IL_0150: br => Label22
IL_0155: Label18
IL_0155: ldloc.s 4 (System.UInt32)
IL_0157: ldc.i4.s 45
IL_0159: bge.un => Label23
IL_015E: ldarg.s 5
IL_0160: ldc.r4 0
IL_0165: stfld System.Single UnityEngine.Color::b
IL_016A: br => Label24
IL_016F: Label23
IL_016F: ldarg.s 5
IL_0171: ldc.r4 1
IL_0176: stfld System.Single UnityEngine.Color::b
IL_017B: Label24
IL_017B: br => Label25
IL_0180: Label19
IL_0180: ldarg.s 5
IL_0182: ldc.r4 0
IL_0187: stfld System.Single UnityEngine.Color::b
IL_018C: br => Label26
IL_0191: Label20
IL_0191: ldloc.s 4 (System.UInt32)
IL_0193: ldc.i4.s 45
IL_0195: bge.un => Label27
IL_019A: ldloc.s 4 (System.UInt32)
IL_019C: ldc.i4.8
IL_019D: div.un
IL_019E: ldc.i4.1
IL_019F: and
IL_01A0: ldc.i4.1
IL_01A1: bne.un => Label28
IL_01A6: ldarg.s 5
IL_01A8: ldc.r4 1
IL_01AD: stfld System.Single UnityEngine.Color::b
IL_01B2: Label28
IL_01B2: br => Label29
IL_01B7: Label27
IL_01B7: ldarg.s 5
IL_01B9: ldc.r4 0
IL_01BE: stfld System.Single UnityEngine.Color::b
IL_01C3: Label29
IL_01C3: br => Label30
IL_01C8: // end original
IL_01C8: Label21
IL_01C8: Label22
IL_01C8: Label25
IL_01C8: Label26
IL_01C8: Label30
IL_01C8: Label0
IL_01C8: ret
DONE

### Patch: virtual System.Void RoadBaseAI::UpdateNode(System.UInt16 nodeID,


NetNode& data)
### Replacement: static System.Void RoadBaseAI::UpdateNode_Patch1(RoadBaseAI this,
System.UInt16 nodeID, NetNode& data)
IL_0000: Local var 0: Notification/Problem
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 Problem NetNode::m_problems
IL_000E: ldc.i8 72057602627866624
IL_0017: call static Problem Notification::RemoveProblems(Problem problems1,
Problem problems2)
IL_001C: stloc.0
IL_001D: ldc.i4.0
IL_001E: stloc.1
IL_001F: ldc.i4.0
IL_0020: stloc.2
IL_0021: ldarg.2
IL_0022: ldarg.1
IL_0023: ldc.i4.0
IL_0024: ldc.i4.s 33
IL_0026: ldc.i4.1
IL_0027: ldc.i4.1
IL_0028: ldloca.s 1 (System.Int32)
IL_002A: ldloca.s 2 (System.Int32)
IL_002C: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, LaneType laneTypes, VehicleType vehicleTypes,
System.Boolean onePerSegment, System.Int32& forward, System.Int32& backward)
IL_0031: ldarg.2
IL_0032: ldfld Flags NetNode::m_flags
IL_0037: ldc.i4 1024
IL_003C: and
IL_003D: brfalse => Label0
IL_0042: ldarg.2
IL_0043: ldfld System.UInt16 NetNode::m_building
IL_0048: brfalse => Label1
IL_004D: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0052: stloc.3
IL_0053: ldloc.1
IL_0054: brfalse => Label2
IL_0059: ldloc.3
IL_005A: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_005F: ldfld Building[] Array16`1<Building>::m_buffer
IL_0064: ldarg.2
IL_0065: ldfld System.UInt16 NetNode::m_building
IL_006A: ldelema Building
IL_006F: dup
IL_0070: ldfld Flags Building::m_flags
IL_0075: ldc.i4 128
IL_007A: or
IL_007B: stfld Flags Building::m_flags
IL_0080: br => Label3
IL_0085: Label2
IL_0085: ldloc.3
IL_0086: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008B: ldfld Building[] Array16`1<Building>::m_buffer
IL_0090: ldarg.2
IL_0091: ldfld System.UInt16 NetNode::m_building
IL_0096: ldelema Building
IL_009B: dup
IL_009C: ldfld Flags Building::m_flags
IL_00A1: ldc.i4 -129
IL_00A6: and
IL_00A7: stfld Flags Building::m_flags
IL_00AC: Label3
IL_00AC: ldloc.2
IL_00AD: brfalse => Label4
IL_00B2: ldloc.3
IL_00B3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00B8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00BD: ldarg.2
IL_00BE: ldfld System.UInt16 NetNode::m_building
IL_00C3: ldelema Building
IL_00C8: dup
IL_00C9: ldfld Flags Building::m_flags
IL_00CE: ldc.i4.s 64
IL_00D0: or
IL_00D1: stfld Flags Building::m_flags
IL_00D6: br => Label5
IL_00DB: Label4
IL_00DB: ldloc.3
IL_00DC: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00E1: ldfld Building[] Array16`1<Building>::m_buffer
IL_00E6: ldarg.2
IL_00E7: ldfld System.UInt16 NetNode::m_building
IL_00EC: ldelema Building
IL_00F1: dup
IL_00F2: ldfld Flags Building::m_flags
IL_00F7: ldc.i4.s -65
IL_00F9: and
IL_00FA: stfld Flags Building::m_flags
IL_00FF: Label5
IL_00FF: br => Label6
IL_0104: Label0
IL_0104: Label1
IL_0104: ldloc.1
IL_0105: brfalse => Label7
IL_010A: ldloc.2
IL_010B: brfalse => Label8
IL_0110: Label7
IL_0110: ldloc.1
IL_0111: brtrue => Label9
IL_0116: ldloc.2
IL_0117: brfalse => Label10
IL_011C: Label8
IL_011C: ldloc.0
IL_011D: ldc.i4 4096
IL_0122: conv.i8
IL_0123: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0128: stloc.0
IL_0129: Label6
IL_0129: Label9
IL_0129: Label10
IL_0129: ldloc.1
IL_012A: ldc.i4.1
IL_012B: bne.un => Label11
IL_0130: ldarg.2
IL_0131: dup
IL_0132: ldfld Flags NetNode::m_flags
IL_0137: ldc.i4 4194304
IL_013C: or
IL_013D: stfld Flags NetNode::m_flags
IL_0142: br => Label12
IL_0147: Label11
IL_0147: ldarg.2
IL_0148: dup
IL_0149: ldfld Flags NetNode::m_flags
IL_014E: ldc.i4 -4194305
IL_0153: and
IL_0154: stfld Flags NetNode::m_flags
IL_0159: Label12
IL_0159: ldloc.2
IL_015A: ldc.i4.1
IL_015B: bne.un => Label13
IL_0160: ldarg.2
IL_0161: dup
IL_0162: ldfld Flags NetNode::m_flags
IL_0167: ldc.i4 16777216
IL_016C: or
IL_016D: stfld Flags NetNode::m_flags
IL_0172: br => Label14
IL_0177: Label13
IL_0177: ldarg.2
IL_0178: dup
IL_0179: ldfld Flags NetNode::m_flags
IL_017E: ldc.i4 -16777217
IL_0183: and
IL_0184: stfld Flags NetNode::m_flags
IL_0189: Label14
IL_0189: ldarg.2
IL_018A: ldfld Flags NetNode::m_flags
IL_018F: ldc.i4 262144
IL_0194: and
IL_0195: brtrue => Label15
IL_019A: ldc.i4.0
IL_019B: stloc.s 4 (System.Int32)
IL_019D: ldc.i4.0
IL_019E: stloc.1
IL_019F: ldc.i4.0
IL_01A0: stloc.2
IL_01A1: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_01A6: stloc.s 5 (NetManager)
IL_01A8: ldc.i4.0
IL_01A9: stloc.s 6 (System.Int32)
IL_01AB: br => Label16
IL_01B0: Label24
IL_01B0: ldarg.2
IL_01B1: ldloc.s 6 (System.Int32)
IL_01B3: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_01B8: stloc.s 7 (System.UInt16)
IL_01BA: ldloc.s 7 (System.UInt16)
IL_01BC: brfalse => Label17
IL_01C1: ldc.i4.0
IL_01C2: stloc.s 8 (System.Int32)
IL_01C4: ldc.i4.0
IL_01C5: stloc.s 9 (System.Int32)
IL_01C7: ldloc.s 5 (NetManager)
IL_01C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01D3: ldloc.s 7 (System.UInt16)
IL_01D5: ldelema NetSegment
IL_01DA: ldloc.s 7 (System.UInt16)
IL_01DC: ldc.i4.s 33
IL_01DE: ldc.i4.s 64
IL_01E0: ldloca.s 8 (System.Int32)
IL_01E2: ldloca.s 9 (System.Int32)
IL_01E4: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_01E9: ldloc.s 8 (System.Int32)
IL_01EB: brtrue => Label18
IL_01F0: ldloc.s 9 (System.Int32)
IL_01F2: brfalse => Label19
IL_01F7: Label18
IL_01F7: ldloc.s 4 (System.Int32)
IL_01F9: ldc.i4.1
IL_01FA: add
IL_01FB: stloc.s 4 (System.Int32)
IL_01FD: ldloc.s 8 (System.Int32)
IL_01FF: brfalse => Label20
IL_0204: ldc.i4.1
IL_0205: stloc.s 8 (System.Int32)
IL_0207: Label20
IL_0207: ldloc.s 9 (System.Int32)
IL_0209: brfalse => Label21
IL_020E: ldc.i4.1
IL_020F: stloc.s 9 (System.Int32)
IL_0211: Label21
IL_0211: ldloc.s 5 (NetManager)
IL_0213: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0218: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_021D: ldloc.s 7 (System.UInt16)
IL_021F: ldelema NetSegment
IL_0224: ldfld System.UInt16 NetSegment::m_endNode
IL_0229: ldarg.1
IL_022A: bne.un => Label22
IL_022F: ldloc.1
IL_0230: ldloc.s 9 (System.Int32)
IL_0232: add
IL_0233: stloc.1
IL_0234: ldloc.2
IL_0235: ldloc.s 8 (System.Int32)
IL_0237: add
IL_0238: stloc.2
IL_0239: br => Label23
IL_023E: Label22
IL_023E: ldloc.1
IL_023F: ldloc.s 8 (System.Int32)
IL_0241: add
IL_0242: stloc.1
IL_0243: ldloc.2
IL_0244: ldloc.s 9 (System.Int32)
IL_0246: add
IL_0247: stloc.2
IL_0248: Label17
IL_0248: Label19
IL_0248: Label23
IL_0248: ldloc.s 6 (System.Int32)
IL_024A: ldc.i4.1
IL_024B: add
IL_024C: stloc.s 6 (System.Int32)
IL_024E: Label16
IL_024E: ldloc.s 6 (System.Int32)
IL_0250: ldc.i4.8
IL_0251: blt => Label24
IL_0256: ldloc.1
IL_0257: brfalse => Label25
IL_025C: ldloc.2
IL_025D: brfalse => Label26
IL_0262: Label25
IL_0262: ldloc.1
IL_0263: brtrue => Label27
IL_0268: ldloc.2
IL_0269: brtrue => Label28
IL_026E: Label27
IL_026E: ldloc.s 4 (System.Int32)
IL_0270: ldc.i4.1
IL_0271: bne.un => Label29
IL_0276: Label26
IL_0276: Label28
IL_0276: ldloc.0
IL_0277: ldc.i8 8589934592
IL_0280: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0285: stloc.0
IL_0286: Label29
IL_0286: ldc.i4.0
IL_0287: stloc.s 4 (System.Int32)
IL_0289: ldc.i4.0
IL_028A: stloc.1
IL_028B: ldc.i4.0
IL_028C: stloc.2
IL_028D: ldc.i4.0
IL_028E: stloc.s 10 (System.Int32)
IL_0290: br => Label30
IL_0295: Label38
IL_0295: ldarg.2
IL_0296: ldloc.s 10 (System.Int32)
IL_0298: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_029D: stloc.s 11 (System.UInt16)
IL_029F: ldloc.s 11 (System.UInt16)
IL_02A1: brfalse => Label31
IL_02A6: ldc.i4.0
IL_02A7: stloc.s 12 (System.Int32)
IL_02A9: ldc.i4.0
IL_02AA: stloc.s 13 (System.Int32)
IL_02AC: ldloc.s 5 (NetManager)
IL_02AE: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02B3: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02B8: ldloc.s 11 (System.UInt16)
IL_02BA: ldelema NetSegment
IL_02BF: ldloc.s 11 (System.UInt16)
IL_02C1: ldc.i4.s 33
IL_02C3: ldc.i4 65536
IL_02C8: ldloca.s 12 (System.Int32)
IL_02CA: ldloca.s 13 (System.Int32)
IL_02CC: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_02D1: ldloc.s 12 (System.Int32)
IL_02D3: brtrue => Label32
IL_02D8: ldloc.s 13 (System.Int32)
IL_02DA: brfalse => Label33
IL_02DF: Label32
IL_02DF: ldloc.s 4 (System.Int32)
IL_02E1: ldc.i4.1
IL_02E2: add
IL_02E3: stloc.s 4 (System.Int32)
IL_02E5: ldloc.s 12 (System.Int32)
IL_02E7: brfalse => Label34
IL_02EC: ldc.i4.1
IL_02ED: stloc.s 12 (System.Int32)
IL_02EF: Label34
IL_02EF: ldloc.s 13 (System.Int32)
IL_02F1: brfalse => Label35
IL_02F6: ldc.i4.1
IL_02F7: stloc.s 13 (System.Int32)
IL_02F9: Label35
IL_02F9: ldloc.s 5 (NetManager)
IL_02FB: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0300: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0305: ldloc.s 11 (System.UInt16)
IL_0307: ldelema NetSegment
IL_030C: ldfld System.UInt16 NetSegment::m_endNode
IL_0311: ldarg.1
IL_0312: bne.un => Label36
IL_0317: ldloc.1
IL_0318: ldloc.s 13 (System.Int32)
IL_031A: add
IL_031B: stloc.1
IL_031C: ldloc.2
IL_031D: ldloc.s 12 (System.Int32)
IL_031F: add
IL_0320: stloc.2
IL_0321: br => Label37
IL_0326: Label36
IL_0326: ldloc.1
IL_0327: ldloc.s 12 (System.Int32)
IL_0329: add
IL_032A: stloc.1
IL_032B: ldloc.2
IL_032C: ldloc.s 13 (System.Int32)
IL_032E: add
IL_032F: stloc.2
IL_0330: Label31
IL_0330: Label33
IL_0330: Label37
IL_0330: ldloc.s 10 (System.Int32)
IL_0332: ldc.i4.1
IL_0333: add
IL_0334: stloc.s 10 (System.Int32)
IL_0336: Label30
IL_0336: ldloc.s 10 (System.Int32)
IL_0338: ldc.i4.8
IL_0339: blt => Label38
IL_033E: ldloc.1
IL_033F: brfalse => Label39
IL_0344: ldloc.2
IL_0345: brfalse => Label40
IL_034A: Label39
IL_034A: ldloc.1
IL_034B: brtrue => Label41
IL_0350: ldloc.2
IL_0351: brtrue => Label42
IL_0356: Label41
IL_0356: ldloc.s 4 (System.Int32)
IL_0358: ldc.i4.1
IL_0359: bne.un => Label43
IL_035E: Label40
IL_035E: Label42
IL_035E: ldloc.0
IL_035F: ldc.i8 72057594037927936
IL_0368: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_036D: stloc.0
IL_036E: Label15
IL_036E: Label43
IL_036E: ldarg.2
IL_036F: ldloc.0
IL_0370: stfld Problem NetNode::m_problems
IL_0375: // end original
IL_0375: ldarg 1
IL_0379: ldarg 2
IL_037D: call static System.Void
TrafficManager.Patch._RoadBaseAI.UpdateNodePatch::Postfix(System.UInt16 nodeID,
NetNode& data)
IL_0382: ret
DONE

### Patch: virtual System.Void RoadBaseAI::UpdateLanes(System.UInt16 segmentID,


NetSegment& data, System.Boolean loading)
### Replacement: static System.Void 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<NetManager>::get_instance()
IL_0005: stloc.0
IL_0006: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::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<NetNode> NetManager::m_nodes
IL_0176: ldfld NetNode[] Array16`1<NetNode>::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: ldarg.2
IL_0192: ldfld UnityEngine.Vector3 NetSegment::m_endDirection
IL_0197: call static UnityEngine.Vector3
UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a)
IL_019C: ldloca.s 12 (System.Int32)
IL_019E: ldloca.s 13 (System.Int32)
IL_01A0: ldloca.s 14 (System.Int32)
IL_01A2: ldloca.s 15 (System.Int32)
IL_01A4: ldloca.s 16 (System.Int32)
IL_01A6: ldloca.s 17 (System.Int32)
IL_01A8: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, Direction directions, LaneType laneTypes, VehicleType
vehicleTypes, UnityEngine.Vector3 direction, System.Int32& left, System.Int32&
forward, System.Int32& right, System.Int32& left2, System.Int32& forward2,
System.Int32& right2)
IL_01AD: ldloc.0
IL_01AE: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_01B3: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_01B8: ldarg.2
IL_01B9: ldfld System.UInt16 NetSegment::m_endNode
IL_01BE: ldelema NetNode
IL_01C3: ldfld Flags NetNode::m_flags
IL_01C8: ldc.i4 1136
IL_01CD: and
IL_01CE: brfalse => Label2
IL_01D3: ldloc.s 12 (System.Int32)
IL_01D5: ldloc.s 13 (System.Int32)
IL_01D7: add
IL_01D8: ldloc.s 14 (System.Int32)
IL_01DA: add
IL_01DB: brtrue => Label3
IL_01E0: ldc.i4.1
IL_01E1: stloc.s 19 (System.Boolean)
IL_01E3: br => Label4
IL_01E8: Label3
IL_01E8: ldc.i4.1
IL_01E9: stloc.s 18 (System.Boolean)
IL_01EB: Label2
IL_01EB: Label4
IL_01EB: ldc.i4.0
IL_01EC: stloc.s 20 (System.Int32)
IL_01EE: ldc.i4.0
IL_01EF: stloc.s 21 (System.Int32)
IL_01F1: ldc.i4.0
IL_01F2: stloc.s 22 (System.Int32)
IL_01F4: ldc.i4.0
IL_01F5: stloc.s 23 (System.Int32)
IL_01F7: ldc.i4.0
IL_01F8: stloc.s 24 (System.Int32)
IL_01FA: ldc.i4.0
IL_01FB: stloc.s 25 (System.Int32)
IL_01FD: ldc.i4.0
IL_01FE: stloc.s 26 (System.Boolean)
IL_0200: ldc.i4.0
IL_0201: stloc.s 27 (System.Boolean)
IL_0203: ldloc.0
IL_0204: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0209: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_020E: ldarg.2
IL_020F: ldfld System.UInt16 NetSegment::m_startNode
IL_0214: ldelema NetNode
IL_0219: ldarg.2
IL_021A: ldfld System.UInt16 NetSegment::m_startNode
IL_021F: ldarg.1
IL_0220: ldc.i4.1
IL_0221: ldc.i4.s 33
IL_0223: ldc.i4.1
IL_0224: ldarg.2
IL_0225: ldfld UnityEngine.Vector3 NetSegment::m_startDirection
IL_022A: call static UnityEngine.Vector3
UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a)
IL_022F: ldloca.s 20 (System.Int32)
IL_0231: ldloca.s 21 (System.Int32)
IL_0233: ldloca.s 22 (System.Int32)
IL_0235: ldloca.s 23 (System.Int32)
IL_0237: ldloca.s 24 (System.Int32)
IL_0239: ldloca.s 25 (System.Int32)
IL_023B: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, Direction directions, LaneType laneTypes, VehicleType
vehicleTypes, UnityEngine.Vector3 direction, System.Int32& left, System.Int32&
forward, System.Int32& right, System.Int32& left2, System.Int32& forward2,
System.Int32& right2)
IL_0240: ldloc.0
IL_0241: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0246: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_024B: ldarg.2
IL_024C: ldfld System.UInt16 NetSegment::m_startNode
IL_0251: ldelema NetNode
IL_0256: ldfld Flags NetNode::m_flags
IL_025B: ldc.i4 1136
IL_0260: and
IL_0261: brfalse => Label5
IL_0266: ldloc.s 20 (System.Int32)
IL_0268: ldloc.s 21 (System.Int32)
IL_026A: add
IL_026B: ldloc.s 22 (System.Int32)
IL_026D: add
IL_026E: brtrue => Label6
IL_0273: ldc.i4.1
IL_0274: stloc.s 27 (System.Boolean)
IL_0276: br => Label7
IL_027B: Label6
IL_027B: ldc.i4.1
IL_027C: stloc.s 26 (System.Boolean)
IL_027E: Label5
IL_027E: Label7
IL_027E: ldc.i4.0
IL_027F: stloc.s 28 (NetLane+Flags)
IL_0281: ldloc.s 15 (System.Int32)
IL_0283: brfalse => Label8
IL_0288: ldloc.s 12 (System.Int32)
IL_028A: brtrue => Label9
IL_028F: ldloc.s 28 (NetLane+Flags)
IL_0291: ldarg.2
IL_0292: ldfld Flags NetSegment::m_flags
IL_0297: ldc.i4.s 16
IL_0299: and
IL_029A: brfalse => Label10
IL_029F: ldc.i4 4096
IL_02A4: br => Label11
IL_02A9: Label10
IL_02A9: ldc.i4 16384
IL_02AE: Label11
IL_02AE: or
IL_02AF: stloc.s 28 (NetLane+Flags)
IL_02B1: Label8
IL_02B1: Label9
IL_02B1: ldloc.s 17 (System.Int32)
IL_02B3: brfalse => Label12
IL_02B8: ldloc.s 14 (System.Int32)
IL_02BA: brtrue => Label13
IL_02BF: ldloc.s 28 (NetLane+Flags)
IL_02C1: ldarg.2
IL_02C2: ldfld Flags NetSegment::m_flags
IL_02C7: ldc.i4.s 16
IL_02C9: and
IL_02CA: brfalse => Label14
IL_02CF: ldc.i4 8192
IL_02D4: br => Label15
IL_02D9: Label14
IL_02D9: ldc.i4 32768
IL_02DE: Label15
IL_02DE: or
IL_02DF: stloc.s 28 (NetLane+Flags)
IL_02E1: Label12
IL_02E1: Label13
IL_02E1: ldloc.s 23 (System.Int32)
IL_02E3: brfalse => Label16
IL_02E8: ldloc.s 20 (System.Int32)
IL_02EA: brtrue => Label17
IL_02EF: ldloc.s 28 (NetLane+Flags)
IL_02F1: ldarg.2
IL_02F2: ldfld Flags NetSegment::m_flags
IL_02F7: ldc.i4.s 16
IL_02F9: and
IL_02FA: brfalse => Label18
IL_02FF: ldc.i4 16384
IL_0304: br => Label19
IL_0309: Label18
IL_0309: ldc.i4 4096
IL_030E: Label19
IL_030E: or
IL_030F: stloc.s 28 (NetLane+Flags)
IL_0311: Label16
IL_0311: Label17
IL_0311: ldloc.s 25 (System.Int32)
IL_0313: brfalse => Label20
IL_0318: ldloc.s 22 (System.Int32)
IL_031A: brtrue => Label21
IL_031F: ldloc.s 28 (NetLane+Flags)
IL_0321: ldarg.2
IL_0322: ldfld Flags NetSegment::m_flags
IL_0327: ldc.i4.s 16
IL_0329: and
IL_032A: brfalse => Label22
IL_032F: ldc.i4 32768
IL_0334: br => Label23
IL_0339: Label22
IL_0339: ldc.i4 8192
IL_033E: Label23
IL_033E: or
IL_033F: stloc.s 28 (NetLane+Flags)
IL_0341: Label20
IL_0341: Label21
IL_0341: ldarg.2
IL_0342: ldfld Flags NetSegment::m_flags
IL_0347: ldc.i4 1073741824
IL_034C: and
IL_034D: brfalse => Label24
IL_0352: ldloc.s 28 (NetLane+Flags)
IL_0354: ldarg.2
IL_0355: ldfld Flags NetSegment::m_flags
IL_035A: ldc.i4.s 16
IL_035C: and
IL_035D: brfalse => Label25
IL_0362: ldc.i4 2048
IL_0367: br => Label26
IL_036C: Label25
IL_036C: ldc.i4 1024
IL_0371: Label26
IL_0371: or
IL_0372: stloc.s 28 (NetLane+Flags)
IL_0374: Label24
IL_0374: ldarg.2
IL_0375: ldfld Flags NetSegment::m_flags
IL_037A: ldc.i4 -2147483648
IL_037F: and
IL_0380: brfalse => Label27
IL_0385: ldloc.s 28 (NetLane+Flags)
IL_0387: ldarg.2
IL_0388: ldfld Flags NetSegment::m_flags
IL_038D: ldc.i4.s 16
IL_038F: and
IL_0390: brfalse => Label28
IL_0395: ldc.i4 1024
IL_039A: br => Label29
IL_039F: Label28
IL_039F: ldc.i4 2048
IL_03A4: Label29
IL_03A4: or
IL_03A5: stloc.s 28 (NetLane+Flags)
IL_03A7: Label27
IL_03A7: ldc.r4 0
IL_03AC: stloc.s 29 (System.Single)
IL_03AE: ldc.r4 0
IL_03B3: stloc.s 30 (System.Single)
IL_03B5: ldc.i4.0
IL_03B6: stloc.s 31 (System.UInt32)
IL_03B8: ldarg.2
IL_03B9: ldfld System.UInt32 NetSegment::m_lanes
IL_03BE: stloc.s 32 (System.UInt32)
IL_03C0: ldc.i4.0
IL_03C1: stloc.s 33 (System.Int32)
IL_03C3: br => Label30
IL_03C8: Label89
IL_03C8: ldloc.s 32 (System.UInt32)
IL_03CA: brtrue => Label31
IL_03CF: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_03D4: ldloca.s 32 (System.UInt32)
IL_03D6: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_03DB: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_03E0: ldarg.1
IL_03E1: ldc.i4.1
IL_03E2: callvirt System.Boolean NetManager::CreateLanes(System.UInt32&
firstLane, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segment,
System.Int32 count)
IL_03E7: brfalse => Label32
IL_03EC: ldloc.s 31 (System.UInt32)
IL_03EE: brfalse => Label33
IL_03F3: ldloc.0
IL_03F4: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_03F9: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_03FE: ldloc.s 31 (System.UInt32)
IL_0400: conv.u
IL_0401: ldelema NetLane
IL_0406: ldloc.s 32 (System.UInt32)
IL_0408: stfld System.UInt32 NetLane::m_nextLane
IL_040D: br => Label34
IL_0412: Label33
IL_0412: ldarg.2
IL_0413: ldloc.s 32 (System.UInt32)
IL_0415: stfld System.UInt32 NetSegment::m_lanes
IL_041A: Label34
IL_041A: br => Label35
IL_041F: Label32
IL_041F: br => Label36
IL_0424: Label31
IL_0424: Label35
IL_0424: ldarg.0
IL_0425: ldfld NetInfo NetAI::m_info
IL_042A: ldfld Lane[] NetInfo::m_lanes
IL_042F: ldloc.s 33 (System.Int32)
IL_0431: ldelem.ref
IL_0432: stloc.s 34 (NetInfo+Lane)
IL_0434: ldloc.s 34 (NetInfo+Lane)
IL_0436: ldfld System.Single Lane::m_position
IL_043B: ldarg.0
IL_043C: ldfld NetInfo NetAI::m_info
IL_0441: ldfld System.Single NetInfo::m_halfWidth
IL_0446: ldc.r4 2
IL_044B: mul
IL_044C: div
IL_044D: ldc.r4 0.5
IL_0452: add
IL_0453: stloc.s 35 (System.Single)
IL_0455: ldarg.2
IL_0456: ldfld Flags NetSegment::m_flags
IL_045B: ldc.i4.s 16
IL_045D: and
IL_045E: brfalse => Label37
IL_0463: ldc.r4 1
IL_0468: ldloc.s 35 (System.Single)
IL_046A: sub
IL_046B: stloc.s 35 (System.Single)
IL_046D: Label37
IL_046D: ldloc.2
IL_046E: ldloc.3
IL_046F: ldloc.2
IL_0470: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0475: ldloc.s 35 (System.Single)
IL_0477: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_047C: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0481: stloc.s 36 (UnityEngine.Vector3)
IL_0483: ldloc.s 6 (UnityEngine.Vector3)
IL_0485: ldloc.s 7 (UnityEngine.Vector3)
IL_0487: ldloc.s 35 (System.Single)
IL_0489: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_048E: stloc.s 37 (UnityEngine.Vector3)
IL_0490: ldloc.s 4 (UnityEngine.Vector3)
IL_0492: ldloc.s 5 (UnityEngine.Vector3)
IL_0494: ldloc.s 4 (UnityEngine.Vector3)
IL_0496: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_049B: ldloc.s 35 (System.Single)
IL_049D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_04A2: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_04A7: stloc.s 38 (UnityEngine.Vector3)
IL_04A9: ldloc.s 8 (UnityEngine.Vector3)
IL_04AB: ldloc.s 9 (UnityEngine.Vector3)
IL_04AD: ldloc.s 35 (System.Single)
IL_04AF: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_04B4: stloc.s 39 (UnityEngine.Vector3)
IL_04B6: ldloca.s 36 (UnityEngine.Vector3)
IL_04B8: dup
IL_04B9: ldfld System.Single UnityEngine.Vector3::y
IL_04BE: ldloc.s 34 (NetInfo+Lane)
IL_04C0: ldfld System.Single Lane::m_verticalOffset
IL_04C5: add
IL_04C6: stfld System.Single UnityEngine.Vector3::y
IL_04CB: ldloca.s 38 (UnityEngine.Vector3)
IL_04CD: dup
IL_04CE: ldfld System.Single UnityEngine.Vector3::y
IL_04D3: ldloc.s 34 (NetInfo+Lane)
IL_04D5: ldfld System.Single Lane::m_verticalOffset
IL_04DA: add
IL_04DB: stfld System.Single UnityEngine.Vector3::y
IL_04E0: ldloc.s 36 (UnityEngine.Vector3)
IL_04E2: ldloc.s 37 (UnityEngine.Vector3)
IL_04E4: ldloc.s 38 (UnityEngine.Vector3)
IL_04E6: ldloc.s 39 (UnityEngine.Vector3)
IL_04E8: ldloc.s 10 (System.Boolean)
IL_04EA: ldloc.s 11 (System.Boolean)
IL_04EC: ldloca.s 40 (UnityEngine.Vector3)
IL_04EE: ldloca.s 41 (UnityEngine.Vector3)
IL_04F0: 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_04F5: ldloc.0
IL_04F6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_04FB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0500: ldloc.s 32 (System.UInt32)
IL_0502: conv.u
IL_0503: ldelema NetLane
IL_0508: ldfld System.UInt16 NetLane::m_flags
IL_050D: stloc.s 42 (NetLane+Flags)
IL_050F: ldloc.s 28 (NetLane+Flags)
IL_0511: stloc.s 43 (NetLane+Flags)
IL_0513: ldloc.s 42 (NetLane+Flags)
IL_0515: ldc.i4 -64753
IL_051A: and
IL_051B: stloc.s 42 (NetLane+Flags)
IL_051D: ldloc.s 34 (NetInfo+Lane)
IL_051F: ldfld Direction Lane::m_finalDirection
IL_0524: ldc.i4.3
IL_0525: and
IL_0526: conv.u1
IL_0527: ldc.i4.2
IL_0528: bne.un => Label38
IL_052D: ldloc.s 43 (NetLane+Flags)
IL_052F: ldc.i4 -2049
IL_0534: and
IL_0535: stloc.s 43 (NetLane+Flags)
IL_0537: Label38
IL_0537: ldloc.s 34 (NetInfo+Lane)
IL_0539: ldfld Direction Lane::m_finalDirection
IL_053E: ldc.i4.3
IL_053F: and
IL_0540: conv.u1
IL_0541: ldc.i4.1
IL_0542: bne.un => Label39
IL_0547: ldloc.s 43 (NetLane+Flags)
IL_0549: ldc.i4 -1025
IL_054E: and
IL_054F: stloc.s 43 (NetLane+Flags)
IL_0551: Label39
IL_0551: ldloc.s 34 (NetInfo+Lane)
IL_0553: ldfld VehicleType Lane::m_vehicleType
IL_0558: ldc.i4 2048
IL_055D: and
IL_055E: brfalse => Label40
IL_0563: ldloc.s 43 (NetLane+Flags)
IL_0565: ldc.i4 -3073
IL_056A: and
IL_056B: stloc.s 43 (NetLane+Flags)
IL_056D: Label40
IL_056D: ldloc.s 42 (NetLane+Flags)
IL_056F: ldloc.s 43 (NetLane+Flags)
IL_0571: or
IL_0572: stloc.s 42 (NetLane+Flags)
IL_0574: ldloc.1
IL_0575: brfalse => Label41
IL_057A: ldloc.s 42 (NetLane+Flags)
IL_057C: ldc.i4.4
IL_057D: or
IL_057E: stloc.s 42 (NetLane+Flags)
IL_0580: br => Label42
IL_0585: Label41
IL_0585: ldloc.s 42 (NetLane+Flags)
IL_0587: ldc.i4.s -5
IL_0589: and
IL_058A: stloc.s 42 (NetLane+Flags)
IL_058C: Label42
IL_058C: ldc.i4.0
IL_058D: stloc.s 44 (System.Int32)
IL_058F: ldc.i4 255
IL_0594: stloc.s 45 (System.Int32)
IL_0596: ldloc.s 34 (NetInfo+Lane)
IL_0598: ldfld LaneType Lane::m_laneType
IL_059D: ldc.i4.s 33
IL_059F: and
IL_05A0: conv.u1
IL_05A1: brfalse => Label43
IL_05A6: ldloc.s 34 (NetInfo+Lane)
IL_05A8: ldfld Direction Lane::m_finalDirection
IL_05AD: ldc.i4.1
IL_05AE: and
IL_05AF: conv.u1
IL_05B0: ldc.i4.0
IL_05B1: ceq
IL_05B3: ldc.i4.0
IL_05B4: ceq
IL_05B6: ldarg.2
IL_05B7: ldfld Flags NetSegment::m_flags
IL_05BC: ldc.i4.s 16
IL_05BE: and
IL_05BF: ldc.i4.0
IL_05C0: ceq
IL_05C2: ceq
IL_05C4: stloc.s 46 (System.Boolean)
IL_05C6: ldloc.s 46 (System.Boolean)
IL_05C8: brfalse => Label44
IL_05CD: ldloc.s 12 (System.Int32)
IL_05CF: stloc.s 47 (System.Int32)
IL_05D1: ldloc.s 13 (System.Int32)
IL_05D3: stloc.s 48 (System.Int32)
IL_05D5: ldloc.s 14 (System.Int32)
IL_05D7: stloc.s 49 (System.Int32)
IL_05D9: br => Label45
IL_05DE: Label44
IL_05DE: ldloc.s 20 (System.Int32)
IL_05E0: stloc.s 47 (System.Int32)
IL_05E2: ldloc.s 21 (System.Int32)
IL_05E4: stloc.s 48 (System.Int32)
IL_05E6: ldloc.s 22 (System.Int32)
IL_05E8: stloc.s 49 (System.Int32)
IL_05EA: Label45
IL_05EA: ldloc.s 34 (NetInfo+Lane)
IL_05EC: ldfld Direction Lane::m_finalDirection
IL_05F1: ldc.i4.1
IL_05F2: and
IL_05F3: conv.u1
IL_05F4: brfalse => Label46
IL_05F9: ldloc.s 34 (NetInfo+Lane)
IL_05FB: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0600: stloc.s 50 (System.Int32)
IL_0602: ldloc.s 34 (NetInfo+Lane)
IL_0604: ldfld System.Int32 Lane::m_similarLaneCount
IL_0609: ldloc.s 34 (NetInfo+Lane)
IL_060B: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0610: sub
IL_0611: ldc.i4.1
IL_0612: sub
IL_0613: stloc.s 51 (System.Int32)
IL_0615: br => Label47
IL_061A: Label46
IL_061A: ldloc.s 34 (NetInfo+Lane)
IL_061C: ldfld System.Int32 Lane::m_similarLaneCount
IL_0621: ldloc.s 34 (NetInfo+Lane)
IL_0623: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0628: sub
IL_0629: ldc.i4.1
IL_062A: sub
IL_062B: stloc.s 50 (System.Int32)
IL_062D: ldloc.s 34 (NetInfo+Lane)
IL_062F: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0634: stloc.s 51 (System.Int32)
IL_0636: Label47
IL_0636: ldloc.s 47 (System.Int32)
IL_0638: ldloc.s 48 (System.Int32)
IL_063A: add
IL_063B: ldloc.s 49 (System.Int32)
IL_063D: add
IL_063E: stloc.s 52 (System.Int32)
IL_0640: ldc.i4 255
IL_0645: stloc.s 44 (System.Int32)
IL_0647: ldc.i4.0
IL_0648: stloc.s 45 (System.Int32)
IL_064A: ldloc.s 52 (System.Int32)
IL_064C: brfalse => Label48
IL_0651: ldloc.s 34 (NetInfo+Lane)
IL_0653: ldfld System.Int32 Lane::m_similarLaneCount
IL_0658: ldloc.s 52 (System.Int32)
IL_065A: ble => Label49
IL_065F: ldloc.s 52 (System.Int32)
IL_0661: ldc.i4.0
IL_0662: ble => Label50
IL_0667: ldloc.s 52 (System.Int32)
IL_0669: ldloc.s 50 (System.Int32)
IL_066B: mul
IL_066C: ldloc.s 34 (NetInfo+Lane)
IL_066E: ldfld System.Int32 Lane::m_similarLaneCount
IL_0673: div
IL_0674: stloc.s 44 (System.Int32)
IL_0676: ldloc.s 52 (System.Int32)
IL_0678: ldloc.s 52 (System.Int32)
IL_067A: ldloc.s 51 (System.Int32)
IL_067C: mul
IL_067D: ldloc.s 34 (NetInfo+Lane)
IL_067F: ldfld System.Int32 Lane::m_similarLaneCount
IL_0684: div
IL_0685: sub
IL_0686: stloc.s 45 (System.Int32)
IL_0688: ldloc.s 42 (NetLane+Flags)
IL_068A: ldc.i4 128
IL_068F: or
IL_0690: stloc.s 42 (NetLane+Flags)
IL_0692: ldloc.s 44 (System.Int32)
IL_0694: ldloc.s 47 (System.Int32)
IL_0696: bge => Label51
IL_069B: ldloc.s 42 (NetLane+Flags)
IL_069D: ldc.i4.s 32
IL_069F: or
IL_06A0: stloc.s 42 (NetLane+Flags)
IL_06A2: Label51
IL_06A2: ldloc.s 52 (System.Int32)
IL_06A4: ldloc.s 45 (System.Int32)
IL_06A6: sub
IL_06A7: ldloc.s 49 (System.Int32)
IL_06A9: bge => Label52
IL_06AE: ldloc.s 42 (NetLane+Flags)
IL_06B0: ldc.i4.s 64
IL_06B2: or
IL_06B3: stloc.s 42 (NetLane+Flags)
IL_06B5: Label52
IL_06B5: ldloc.s 48 (System.Int32)
IL_06B7: brfalse => Label53
IL_06BC: ldloc.s 44 (System.Int32)
IL_06BE: ldloc.s 47 (System.Int32)
IL_06C0: ldloc.s 48 (System.Int32)
IL_06C2: add
IL_06C3: bge => Label54
IL_06C8: ldloc.s 45 (System.Int32)
IL_06CA: ldloc.s 47 (System.Int32)
IL_06CC: ble => Label55
IL_06D1: ldloc.s 42 (NetLane+Flags)
IL_06D3: ldc.i4.s 16
IL_06D5: or
IL_06D6: stloc.s 42 (NetLane+Flags)
IL_06D8: Label53
IL_06D8: Label54
IL_06D8: Label55
IL_06D8: br => Label56
IL_06DD: Label49
IL_06DD: Label50
IL_06DD: ldloc.s 34 (NetInfo+Lane)
IL_06DF: ldfld System.Int32 Lane::m_similarLaneCount
IL_06E4: ldloc.s 52 (System.Int32)
IL_06E6: blt => Label57
IL_06EB: ldloc.s 47 (System.Int32)
IL_06ED: stloc.s 53 (System.Int32)
IL_06EF: ldloc.s 49 (System.Int32)
IL_06F1: stloc.s 54 (System.Int32)
IL_06F3: br => Label58
IL_06F8: Label57
IL_06F8: ldloc.s 47 (System.Int32)
IL_06FA: ldloc.s 34 (NetInfo+Lane)
IL_06FC: ldfld System.Int32 Lane::m_similarLaneCount
IL_0701: mul
IL_0702: ldloc.s 52 (System.Int32)
IL_0704: ldloc.s 48 (System.Int32)
IL_0706: ldc.i4.1
IL_0707: shr
IL_0708: add
IL_0709: div
IL_070A: stloc.s 53 (System.Int32)
IL_070C: ldloc.s 49 (System.Int32)
IL_070E: ldloc.s 34 (NetInfo+Lane)
IL_0710: ldfld System.Int32 Lane::m_similarLaneCount
IL_0715: mul
IL_0716: ldloc.s 52 (System.Int32)
IL_0718: ldloc.s 48 (System.Int32)
IL_071A: ldc.i4.1
IL_071B: shr
IL_071C: add
IL_071D: div
IL_071E: stloc.s 54 (System.Int32)
IL_0720: Label58
IL_0720: ldloc.s 53 (System.Int32)
IL_0722: stloc.s 55 (System.Int32)
IL_0724: ldloc.s 34 (NetInfo+Lane)
IL_0726: ldfld System.Int32 Lane::m_similarLaneCount
IL_072B: ldloc.s 53 (System.Int32)
IL_072D: sub
IL_072E: ldloc.s 54 (System.Int32)
IL_0730: sub
IL_0731: stloc.s 56 (System.Int32)
IL_0733: ldloc.s 54 (System.Int32)
IL_0735: stloc.s 57 (System.Int32)
IL_0737: ldloc.s 56 (System.Int32)
IL_0739: ldc.i4.0
IL_073A: ble => Label59
IL_073F: ldloc.s 47 (System.Int32)
IL_0741: ldloc.s 53 (System.Int32)
IL_0743: ble => Label60
IL_0748: ldloc.s 55 (System.Int32)
IL_074A: ldc.i4.1
IL_074B: add
IL_074C: stloc.s 55 (System.Int32)
IL_074E: Label60
IL_074E: ldloc.s 49 (System.Int32)
IL_0750: ldloc.s 54 (System.Int32)
IL_0752: ble => Label61
IL_0757: ldloc.s 57 (System.Int32)
IL_0759: ldc.i4.1
IL_075A: add
IL_075B: stloc.s 57 (System.Int32)
IL_075D: Label59
IL_075D: Label61
IL_075D: ldloc.s 50 (System.Int32)
IL_075F: ldloc.s 55 (System.Int32)
IL_0761: bge => Label62
IL_0766: ldloc.s 50 (System.Int32)
IL_0768: ldloc.s 47 (System.Int32)
IL_076A: mul
IL_076B: ldloc.s 55 (System.Int32)
IL_076D: add
IL_076E: ldc.i4.1
IL_076F: sub
IL_0770: ldloc.s 55 (System.Int32)
IL_0772: div
IL_0773: stloc.s 58 (System.Int32)
IL_0775: ldloc.s 50 (System.Int32)
IL_0777: ldc.i4.1
IL_0778: add
IL_0779: ldloc.s 47 (System.Int32)
IL_077B: mul
IL_077C: ldloc.s 55 (System.Int32)
IL_077E: add
IL_077F: ldc.i4.1
IL_0780: sub
IL_0781: ldloc.s 55 (System.Int32)
IL_0783: div
IL_0784: stloc.s 59 (System.Int32)
IL_0786: ldloc.s 59 (System.Int32)
IL_0788: ldloc.s 58 (System.Int32)
IL_078A: ble => Label63
IL_078F: ldloc.s 42 (NetLane+Flags)
IL_0791: ldc.i4.s 32
IL_0793: or
IL_0794: stloc.s 42 (NetLane+Flags)
IL_0796: ldloc.s 44 (System.Int32)
IL_0798: ldloc.s 58 (System.Int32)
IL_079A: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_079F: stloc.s 44 (System.Int32)
IL_07A1: ldloc.s 45 (System.Int32)
IL_07A3: ldloc.s 59 (System.Int32)
IL_07A5: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_07AA: stloc.s 45 (System.Int32)
IL_07AC: Label62
IL_07AC: Label63
IL_07AC: ldloc.s 50 (System.Int32)
IL_07AE: ldloc.s 53 (System.Int32)
IL_07B0: blt => Label64
IL_07B5: ldloc.s 51 (System.Int32)
IL_07B7: ldloc.s 54 (System.Int32)
IL_07B9: blt => Label65
IL_07BE: ldloc.s 48 (System.Int32)
IL_07C0: brfalse => Label66
IL_07C5: ldloc.s 34 (NetInfo+Lane)
IL_07C7: ldfld System.Int32 Lane::m_similarLaneCount
IL_07CC: ldloc.s 52 (System.Int32)
IL_07CE: ble => Label67
IL_07D3: ldloc.s 53 (System.Int32)
IL_07D5: ldc.i4.1
IL_07D6: add
IL_07D7: stloc.s 53 (System.Int32)
IL_07D9: Label67
IL_07D9: ldloc.s 47 (System.Int32)
IL_07DB: ldloc.s 50 (System.Int32)
IL_07DD: ldloc.s 53 (System.Int32)
IL_07DF: sub
IL_07E0: ldloc.s 48 (System.Int32)
IL_07E2: mul
IL_07E3: ldloc.s 56 (System.Int32)
IL_07E5: add
IL_07E6: ldc.i4.1
IL_07E7: sub
IL_07E8: ldloc.s 56 (System.Int32)
IL_07EA: div
IL_07EB: add
IL_07EC: stloc.s 60 (System.Int32)
IL_07EE: ldloc.s 47 (System.Int32)
IL_07F0: ldloc.s 50 (System.Int32)
IL_07F2: ldc.i4.1
IL_07F3: add
IL_07F4: ldloc.s 53 (System.Int32)
IL_07F6: sub
IL_07F7: ldloc.s 48 (System.Int32)
IL_07F9: mul
IL_07FA: ldloc.s 56 (System.Int32)
IL_07FC: add
IL_07FD: ldc.i4.1
IL_07FE: sub
IL_07FF: ldloc.s 56 (System.Int32)
IL_0801: div
IL_0802: add
IL_0803: stloc.s 61 (System.Int32)
IL_0805: ldloc.s 61 (System.Int32)
IL_0807: ldloc.s 60 (System.Int32)
IL_0809: ble => Label68
IL_080E: ldloc.s 42 (NetLane+Flags)
IL_0810: ldc.i4.s 16
IL_0812: or
IL_0813: stloc.s 42 (NetLane+Flags)
IL_0815: ldloc.s 44 (System.Int32)
IL_0817: ldloc.s 60 (System.Int32)
IL_0819: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_081E: stloc.s 44 (System.Int32)
IL_0820: ldloc.s 45 (System.Int32)
IL_0822: ldloc.s 61 (System.Int32)
IL_0824: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0829: stloc.s 45 (System.Int32)
IL_082B: Label64
IL_082B: Label65
IL_082B: Label66
IL_082B: Label68
IL_082B: ldloc.s 51 (System.Int32)
IL_082D: ldloc.s 57 (System.Int32)
IL_082F: bge => Label69
IL_0834: ldloc.s 52 (System.Int32)
IL_0836: ldloc.s 51 (System.Int32)
IL_0838: ldc.i4.1
IL_0839: add
IL_083A: ldloc.s 49 (System.Int32)
IL_083C: mul
IL_083D: ldloc.s 57 (System.Int32)
IL_083F: add
IL_0840: ldc.i4.1
IL_0841: sub
IL_0842: ldloc.s 57 (System.Int32)
IL_0844: div
IL_0845: sub
IL_0846: stloc.s 62 (System.Int32)
IL_0848: ldloc.s 52 (System.Int32)
IL_084A: ldloc.s 51 (System.Int32)
IL_084C: ldloc.s 49 (System.Int32)
IL_084E: mul
IL_084F: ldloc.s 57 (System.Int32)
IL_0851: add
IL_0852: ldc.i4.1
IL_0853: sub
IL_0854: ldloc.s 57 (System.Int32)
IL_0856: div
IL_0857: sub
IL_0858: stloc.s 63 (System.Int32)
IL_085A: ldloc.s 63 (System.Int32)
IL_085C: ldloc.s 62 (System.Int32)
IL_085E: ble => Label70
IL_0863: ldloc.s 42 (NetLane+Flags)
IL_0865: ldc.i4.s 64
IL_0867: or
IL_0868: stloc.s 42 (NetLane+Flags)
IL_086A: ldloc.s 44 (System.Int32)
IL_086C: ldloc.s 62 (System.Int32)
IL_086E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0873: stloc.s 44 (System.Int32)
IL_0875: ldloc.s 45 (System.Int32)
IL_0877: ldloc.s 63 (System.Int32)
IL_0879: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_087E: stloc.s 45 (System.Int32)
IL_0880: Label69
IL_0880: Label70
IL_0880: ldarg.0
IL_0881: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_0886: brfalse => Label71
IL_088B: ldloc.s 42 (NetLane+Flags)
IL_088D: ldc.i4.s 96
IL_088F: and
IL_0890: ldc.i4.s 32
IL_0892: bne.un => Label72
IL_0897: ldloc.s 42 (NetLane+Flags)
IL_0899: ldc.i4.s 16
IL_089B: and
IL_089C: brfalse => Label73
IL_08A1: ldloc.s 48 (System.Int32)
IL_08A3: ldc.i4.2
IL_08A4: blt => Label74
IL_08A9: ldloc.s 47 (System.Int32)
IL_08AB: ldc.i4.1
IL_08AC: bne.un => Label75
IL_08B1: Label73
IL_08B1: ldloc.s 45 (System.Int32)
IL_08B3: ldloc.s 44 (System.Int32)
IL_08B5: ldc.i4.1
IL_08B6: add
IL_08B7: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_08BC: stloc.s 45 (System.Int32)
IL_08BE: Label74
IL_08BE: Label75
IL_08BE: br => Label76
IL_08C3: Label72
IL_08C3: ldloc.s 42 (NetLane+Flags)
IL_08C5: ldc.i4.s 96
IL_08C7: and
IL_08C8: ldc.i4.s 64
IL_08CA: bne.un => Label77
IL_08CF: ldloc.s 42 (NetLane+Flags)
IL_08D1: ldc.i4.s 16
IL_08D3: and
IL_08D4: brfalse => Label78
IL_08D9: ldloc.s 48 (System.Int32)
IL_08DB: ldc.i4.2
IL_08DC: blt => Label79
IL_08E1: ldloc.s 49 (System.Int32)
IL_08E3: ldc.i4.1
IL_08E4: bne.un => Label80
IL_08E9: Label78
IL_08E9: ldloc.s 44 (System.Int32)
IL_08EB: ldloc.s 45 (System.Int32)
IL_08ED: ldc.i4.1
IL_08EE: sub
IL_08EF: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_08F4: stloc.s 44 (System.Int32)
IL_08F6: Label48
IL_08F6: Label56
IL_08F6: Label71
IL_08F6: Label76
IL_08F6: Label77
IL_08F6: Label79
IL_08F6: Label80
IL_08F6: ldloc.s 46 (System.Boolean)
IL_08F8: brfalse => Label81
IL_08FD: ldloc.s 18 (System.Boolean)
IL_08FF: brfalse => Label82
IL_0904: ldloc.s 42 (NetLane+Flags)
IL_0906: ldc.i4.s -113
IL_0908: and
IL_0909: stloc.s 42 (NetLane+Flags)
IL_090B: br => Label83
IL_0910: Label82
IL_0910: ldloc.s 19 (System.Boolean)
IL_0912: brfalse => Label84
IL_0917: ldloc.s 42 (NetLane+Flags)
IL_0919: ldc.i4.s 16
IL_091B: or
IL_091C: stloc.s 42 (NetLane+Flags)
IL_091E: Label83
IL_091E: Label84
IL_091E: br => Label85
IL_0923: Label81
IL_0923: ldloc.s 26 (System.Boolean)
IL_0925: brfalse => Label86
IL_092A: ldloc.s 42 (NetLane+Flags)
IL_092C: ldc.i4.s -113
IL_092E: and
IL_092F: stloc.s 42 (NetLane+Flags)
IL_0931: br => Label87
IL_0936: Label86
IL_0936: ldloc.s 27 (System.Boolean)
IL_0938: brfalse => Label88
IL_093D: ldloc.s 42 (NetLane+Flags)
IL_093F: ldc.i4.s 16
IL_0941: or
IL_0942: stloc.s 42 (NetLane+Flags)
IL_0944: Label43
IL_0944: Label85
IL_0944: Label87
IL_0944: Label88
IL_0944: ldloc.0
IL_0945: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_094A: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_094F: ldloc.s 32 (System.UInt32)
IL_0951: conv.u
IL_0952: ldelema NetLane
IL_0957: ldloc.s 36 (UnityEngine.Vector3)
IL_0959: ldloc.s 40 (UnityEngine.Vector3)
IL_095B: ldloc.s 41 (UnityEngine.Vector3)
IL_095D: ldloc.s 38 (UnityEngine.Vector3)
IL_095F: newobj System.Void
ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3
_b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d)
IL_0964: stfld ColossalFramework.Math.Bezier3 NetLane::m_bezier
IL_0969: ldloc.0
IL_096A: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_096F: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0974: ldloc.s 32 (System.UInt32)
IL_0976: conv.u
IL_0977: ldelema NetLane
IL_097C: ldarg.1
IL_097D: stfld System.UInt16 NetLane::m_segment
IL_0982: ldloc.0
IL_0983: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0988: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_098D: ldloc.s 32 (System.UInt32)
IL_098F: conv.u
IL_0990: ldelema NetLane
IL_0995: ldloc.s 42 (NetLane+Flags)
IL_0997: conv.u2
IL_0998: stfld System.UInt16 NetLane::m_flags
IL_099D: ldloc.0
IL_099E: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09A3: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09A8: ldloc.s 32 (System.UInt32)
IL_09AA: conv.u
IL_09AB: ldelema NetLane
IL_09B0: ldloc.s 44 (System.Int32)
IL_09B2: conv.u1
IL_09B3: stfld System.Byte NetLane::m_firstTarget
IL_09B8: ldloc.0
IL_09B9: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09BE: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09C3: ldloc.s 32 (System.UInt32)
IL_09C5: conv.u
IL_09C6: ldelema NetLane
IL_09CB: ldloc.s 45 (System.Int32)
IL_09CD: conv.u1
IL_09CE: stfld System.Byte NetLane::m_lastTarget
IL_09D3: ldloc.s 29 (System.Single)
IL_09D5: ldloc.0
IL_09D6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09DB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09E0: ldloc.s 32 (System.UInt32)
IL_09E2: conv.u
IL_09E3: ldelema NetLane
IL_09E8: call System.Single NetLane::UpdateLength()
IL_09ED: add
IL_09EE: stloc.s 29 (System.Single)
IL_09F0: ldloc.s 30 (System.Single)
IL_09F2: ldc.r4 1
IL_09F7: add
IL_09F8: stloc.s 30 (System.Single)
IL_09FA: ldloc.s 32 (System.UInt32)
IL_09FC: stloc.s 31 (System.UInt32)
IL_09FE: ldloc.0
IL_09FF: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0A04: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0A09: ldloc.s 32 (System.UInt32)
IL_0A0B: conv.u
IL_0A0C: ldelema NetLane
IL_0A11: ldfld System.UInt32 NetLane::m_nextLane
IL_0A16: stloc.s 32 (System.UInt32)
IL_0A18: ldloc.s 33 (System.Int32)
IL_0A1A: ldc.i4.1
IL_0A1B: add
IL_0A1C: stloc.s 33 (System.Int32)
IL_0A1E: Label30
IL_0A1E: ldloc.s 33 (System.Int32)
IL_0A20: ldarg.0
IL_0A21: ldfld NetInfo NetAI::m_info
IL_0A26: ldfld Lane[] NetInfo::m_lanes
IL_0A2B: ldlen
IL_0A2C: conv.i4
IL_0A2D: blt => Label89
IL_0A32: Label36
IL_0A32: ldloc.s 30 (System.Single)
IL_0A34: ldc.r4 0
IL_0A39: beq => Label90
IL_0A3E: ldarg.2
IL_0A3F: ldloc.s 29 (System.Single)
IL_0A41: ldloc.s 30 (System.Single)
IL_0A43: div
IL_0A44: stfld System.Single NetSegment::m_averageLength
IL_0A49: br => Label91
IL_0A4E: Label90
IL_0A4E: ldarg.2
IL_0A4F: ldc.r4 0
IL_0A54: stfld System.Single NetSegment::m_averageLength
IL_0A59: Label91
IL_0A59: ldc.i4.0
IL_0A5A: stloc.s 64 (System.Boolean)
IL_0A5C: ldarg.2
IL_0A5D: ldfld System.Single NetSegment::m_averageLength
IL_0A62: ldc.r4 11
IL_0A67: bge.un => Label92
IL_0A6C: ldloc.0
IL_0A6D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0A72: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A77: ldarg.2
IL_0A78: ldfld System.UInt16 NetSegment::m_startNode
IL_0A7D: ldelema NetNode
IL_0A82: ldfld Flags NetNode::m_flags
IL_0A87: ldc.i4 128
IL_0A8C: and
IL_0A8D: brfalse => Label93
IL_0A92: ldloc.0
IL_0A93: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0A98: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A9D: ldarg.2
IL_0A9E: ldfld System.UInt16 NetSegment::m_endNode
IL_0AA3: ldelema NetNode
IL_0AA8: ldfld Flags NetNode::m_flags
IL_0AAD: ldc.i4 128
IL_0AB2: and
IL_0AB3: brfalse => Label94
IL_0AB8: ldc.i4.1
IL_0AB9: stloc.s 64 (System.Boolean)
IL_0ABB: Label92
IL_0ABB: Label93
IL_0ABB: Label94
IL_0ABB: ldarg.2
IL_0ABC: ldfld System.UInt32 NetSegment::m_lanes
IL_0AC1: stloc.s 32 (System.UInt32)
IL_0AC3: ldc.i4.0
IL_0AC4: stloc.s 65 (System.Int32)
IL_0AC6: br => Label95
IL_0ACB: Label98
IL_0ACB: ldloc.0
IL_0ACC: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0AD1: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0AD6: ldloc.s 32 (System.UInt32)
IL_0AD8: conv.u
IL_0AD9: ldelema NetLane
IL_0ADE: ldfld System.UInt16 NetLane::m_flags
IL_0AE3: ldc.i4.s -9
IL_0AE5: and
IL_0AE6: stloc.s 66 (NetLane+Flags)
IL_0AE8: ldloc.s 64 (System.Boolean)
IL_0AEA: brfalse => Label96
IL_0AEF: ldloc.s 66 (NetLane+Flags)
IL_0AF1: ldc.i4.8
IL_0AF2: or
IL_0AF3: stloc.s 66 (NetLane+Flags)
IL_0AF5: Label96
IL_0AF5: ldloc.0
IL_0AF6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0AFB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0B00: ldloc.s 32 (System.UInt32)
IL_0B02: conv.u
IL_0B03: ldelema NetLane
IL_0B08: ldloc.s 66 (NetLane+Flags)
IL_0B0A: conv.u2
IL_0B0B: stfld System.UInt16 NetLane::m_flags
IL_0B10: ldloc.0
IL_0B11: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0B16: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0B1B: ldloc.s 32 (System.UInt32)
IL_0B1D: conv.u
IL_0B1E: ldelema NetLane
IL_0B23: ldfld System.UInt32 NetLane::m_nextLane
IL_0B28: stloc.s 32 (System.UInt32)
IL_0B2A: ldloc.s 65 (System.Int32)
IL_0B2C: ldc.i4.1
IL_0B2D: add
IL_0B2E: stloc.s 65 (System.Int32)
IL_0B30: Label95
IL_0B30: ldloc.s 65 (System.Int32)
IL_0B32: ldarg.0
IL_0B33: ldfld NetInfo NetAI::m_info
IL_0B38: ldfld Lane[] NetInfo::m_lanes
IL_0B3D: ldlen
IL_0B3E: conv.i4
IL_0B3F: bge => Label97
IL_0B44: ldloc.s 32 (System.UInt32)
IL_0B46: brtrue => Label98
IL_0B4B: Label97
IL_0B4B: ldarg.3
IL_0B4C: brtrue => Label99
IL_0B51: ldarg.2
IL_0B52: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0B57: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0B5C: stloc.s 68 (UnityEngine.Vector3)
IL_0B5E: ldloca.s 68 (UnityEngine.Vector3)
IL_0B60: ldfld System.Single UnityEngine.Vector3::x
IL_0B65: ldc.r4 16
IL_0B6A: sub
IL_0B6B: ldc.r4 64
IL_0B70: div
IL_0B71: ldc.r4 135
IL_0B76: add
IL_0B77: conv.i4
IL_0B78: ldc.i4.0
IL_0B79: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0B7E: stloc.s 67 (System.Int32)
IL_0B80: ldarg.2
IL_0B81: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0B86: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0B8B: stloc.s 70 (UnityEngine.Vector3)
IL_0B8D: ldloca.s 70 (UnityEngine.Vector3)
IL_0B8F: ldfld System.Single UnityEngine.Vector3::z
IL_0B94: ldc.r4 16
IL_0B99: sub
IL_0B9A: ldc.r4 64
IL_0B9F: div
IL_0BA0: ldc.r4 135
IL_0BA5: add
IL_0BA6: conv.i4
IL_0BA7: ldc.i4.0
IL_0BA8: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0BAD: stloc.s 69 (System.Int32)
IL_0BAF: ldarg.2
IL_0BB0: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0BB5: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0BBA: stloc.s 72 (UnityEngine.Vector3)
IL_0BBC: ldloca.s 72 (UnityEngine.Vector3)
IL_0BBE: ldfld System.Single UnityEngine.Vector3::x
IL_0BC3: ldc.r4 16
IL_0BC8: add
IL_0BC9: ldc.r4 64
IL_0BCE: div
IL_0BCF: ldc.r4 135
IL_0BD4: add
IL_0BD5: conv.i4
IL_0BD6: ldc.i4 269
IL_0BDB: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0BE0: stloc.s 71 (System.Int32)
IL_0BE2: ldarg.2
IL_0BE3: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0BE8: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0BED: stloc.s 74 (UnityEngine.Vector3)
IL_0BEF: ldloca.s 74 (UnityEngine.Vector3)
IL_0BF1: ldfld System.Single UnityEngine.Vector3::z
IL_0BF6: ldc.r4 16
IL_0BFB: add
IL_0BFC: ldc.r4 64
IL_0C01: div
IL_0C02: ldc.r4 135
IL_0C07: add
IL_0C08: conv.i4
IL_0C09: ldc.i4 269
IL_0C0E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0C13: stloc.s 73 (System.Int32)
IL_0C15: ldloc.s 69 (System.Int32)
IL_0C17: stloc.s 75 (System.Int32)
IL_0C19: br => Label100
IL_0C1E: Label108
IL_0C1E: ldloc.s 67 (System.Int32)
IL_0C20: stloc.s 76 (System.Int32)
IL_0C22: br => Label101
IL_0C27: Label107
IL_0C27: ldloc.0
IL_0C28: ldfld System.UInt16[] NetManager::m_nodeGrid
IL_0C2D: ldloc.s 75 (System.Int32)
IL_0C2F: ldc.i4 270
IL_0C34: mul
IL_0C35: ldloc.s 76 (System.Int32)
IL_0C37: add
IL_0C38: ldelem.u2
IL_0C39: stloc.s 77 (System.UInt16)
IL_0C3B: ldc.i4.0
IL_0C3C: stloc.s 78 (System.Int32)
IL_0C3E: br => Label102
IL_0C43: Label106
IL_0C43: ldloc.0
IL_0C44: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0C49: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0C4E: ldloc.s 77 (System.UInt16)
IL_0C50: ldelema NetNode
IL_0C55: call NetInfo NetNode::get_Info()
IL_0C5A: stloc.s 79 (NetInfo)
IL_0C5C: ldloc.0
IL_0C5D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0C62: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0C67: ldloc.s 77 (System.UInt16)
IL_0C69: ldelema NetNode
IL_0C6E: ldfld UnityEngine.Vector3 NetNode::m_position
IL_0C73: stloc.s 80 (UnityEngine.Vector3)
IL_0C75: ldarg.2
IL_0C76: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0C7B: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0C80: stloc.s 82 (UnityEngine.Vector3)
IL_0C82: ldloca.s 82 (UnityEngine.Vector3)
IL_0C84: ldfld System.Single UnityEngine.Vector3::x
IL_0C89: ldc.r4 16
IL_0C8E: sub
IL_0C8F: ldloca.s 80 (UnityEngine.Vector3)
IL_0C91: ldfld System.Single UnityEngine.Vector3::x
IL_0C96: sub
IL_0C97: ldarg.2
IL_0C98: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0C9D: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0CA2: stloc.s 83 (UnityEngine.Vector3)
IL_0CA4: ldloca.s 83 (UnityEngine.Vector3)
IL_0CA6: ldfld System.Single UnityEngine.Vector3::z
IL_0CAB: ldc.r4 16
IL_0CB0: sub
IL_0CB1: ldloca.s 80 (UnityEngine.Vector3)
IL_0CB3: ldfld System.Single UnityEngine.Vector3::z
IL_0CB8: sub
IL_0CB9: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0CBE: ldloca.s 80 (UnityEngine.Vector3)
IL_0CC0: ldfld System.Single UnityEngine.Vector3::x
IL_0CC5: ldarg.2
IL_0CC6: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0CCB: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0CD0: stloc.s 84 (UnityEngine.Vector3)
IL_0CD2: ldloca.s 84 (UnityEngine.Vector3)
IL_0CD4: ldfld System.Single UnityEngine.Vector3::x
IL_0CD9: sub
IL_0CDA: ldc.r4 16
IL_0CDF: sub
IL_0CE0: ldloca.s 80 (UnityEngine.Vector3)
IL_0CE2: ldfld System.Single UnityEngine.Vector3::z
IL_0CE7: ldarg.2
IL_0CE8: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0CED: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0CF2: stloc.s 85 (UnityEngine.Vector3)
IL_0CF4: ldloca.s 85 (UnityEngine.Vector3)
IL_0CF6: ldfld System.Single UnityEngine.Vector3::z
IL_0CFB: sub
IL_0CFC: ldc.r4 16
IL_0D01: sub
IL_0D02: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0D07: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0D0C: stloc.s 81 (System.Single)
IL_0D0E: ldloc.s 81 (System.Single)
IL_0D10: ldc.r4 0
IL_0D15: bge.un => Label103
IL_0D1A: ldloc.s 79 (NetInfo)
IL_0D1C: ldfld NetAI NetInfo::m_netAI
IL_0D21: ldloc.s 77 (System.UInt16)
IL_0D23: ldloc.0
IL_0D24: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0D29: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0D2E: ldloc.s 77 (System.UInt16)
IL_0D30: ldelema NetNode
IL_0D35: callvirt virtual System.Void NetAI::NearbyLanesUpdated(System.UInt16
nodeID, NetNode& data)
IL_0D3A: Label103
IL_0D3A: ldloc.0
IL_0D3B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0D40: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0D45: ldloc.s 77 (System.UInt16)
IL_0D47: ldelema NetNode
IL_0D4C: ldfld System.UInt16 NetNode::m_nextGridNode
IL_0D51: stloc.s 77 (System.UInt16)
IL_0D53: ldloc.s 78 (System.Int32)
IL_0D55: ldc.i4.1
IL_0D56: add
IL_0D57: dup
IL_0D58: stloc.s 78 (System.Int32)
IL_0D5A: ldc.i4 32768
IL_0D5F: blt => Label104
IL_0D64: ldc.i4.1
IL_0D65: ldstr "Invalid list detected!\n"
IL_0D6A: call static System.String System.Environment::get_StackTrace()
IL_0D6F: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_0D74: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Error(LogChannel ll, System.String
msg)
IL_0D79: br => Label105
IL_0D7E: Label102
IL_0D7E: Label104
IL_0D7E: ldloc.s 77 (System.UInt16)
IL_0D80: brtrue => Label106
IL_0D85: Label105
IL_0D85: ldloc.s 76 (System.Int32)
IL_0D87: ldc.i4.1
IL_0D88: add
IL_0D89: stloc.s 76 (System.Int32)
IL_0D8B: Label101
IL_0D8B: ldloc.s 76 (System.Int32)
IL_0D8D: ldloc.s 71 (System.Int32)
IL_0D8F: ble => Label107
IL_0D94: ldloc.s 75 (System.Int32)
IL_0D96: ldc.i4.1
IL_0D97: add
IL_0D98: stloc.s 75 (System.Int32)
IL_0D9A: Label100
IL_0D9A: ldloc.s 75 (System.Int32)
IL_0D9C: ldloc.s 73 (System.Int32)
IL_0D9E: ble => Label108
IL_0DA3: ldarg.0
IL_0DA4: ldfld NetInfo NetAI::m_info
IL_0DA9: ldfld System.Boolean NetInfo::m_hasPedestrianLanes
IL_0DAE: brfalse => Label109
IL_0DB3: ldarg.0
IL_0DB4: ldfld NetInfo NetAI::m_info
IL_0DB9: ldfld System.Boolean NetInfo::m_hasForwardVehicleLanes
IL_0DBE: brtrue => Label110
IL_0DC3: ldarg.0
IL_0DC4: ldfld NetInfo NetAI::m_info
IL_0DC9: ldfld System.Boolean NetInfo::m_hasBackwardVehicleLanes
IL_0DCE: brfalse => Label111
IL_0DD3: Label110
IL_0DD3: ldarg.1
IL_0DD4: ldarg.2
IL_0DD5: call static System.Void RoadBaseAI::CheckBuildings(System.UInt16
segmentID, NetSegment& data)
IL_0DDA: // end original
IL_0DDA: Label99
IL_0DDA: Label109
IL_0DDA: Label111
IL_0DDA: ldarg 1
IL_0DDE: ldarg 2
IL_0DE2: ldarg 3
IL_0DE6: call static System.Void
TrafficManager.Patch._RoadBaseAI.UpdateLanesPatch::Postfix(System.UInt16 segmentID,
NetSegment& data, System.Boolean loading)
IL_0DEB: 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::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.s => Label1
IL_0014: 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: 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_0035: stloc 1 (System.Boolean)
IL_0039: nop
IL_003A: ldloc 1 (System.Boolean)
IL_003E: brfalse => Label0
IL_0043: // start original
IL_0043: ldarg.s 4
IL_0045: ldc.i4.2
IL_0046: shl
IL_0047: ldarg.3
IL_0048: or
IL_0049: stloc.0
IL_004A: ldarg.1
IL_004B: ldfld System.UInt16 NetSegment::m_startNode
IL_0050: ldarg.0
IL_0051: bne.un => Label2
IL_0056: ldarg.2
IL_0057: ldc.i4.8
IL_0058: shr.un
IL_0059: ldc.i4.1
IL_005A: and
IL_005B: brtrue => Label3
IL_0060: ldarg.1
IL_0061: ldarg.1
IL_0062: ldfld System.Byte NetSegment::m_trafficLightState0
IL_0067: ldc.i4 240
IL_006C: and
IL_006D: ldloc.0
IL_006E: or
IL_006F: conv.u1
IL_0070: stfld System.Byte NetSegment::m_trafficLightState0
IL_0075: br => Label4
IL_007A: Label3
IL_007A: ldarg.1
IL_007B: ldarg.1
IL_007C: ldfld System.Byte NetSegment::m_trafficLightState1
IL_0081: ldc.i4 240
IL_0086: and
IL_0087: ldloc.0
IL_0088: or
IL_0089: conv.u1
IL_008A: stfld System.Byte NetSegment::m_trafficLightState1
IL_008F: Label4
IL_008F: ldarg.s 5
IL_0091: brfalse => Label5
IL_0096: ldarg.1
IL_0097: dup
IL_0098: ldfld Flags NetSegment::m_flags
IL_009D: ldc.i4 4096
IL_00A2: or
IL_00A3: stfld Flags NetSegment::m_flags
IL_00A8: br => Label6
IL_00AD: Label5
IL_00AD: ldarg.1
IL_00AE: dup
IL_00AF: ldfld Flags NetSegment::m_flags
IL_00B4: ldc.i4 -4097
IL_00B9: and
IL_00BA: stfld Flags NetSegment::m_flags
IL_00BF: Label6
IL_00BF: ldarg.s 6
IL_00C1: brfalse => Label7
IL_00C6: ldarg.1
IL_00C7: dup
IL_00C8: ldfld Flags NetSegment::m_flags
IL_00CD: ldc.i4 16384
IL_00D2: or
IL_00D3: stfld Flags NetSegment::m_flags
IL_00D8: br => Label8
IL_00DD: Label7
IL_00DD: ldarg.1
IL_00DE: dup
IL_00DF: ldfld Flags NetSegment::m_flags
IL_00E4: ldc.i4 -16385
IL_00E9: and
IL_00EA: stfld Flags NetSegment::m_flags
IL_00EF: Label8
IL_00EF: br => Label9
IL_00F4: Label2
IL_00F4: ldarg.2
IL_00F5: ldc.i4.8
IL_00F6: shr.un
IL_00F7: ldc.i4.1
IL_00F8: and
IL_00F9: brtrue => Label10
IL_00FE: ldarg.1
IL_00FF: ldarg.1
IL_0100: ldfld System.Byte NetSegment::m_trafficLightState0
IL_0105: ldc.i4.s 15
IL_0107: and
IL_0108: ldloc.0
IL_0109: ldc.i4.4
IL_010A: shl
IL_010B: or
IL_010C: conv.u1
IL_010D: stfld System.Byte NetSegment::m_trafficLightState0
IL_0112: br => Label11
IL_0117: Label10
IL_0117: ldarg.1
IL_0118: ldarg.1
IL_0119: ldfld System.Byte NetSegment::m_trafficLightState1
IL_011E: ldc.i4.s 15
IL_0120: and
IL_0121: ldloc.0
IL_0122: ldc.i4.4
IL_0123: shl
IL_0124: or
IL_0125: conv.u1
IL_0126: stfld System.Byte NetSegment::m_trafficLightState1
IL_012B: Label11
IL_012B: ldarg.s 5
IL_012D: brfalse => Label12
IL_0132: ldarg.1
IL_0133: dup
IL_0134: ldfld Flags NetSegment::m_flags
IL_0139: ldc.i4 8192
IL_013E: or
IL_013F: stfld Flags NetSegment::m_flags
IL_0144: br => Label13
IL_0149: Label12
IL_0149: ldarg.1
IL_014A: dup
IL_014B: ldfld Flags NetSegment::m_flags
IL_0150: ldc.i4 -8193
IL_0155: and
IL_0156: stfld Flags NetSegment::m_flags
IL_015B: Label13
IL_015B: ldarg.s 6
IL_015D: brfalse => Label14
IL_0162: ldarg.1
IL_0163: dup
IL_0164: ldfld Flags NetSegment::m_flags
IL_0169: ldc.i4 32768
IL_016E: or
IL_016F: stfld Flags NetSegment::m_flags
IL_0174: br => Label15
IL_0179: Label14
IL_0179: ldarg.1
IL_017A: dup
IL_017B: ldfld Flags NetSegment::m_flags
IL_0180: ldc.i4 -32769
IL_0185: and
IL_0186: stfld Flags NetSegment::m_flags
IL_018B: // end original
IL_018B: Label9
IL_018B: Label15
IL_018B: Label0
IL_018B: ret
DONE

### Patch: virtual System.Void RoadBaseAI::SimulationStep(System.UInt16 segmentID,


NetSegment& data)
### Replacement: static System.Void 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/Problem
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.s => Label1
IL_0014: ldarg.0
IL_0015: ldarg 1
IL_0019: ldarg 2
IL_001D: call static System.Void
TrafficManager.Patch._RoadBaseAI.SegmentSimulationStepPatch::Prefix(RoadBaseAI
__instance, System.UInt16 segmentID, NetSegment& data)
IL_0022: nop
IL_0023: ldloc 44 (System.Boolean)
IL_0027: brfalse => Label0
IL_002C: // start original
IL_002C: ldarg.0
IL_002D: ldarg.1
IL_002E: ldarg.2
IL_002F: call virtual System.Void PlayerNetAI::SimulationStep(System.UInt16
segmentID, NetSegment& data)
IL_0034: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0039: stloc.0
IL_003A: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_003F: stloc.1
IL_0040: ldarg.2
IL_0041: ldfld Problem NetSegment::m_problems
IL_0046: ldc.i4 805306368
IL_004B: conv.i8
IL_004C: call static Problem Notification::RemoveProblems(Problem problems1,
Problem problems2)
IL_0051: stloc.2
IL_0052: ldarg.2
IL_0053: ldfld Flags NetSegment::m_flags
IL_0058: ldc.i4 2048
IL_005D: and
IL_005E: brfalse => Label2
IL_0063: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0068: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_006D: ldc.i4.s 16
IL_006F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0074: brtrue => Label3
IL_0079: ldarg.2
IL_007A: dup
IL_007B: ldfld Flags NetSegment::m_flags
IL_0080: ldc.i4 -2049
IL_0085: and
IL_0086: stfld Flags NetSegment::m_flags
IL_008B: Label2
IL_008B: Label3
IL_008B: ldc.r4 0
IL_0090: stloc.3
IL_0091: ldarg.2
IL_0092: ldfld System.UInt32 NetSegment::m_lanes
IL_0097: stloc.s 4 (System.UInt32)
IL_0099: ldc.i4.0
IL_009A: stloc.s 5 (System.Int32)
IL_009C: br => Label4
IL_00A1: Label8
IL_00A1: ldarg.0
IL_00A2: ldfld NetInfo NetAI::m_info
IL_00A7: ldfld Lane[] NetInfo::m_lanes
IL_00AC: ldloc.s 5 (System.Int32)
IL_00AE: ldelem.ref
IL_00AF: stloc.s 6 (NetInfo+Lane)
IL_00B1: ldloc.s 6 (NetInfo+Lane)
IL_00B3: ldfld LaneType Lane::m_laneType
IL_00B8: ldc.i4.s 33
IL_00BA: and
IL_00BB: conv.u1
IL_00BC: brfalse => Label5
IL_00C1: ldloc.s 6 (NetInfo+Lane)
IL_00C3: ldfld VehicleType Lane::m_vehicleType
IL_00C8: ldc.i4.s -33
IL_00CA: and
IL_00CB: brfalse => Label6
IL_00D0: ldloc.3
IL_00D1: ldloc.1
IL_00D2: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00D7: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00DC: ldloc.s 4 (System.UInt32)
IL_00DE: conv.u
IL_00DF: ldelema NetLane
IL_00E4: ldfld System.Single NetLane::m_length
IL_00E9: add
IL_00EA: stloc.3
IL_00EB: Label5
IL_00EB: Label6
IL_00EB: ldloc.1
IL_00EC: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00F1: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00F6: ldloc.s 4 (System.UInt32)
IL_00F8: conv.u
IL_00F9: ldelema NetLane
IL_00FE: ldfld System.UInt32 NetLane::m_nextLane
IL_0103: stloc.s 4 (System.UInt32)
IL_0105: ldloc.s 5 (System.Int32)
IL_0107: ldc.i4.1
IL_0108: add
IL_0109: stloc.s 5 (System.Int32)
IL_010B: Label4
IL_010B: ldloc.s 5 (System.Int32)
IL_010D: ldarg.0
IL_010E: ldfld NetInfo NetAI::m_info
IL_0113: ldfld Lane[] NetInfo::m_lanes
IL_0118: ldlen
IL_0119: conv.i4
IL_011A: bge => Label7
IL_011F: ldloc.s 4 (System.UInt32)
IL_0121: brtrue => Label8
IL_0126: Label7
IL_0126: ldc.i4.0
IL_0127: stloc.s 7 (System.Int32)
IL_0129: ldc.i4.0
IL_012A: stloc.s 8 (System.Int32)
IL_012C: ldarg.2
IL_012D: ldfld System.UInt16 NetSegment::m_trafficBuffer
IL_0132: ldc.i4 65535
IL_0137: bne.un => Label9
IL_013C: ldarg.2
IL_013D: ldfld Flags NetSegment::m_flags
IL_0142: ldc.i4 2097152
IL_0147: and
IL_0148: brtrue => Label10
IL_014D: ldarg.2
IL_014E: dup
IL_014F: ldfld Flags NetSegment::m_flags
IL_0154: ldc.i4 2097152
IL_0159: or
IL_015A: stfld Flags NetSegment::m_flags
IL_015F: ldarg.2
IL_0160: ldloc.0
IL_0161: dup
IL_0162: ldfld System.UInt32 SimulationManager::m_currentBuildIndex
IL_0167: dup
IL_0168: stloc.s 9 (System.UInt32)
IL_016A: ldc.i4.1
IL_016B: add
IL_016C: stfld System.UInt32 SimulationManager::m_currentBuildIndex
IL_0171: ldloc.s 9 (System.UInt32)
IL_0173: stfld System.UInt32 NetSegment::m_modifiedIndex
IL_0178: Label10
IL_0178: br => Label11
IL_017D: Label9
IL_017D: ldarg.2
IL_017E: dup
IL_017F: ldfld Flags NetSegment::m_flags
IL_0184: ldc.i4 -2097153
IL_0189: and
IL_018A: stfld Flags NetSegment::m_flags
IL_018F: ldloc.3
IL_0190: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_0195: ldc.i4.4
IL_0196: shl
IL_0197: stloc.s 10 (System.Int32)
IL_0199: ldloc.s 10 (System.Int32)
IL_019B: brfalse => Label12
IL_01A0: ldarg.2
IL_01A1: ldfld System.UInt16 NetSegment::m_trafficBuffer
IL_01A6: ldc.i4.s 100
IL_01A8: mul
IL_01A9: ldloc.s 10 (System.Int32)
IL_01AB: div
IL_01AC: ldc.i4.s 100
IL_01AE: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01B3: conv.u1
IL_01B4: stloc.s 7 (System.Int32)
IL_01B6: ldarg.2
IL_01B7: ldfld System.UInt16 NetSegment::m_noiseBuffer
IL_01BC: ldc.i4 250
IL_01C1: mul
IL_01C2: ldloc.s 10 (System.Int32)
IL_01C4: div
IL_01C5: ldc.i4.s 100
IL_01C7: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01CC: conv.u1
IL_01CD: stloc.s 8 (System.Int32)
IL_01CF: Label11
IL_01CF: Label12
IL_01CF: ldarg.2
IL_01D0: ldc.i4.0
IL_01D1: stfld System.UInt16 NetSegment::m_trafficBuffer
IL_01D6: ldarg.2
IL_01D7: ldc.i4.0
IL_01D8: stfld System.UInt16 NetSegment::m_noiseBuffer
IL_01DD: ldloc.s 7 (System.Int32)
IL_01DF: ldarg.2
IL_01E0: ldfld System.Byte NetSegment::m_trafficDensity
IL_01E5: ble => Label13
IL_01EA: ldarg.2
IL_01EB: ldarg.2
IL_01EC: ldfld System.Byte NetSegment::m_trafficDensity
IL_01F1: ldc.i4.5
IL_01F2: add
IL_01F3: ldloc.s 7 (System.Int32)
IL_01F5: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01FA: conv.u1
IL_01FB: stfld System.Byte NetSegment::m_trafficDensity
IL_0200: br => Label14
IL_0205: Label13
IL_0205: ldloc.s 7 (System.Int32)
IL_0207: ldarg.2
IL_0208: ldfld System.Byte NetSegment::m_trafficDensity
IL_020D: bge => Label15
IL_0212: ldarg.2
IL_0213: ldarg.2
IL_0214: ldfld System.Byte NetSegment::m_trafficDensity
IL_0219: ldc.i4.5
IL_021A: sub
IL_021B: ldloc.s 7 (System.Int32)
IL_021D: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0222: conv.u1
IL_0223: stfld System.Byte NetSegment::m_trafficDensity
IL_0228: Label14
IL_0228: Label15
IL_0228: ldloc.s 8 (System.Int32)
IL_022A: ldarg.2
IL_022B: ldfld System.Byte NetSegment::m_noiseDensity
IL_0230: ble => Label16
IL_0235: ldarg.2
IL_0236: ldarg.2
IL_0237: ldfld System.Byte NetSegment::m_noiseDensity
IL_023C: ldc.i4.2
IL_023D: add
IL_023E: ldloc.s 8 (System.Int32)
IL_0240: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0245: conv.u1
IL_0246: stfld System.Byte NetSegment::m_noiseDensity
IL_024B: br => Label17
IL_0250: Label16
IL_0250: ldloc.s 8 (System.Int32)
IL_0252: ldarg.2
IL_0253: ldfld System.Byte NetSegment::m_noiseDensity
IL_0258: bge => Label18
IL_025D: ldarg.2
IL_025E: ldarg.2
IL_025F: ldfld System.Byte NetSegment::m_noiseDensity
IL_0264: ldc.i4.2
IL_0265: sub
IL_0266: ldloc.s 8 (System.Int32)
IL_0268: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_026D: conv.u1
IL_026E: stfld System.Byte NetSegment::m_noiseDensity
IL_0273: Label17
IL_0273: Label18
IL_0273: ldloc.1
IL_0274: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0279: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_027E: ldarg.2
IL_027F: ldfld System.UInt16 NetSegment::m_startNode
IL_0284: ldelema NetNode
IL_0289: ldfld UnityEngine.Vector3 NetNode::m_position
IL_028E: stloc.s 11 (UnityEngine.Vector3)
IL_0290: ldloc.1
IL_0291: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0296: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_029B: ldarg.2
IL_029C: ldfld System.UInt16 NetSegment::m_endNode
IL_02A1: ldelema NetNode
IL_02A6: ldfld UnityEngine.Vector3 NetNode::m_position
IL_02AB: stloc.s 12 (UnityEngine.Vector3)
IL_02AD: ldloc.s 11 (UnityEngine.Vector3)
IL_02AF: ldloc.s 12 (UnityEngine.Vector3)
IL_02B1: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_02B6: ldc.r4 0.5
IL_02BB: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_02C0: stloc.s 13 (UnityEngine.Vector3)
IL_02C2: ldc.i4.0
IL_02C3: stloc.s 14 (System.Boolean)
IL_02C5: ldarg.0
IL_02C6: ldfld NetInfo NetAI::m_info
IL_02CB: ldfld Flags NetInfo::m_setVehicleFlags
IL_02D0: ldc.i4 268435456
IL_02D5: and
IL_02D6: brtrue => Label19
IL_02DB: call static TerrainManager
ColossalFramework.Singleton`1<TerrainManager>::get_instance()
IL_02E0: ldloc.s 13 (UnityEngine.Vector3)
IL_02E2: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_02E7: callvirt System.Single TerrainManager::WaterLevel(UnityEngine.Vector2
position)
IL_02EC: stloc.s 15 (System.Single)
IL_02EE: ldloc.s 15 (System.Single)
IL_02F0: ldloca.s 13 (UnityEngine.Vector3)
IL_02F2: ldfld System.Single UnityEngine.Vector3::y
IL_02F7: ldc.r4 1
IL_02FC: add
IL_02FD: ble.un => Label20
IL_0302: ldloc.s 15 (System.Single)
IL_0304: ldc.r4 0
IL_0309: ble.un => Label21
IL_030E: ldc.i4.1
IL_030F: stloc.s 14 (System.Boolean)
IL_0311: ldarg.2
IL_0312: dup
IL_0313: ldfld Flags NetSegment::m_flags
IL_0318: ldc.i4 4194304
IL_031D: or
IL_031E: stfld Flags NetSegment::m_flags
IL_0323: ldloc.2
IL_0324: ldc.i8 4611686018695823360
IL_032D: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0332: stloc.2
IL_0333: ldarg.2
IL_0334: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0339: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_033E: stloc.s 16 (UnityEngine.Vector3)
IL_0340: ldarg.2
IL_0341: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0346: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_034B: stloc.s 17 (UnityEngine.Vector3)
IL_034D: ldloca.s 16 (UnityEngine.Vector3)
IL_034F: ldfld System.Single UnityEngine.Vector3::x
IL_0354: ldloca.s 16 (UnityEngine.Vector3)
IL_0356: ldfld System.Single UnityEngine.Vector3::z
IL_035B: ldloca.s 17 (UnityEngine.Vector3)
IL_035D: ldfld System.Single UnityEngine.Vector3::x
IL_0362: ldloca.s 17 (UnityEngine.Vector3)
IL_0364: ldfld System.Single UnityEngine.Vector3::z
IL_0369: call static System.Void RoadBaseAI::FloodParkedCars(System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_036E: br => Label22
IL_0373: Label20
IL_0373: Label21
IL_0373: ldarg.2
IL_0374: dup
IL_0375: ldfld Flags NetSegment::m_flags
IL_037A: ldc.i4 -4194305
IL_037F: and
IL_0380: stfld Flags NetSegment::m_flags
IL_0385: ldloc.s 15 (System.Single)
IL_0387: ldloca.s 13 (UnityEngine.Vector3)
IL_0389: ldfld System.Single UnityEngine.Vector3::y
IL_038E: ble.un => Label23
IL_0393: ldloc.s 15 (System.Single)
IL_0395: ldc.r4 0
IL_039A: ble.un => Label24
IL_039F: ldc.i4.1
IL_03A0: stloc.s 14 (System.Boolean)
IL_03A2: ldloc.2
IL_03A3: ldc.i4 268435456
IL_03A8: conv.i8
IL_03A9: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_03AE: stloc.2
IL_03AF: Label19
IL_03AF: Label22
IL_03AF: Label23
IL_03AF: Label24
IL_03AF: call static DistrictManager
ColossalFramework.Singleton`1<DistrictManager>::get_instance()
IL_03B4: stloc.s 18 (DistrictManager)
IL_03B6: ldloc.s 18 (DistrictManager)
IL_03B8: ldloc.s 13 (UnityEngine.Vector3)
IL_03BA: callvirt System.Byte DistrictManager::GetDistrict(UnityEngine.Vector3
worldPos)
IL_03BF: stloc.s 19 (System.Byte)
IL_03C1: ldloc.s 18 (DistrictManager)
IL_03C3: ldfld Array8`1<District> DistrictManager::m_districts
IL_03C8: ldfld District[] Array8`1<District>::m_buffer
IL_03CD: ldloc.s 19 (System.Byte)
IL_03CF: ldelema District
IL_03D4: ldfld CityPlanning District::m_cityPlanningPolicies
IL_03D9: stloc.s 20 (DistrictPolicies+CityPlanning)
IL_03DB: ldc.i4.s 100
IL_03DD: ldarg.2
IL_03DE: ldfld System.Byte NetSegment::m_noiseDensity
IL_03E3: ldc.i4.s 100
IL_03E5: sub
IL_03E6: ldarg.2
IL_03E7: ldfld System.Byte NetSegment::m_noiseDensity
IL_03EC: ldc.i4.s 100
IL_03EE: sub
IL_03EF: mul
IL_03F0: ldc.i4.s 100
IL_03F2: div
IL_03F3: sub
IL_03F4: stloc.s 21 (System.Int32)
IL_03F6: ldarg.0
IL_03F7: ldfld NetInfo NetAI::m_info
IL_03FC: ldfld VehicleType NetInfo::m_vehicleTypes
IL_0401: ldc.i4.1
IL_0402: and
IL_0403: brfalse => Label25
IL_0408: ldarg.0
IL_0409: ldfld NetInfo NetAI::m_info
IL_040E: ldfld Flags NetInfo::m_setVehicleFlags
IL_0413: ldc.i4 268435456
IL_0418: and
IL_0419: brtrue => Label26
IL_041E: ldloc.s 14 (System.Boolean)
IL_0420: brfalse => Label27
IL_0425: ldarg.2
IL_0426: ldfld Flags NetSegment::m_flags
IL_042B: ldc.i4 2099200
IL_0430: and
IL_0431: brtrue => Label28
IL_0436: ldloc.0
IL_0437: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_043C: ldc.i4.s 10
IL_043E: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0443: brtrue => Label29
IL_0448: ldloca.s 22 (TransferManager+TransferOffer)
IL_044A: initobj TransferManager+TransferOffer
IL_0450: ldloca.s 22 (TransferManager+TransferOffer)
IL_0452: ldc.i4.4
IL_0453: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_0458: ldloca.s 22 (TransferManager+TransferOffer)
IL_045A: ldarg.1
IL_045B: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_0460: ldloca.s 22 (TransferManager+TransferOffer)
IL_0462: ldloc.s 13 (UnityEngine.Vector3)
IL_0464: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_0469: ldloca.s 22 (TransferManager+TransferOffer)
IL_046B: ldc.i4.1
IL_046C: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_0471: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_0476: ldc.i4.s 73
IL_0478: ldloc.s 22 (TransferManager+TransferOffer)
IL_047A: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason
material, TransferOffer offer)
IL_047F: Label27
IL_047F: Label28
IL_047F: Label29
IL_047F: ldarg.2
IL_0480: ldfld System.Byte NetSegment::m_wetness
IL_0485: stloc.s 23 (System.Int32)
IL_0487: ldloc.1
IL_0488: ldfld System.Boolean NetManager::m_treatWetAsSnow
IL_048D: brtrue => Label30
IL_0492: ldloc.s 14 (System.Boolean)
IL_0494: brfalse => Label31
IL_0499: ldc.i4 255
IL_049E: stloc.s 23 (System.Int32)
IL_04A0: br => Label32
IL_04A5: Label31
IL_04A5: ldloc.s 23 (System.Int32)
IL_04A7: ldc.i4.s 63
IL_04A9: add
IL_04AA: ldc.i4.5
IL_04AB: shr
IL_04AC: neg
IL_04AD: stloc.s 24 (System.Int32)
IL_04AF: call static WeatherManager
ColossalFramework.Singleton`1<WeatherManager>::get_instance()
IL_04B4: ldloc.s 13 (UnityEngine.Vector3)
IL_04B6: ldc.i4.0
IL_04B7: callvirt System.Single
WeatherManager::SampleRainIntensity(UnityEngine.Vector3 pos, System.Boolean
ignoreWeather)
IL_04BC: stloc.s 25 (System.Single)
IL_04BE: ldloc.s 25 (System.Single)
IL_04C0: ldc.r4 0
IL_04C5: beq => Label33
IL_04CA: ldloc.s 25 (System.Single)
IL_04CC: ldc.r4 4000
IL_04D1: mul
IL_04D2: ldc.r4 1000
IL_04D7: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_04DC: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_04E1: stloc.s 26 (System.Int32)
IL_04E3: ldloc.s 24 (System.Int32)
IL_04E5: ldloc.0
IL_04E6: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_04EB: ldloc.s 26 (System.Int32)
IL_04ED: ldloc.s 26 (System.Int32)
IL_04EF: ldc.i4.s 99
IL_04F1: add
IL_04F2: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_04F7: ldc.i4.s 100
IL_04F9: div
IL_04FA: add
IL_04FB: stloc.s 24 (System.Int32)
IL_04FD: Label33
IL_04FD: ldloc.s 23 (System.Int32)
IL_04FF: ldloc.s 24 (System.Int32)
IL_0501: add
IL_0502: ldc.i4.0
IL_0503: ldc.i4 255
IL_0508: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_050D: stloc.s 23 (System.Int32)
IL_050F: Label32
IL_050F: br => Label34
IL_0514: Label30
IL_0514: ldarg.0
IL_0515: ldfld System.Boolean RoadBaseAI::m_accumulateSnow
IL_051A: brfalse => Label35
IL_051F: ldloc.s 14 (System.Boolean)
IL_0521: brfalse => Label36
IL_0526: ldc.i4 128
IL_052B: stloc.s 23 (System.Int32)
IL_052D: br => Label37
IL_0532: Label36
IL_0532: call static WeatherManager
ColossalFramework.Singleton`1<WeatherManager>::get_instance()
IL_0537: ldloc.s 13 (UnityEngine.Vector3)
IL_0539: ldc.i4.0
IL_053A: callvirt System.Single
WeatherManager::SampleRainIntensity(UnityEngine.Vector3 pos, System.Boolean
ignoreWeather)
IL_053F: stloc.s 27 (System.Single)
IL_0541: ldloc.s 27 (System.Single)
IL_0543: ldc.r4 0
IL_0548: beq => Label38
IL_054D: ldloc.s 27 (System.Single)
IL_054F: ldc.r4 400
IL_0554: mul
IL_0555: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_055A: stloc.s 28 (System.Int32)
IL_055C: ldloc.0
IL_055D: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0562: ldloc.s 28 (System.Int32)
IL_0564: ldloc.s 28 (System.Int32)
IL_0566: ldc.i4.s 99
IL_0568: add
IL_0569: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_056E: ldc.i4.s 100
IL_0570: div
IL_0571: stloc.s 29 (System.Int32)
IL_0573: call static UnlockManager
ColossalFramework.Singleton`1<UnlockManager>::get_instance()
IL_0578: ldc.i4.s 24
IL_057A: callvirt System.Boolean UnlockManager::Unlocked(Feature feature)
IL_057F: brfalse => Label39
IL_0584: ldloc.s 23 (System.Int32)
IL_0586: ldloc.s 29 (System.Int32)
IL_0588: add
IL_0589: ldc.i4 255
IL_058E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0593: stloc.s 23 (System.Int32)
IL_0595: br => Label40
IL_059A: Label39
IL_059A: ldloc.s 23 (System.Int32)
IL_059C: ldloc.s 29 (System.Int32)
IL_059E: add
IL_059F: ldc.i4 128
IL_05A4: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_05A9: stloc.s 23 (System.Int32)
IL_05AB: Label40
IL_05AB: br => Label41
IL_05B0: Label38
IL_05B0: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_05B5: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_05BA: ldc.i4.4
IL_05BB: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_05C0: brtrue => Label42
IL_05C5: ldloc.s 23 (System.Int32)
IL_05C7: ldc.i4.1
IL_05C8: sub
IL_05C9: ldc.i4.0
IL_05CA: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_05CF: stloc.s 23 (System.Int32)
IL_05D1: Label41
IL_05D1: Label42
IL_05D1: ldloc.s 23 (System.Int32)
IL_05D3: ldc.i4.s 64
IL_05D5: blt => Label43
IL_05DA: ldarg.2
IL_05DB: ldfld Flags NetSegment::m_flags
IL_05E0: ldc.i4 6293504
IL_05E5: and
IL_05E6: brtrue => Label44
IL_05EB: ldloc.0
IL_05EC: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_05F1: ldc.i4.s 10
IL_05F3: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_05F8: brtrue => Label45
IL_05FD: ldloca.s 30 (TransferManager+TransferOffer)
IL_05FF: initobj TransferManager+TransferOffer
IL_0605: ldloca.s 30 (TransferManager+TransferOffer)
IL_0607: ldloc.s 23 (System.Int32)
IL_0609: ldc.i4.s 50
IL_060B: div
IL_060C: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_0611: ldloca.s 30 (TransferManager+TransferOffer)
IL_0613: ldarg.1
IL_0614: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_0619: ldloca.s 30 (TransferManager+TransferOffer)
IL_061B: ldloc.s 13 (UnityEngine.Vector3)
IL_061D: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_0622: ldloca.s 30 (TransferManager+TransferOffer)
IL_0624: ldc.i4.1
IL_0625: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_062A: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_062F: ldc.i4.s 64
IL_0631: ldloc.s 30 (TransferManager+TransferOffer)
IL_0633: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason
material, TransferOffer offer)
IL_0638: Label43
IL_0638: Label44
IL_0638: Label45
IL_0638: ldloc.s 23 (System.Int32)
IL_063A: ldc.i4 192
IL_063F: blt => Label46
IL_0644: ldloc.2
IL_0645: ldc.i4 536870912
IL_064A: conv.i8
IL_064B: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0650: stloc.2
IL_0651: Label46
IL_0651: ldloc.s 18 (DistrictManager)
IL_0653: ldfld Array8`1<District> DistrictManager::m_districts
IL_0658: ldfld District[] Array8`1<District>::m_buffer
IL_065D: ldloc.s 19 (System.Byte)
IL_065F: ldelema District
IL_0664: ldflda DistrictProductionData District::m_productionData
IL_0669: dup
IL_066A: ldfld System.UInt32 DistrictProductionData::m_tempSnowCover
IL_066F: ldloc.s 23 (System.Int32)
IL_0671: add
IL_0672: stfld System.UInt32 DistrictProductionData::m_tempSnowCover
IL_0677: Label34
IL_0677: Label35
IL_0677: Label37
IL_0677: ldloc.s 23 (System.Int32)
IL_0679: ldarg.2
IL_067A: ldfld System.Byte NetSegment::m_wetness
IL_067F: beq => Label47
IL_0684: ldarg.2
IL_0685: ldfld System.Byte NetSegment::m_wetness
IL_068A: ldloc.s 23 (System.Int32)
IL_068C: sub
IL_068D: call static System.Int32 UnityEngine.Mathf::Abs(System.Int32 value)
IL_0692: ldc.i4.s 10
IL_0694: ble => Label48
IL_0699: ldarg.2
IL_069A: ldloc.s 23 (System.Int32)
IL_069C: conv.u1
IL_069D: stfld System.Byte NetSegment::m_wetness
IL_06A2: ldsfld InstanceID InstanceID::Empty
IL_06A7: stloc.s 31 (InstanceID)
IL_06A9: ldloca.s 31 (InstanceID)
IL_06AB: ldarg.1
IL_06AC: call System.Void InstanceID::set_NetSegment(System.UInt16 value)
IL_06B1: ldloc.1
IL_06B2: ldloc.s 31 (InstanceID)
IL_06B4: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06B9: ldloca.s 31 (InstanceID)
IL_06BB: ldarg.2
IL_06BC: ldfld System.UInt16 NetSegment::m_startNode
IL_06C1: call System.Void InstanceID::set_NetNode(System.UInt16 value)
IL_06C6: ldloc.1
IL_06C7: ldloc.s 31 (InstanceID)
IL_06C9: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06CE: ldloca.s 31 (InstanceID)
IL_06D0: ldarg.2
IL_06D1: ldfld System.UInt16 NetSegment::m_endNode
IL_06D6: call System.Void InstanceID::set_NetNode(System.UInt16 value)
IL_06DB: ldloc.1
IL_06DC: ldloc.s 31 (InstanceID)
IL_06DE: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06E3: br => Label49
IL_06E8: Label48
IL_06E8: ldarg.2
IL_06E9: ldloc.s 23 (System.Int32)
IL_06EB: conv.u1
IL_06EC: stfld System.Byte NetSegment::m_wetness
IL_06F1: ldloc.1
IL_06F2: ldc.i4 256
IL_06F7: stfld System.Int32 NetManager::m_wetnessChanged
IL_06FC: Label26
IL_06FC: Label47
IL_06FC: Label49
IL_06FC: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_06FE: ldc.i4 1024
IL_0703: and
IL_0704: brfalse => Label50
IL_0709: ldloc.s 21 (System.Int32)
IL_070B: ldc.i4.3
IL_070C: mul
IL_070D: ldc.i4.1
IL_070E: add
IL_070F: ldc.i4.1
IL_0710: shr
IL_0711: stloc.s 21 (System.Int32)
IL_0713: ldc.i4 700
IL_0718: ldc.i4.s 50
IL_071A: ldarg.2
IL_071B: ldfld System.Byte NetSegment::m_trafficDensity
IL_0720: ldc.i4.6
IL_0721: mul
IL_0722: add
IL_0723: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0728: stloc.s 32 (System.Int32)
IL_072A: br => Label51
IL_072F: Label50
IL_072F: ldc.i4 500
IL_0734: ldc.i4.s 50
IL_0736: ldarg.2
IL_0737: ldfld System.Byte NetSegment::m_trafficDensity
IL_073C: ldc.i4.4
IL_073D: mul
IL_073E: add
IL_073F: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0744: stloc.s 32 (System.Int32)
IL_0746: Label51
IL_0746: ldarg.0
IL_0747: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_074C: brtrue => Label52
IL_0751: ldloc.0
IL_0752: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0757: ldloc.s 32 (System.Int32)
IL_0759: ldloc.s 32 (System.Int32)
IL_075B: ldc.i4.s 99
IL_075D: add
IL_075E: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_0763: ldc.i4.s 100
IL_0765: div
IL_0766: stloc.s 33 (System.Int32)
IL_0768: ldarg.2
IL_0769: ldarg.2
IL_076A: ldfld System.Byte NetSegment::m_condition
IL_076F: ldloc.s 33 (System.Int32)
IL_0771: sub
IL_0772: ldc.i4.0
IL_0773: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0778: conv.u1
IL_0779: stfld System.Byte NetSegment::m_condition
IL_077E: ldarg.2
IL_077F: ldfld System.Byte NetSegment::m_condition
IL_0784: ldc.i4 192
IL_0789: bge => Label53
IL_078E: ldarg.2
IL_078F: ldfld Flags NetSegment::m_flags
IL_0794: ldc.i4 6293504
IL_0799: and
IL_079A: brtrue => Label54
IL_079F: ldloc.0
IL_07A0: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_07A5: ldc.i4.s 20
IL_07A7: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_07AC: brtrue => Label55
IL_07B1: ldloca.s 34 (TransferManager+TransferOffer)
IL_07B3: initobj TransferManager+TransferOffer
IL_07B9: ldloca.s 34 (TransferManager+TransferOffer)
IL_07BB: ldc.i4 255
IL_07C0: ldarg.2
IL_07C1: ldfld System.Byte NetSegment::m_condition
IL_07C6: sub
IL_07C7: ldc.i4.s 50
IL_07C9: div
IL_07CA: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_07CF: ldloca.s 34 (TransferManager+TransferOffer)
IL_07D1: ldarg.1
IL_07D2: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_07D7: ldloca.s 34 (TransferManager+TransferOffer)
IL_07D9: ldloc.s 13 (UnityEngine.Vector3)
IL_07DB: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_07E0: ldloca.s 34 (TransferManager+TransferOffer)
IL_07E2: ldc.i4.1
IL_07E3: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_07E8: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_07ED: ldc.i4.s 66
IL_07EF: ldloc.s 34 (TransferManager+TransferOffer)
IL_07F1: callvirt System.Void TransferManager::AddIncomingOffer(TransferReason
material, TransferOffer offer)
IL_07F6: Label25
IL_07F6: Label52
IL_07F6: Label53
IL_07F6: Label54
IL_07F6: Label55
IL_07F6: ldarg.0
IL_07F7: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_07FC: brtrue => Label56
IL_0801: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_0803: ldc.i4.s 32
IL_0805: and
IL_0806: brfalse => Label57
IL_080B: ldarg.2
IL_080C: dup
IL_080D: ldfld Flags NetSegment::m_flags
IL_0812: ldc.i4 1048576
IL_0817: or
IL_0818: stfld Flags NetSegment::m_flags
IL_081D: br => Label58
IL_0822: Label57
IL_0822: ldarg.2
IL_0823: dup
IL_0824: ldfld Flags NetSegment::m_flags
IL_0829: ldc.i4 -1048577
IL_082E: and
IL_082F: stfld Flags NetSegment::m_flags
IL_0834: Label58
IL_0834: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_0836: ldc.i4 128
IL_083B: and
IL_083C: brfalse => Label59
IL_0841: ldarg.2
IL_0842: dup
IL_0843: ldfld Flags NetSegment::m_flags
IL_0848: ldc.i4 8388608
IL_084D: or
IL_084E: stfld Flags NetSegment::m_flags
IL_0853: br => Label60
IL_0858: Label59
IL_0858: ldarg.2
IL_0859: dup
IL_085A: ldfld Flags NetSegment::m_flags
IL_085F: ldc.i4 -8388609
IL_0864: and
IL_0865: stfld Flags NetSegment::m_flags
IL_086A: Label60
IL_086A: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_086C: ldc.i4 512
IL_0871: and
IL_0872: brfalse => Label61
IL_0877: ldarg.2
IL_0878: dup
IL_0879: ldfld Flags NetSegment::m_flags
IL_087E: ldc.i4 16777216
IL_0883: or
IL_0884: stfld Flags NetSegment::m_flags
IL_0889: br => Label62
IL_088E: Label61
IL_088E: ldarg.2
IL_088F: dup
IL_0890: ldfld Flags NetSegment::m_flags
IL_0895: ldc.i4 -16777217
IL_089A: and
IL_089B: stfld Flags NetSegment::m_flags
IL_08A0: Label62
IL_08A0: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_08A2: ldc.i4 65536
IL_08A7: and
IL_08A8: brfalse => Label63
IL_08AD: ldarg.2
IL_08AE: dup
IL_08AF: ldfld Flags NetSegment::m_flags
IL_08B4: ldc.i4 256
IL_08B9: or
IL_08BA: stfld Flags NetSegment::m_flags
IL_08BF: br => Label64
IL_08C4: Label63
IL_08C4: ldarg.2
IL_08C5: dup
IL_08C6: ldfld Flags NetSegment::m_flags
IL_08CB: ldc.i4 -257
IL_08D0: and
IL_08D1: stfld Flags NetSegment::m_flags
IL_08D6: Label56
IL_08D6: Label64
IL_08D6: ldarg.0
IL_08D7: ldfld System.Int32 RoadBaseAI::m_noiseAccumulation
IL_08DC: ldloc.s 21 (System.Int32)
IL_08DE: mul
IL_08DF: ldc.i4.s 100
IL_08E1: div
IL_08E2: stloc.s 35 (System.Int32)
IL_08E4: ldloc.s 35 (System.Int32)
IL_08E6: brfalse => Label65
IL_08EB: ldloc.s 11 (UnityEngine.Vector3)
IL_08ED: ldloc.s 12 (UnityEngine.Vector3)
IL_08EF: call static System.Single
UnityEngine.Vector3::Distance(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_08F4: stloc.s 36 (System.Single)
IL_08F6: ldloc.s 36 (System.Single)
IL_08F8: ldarg.0
IL_08F9: ldfld System.Single RoadBaseAI::m_noiseRadius
IL_08FE: div
IL_08FF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single
f)
IL_0904: stloc.s 37 (System.Int32)
IL_0906: ldc.i4.0
IL_0907: stloc.s 38 (System.Int32)
IL_0909: br => Label66
IL_090E: Label67
IL_090E: ldloc.s 11 (UnityEngine.Vector3)
IL_0910: ldloc.s 12 (UnityEngine.Vector3)
IL_0912: ldloc.s 38 (System.Int32)
IL_0914: ldc.i4.1
IL_0915: add
IL_0916: conv.r4
IL_0917: ldloc.s 37 (System.Int32)
IL_0919: ldc.i4.1
IL_091A: add
IL_091B: conv.r4
IL_091C: div
IL_091D: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_0922: stloc.s 39 (UnityEngine.Vector3)
IL_0924: call static ImmaterialResourceManager
ColossalFramework.Singleton`1<ImmaterialResourceManager>::get_instance()
IL_0929: ldc.i4.8
IL_092A: ldloc.s 35 (System.Int32)
IL_092C: ldloc.s 39 (UnityEngine.Vector3)
IL_092E: ldarg.0
IL_092F: ldfld System.Single RoadBaseAI::m_noiseRadius
IL_0934: callvirt System.Int32 ImmaterialResourceManager::AddResource(Resource
resource, System.Int32 rate, UnityEngine.Vector3 position, System.Single radius)
IL_0939: pop
IL_093A: ldloc.s 38 (System.Int32)
IL_093C: ldc.i4.1
IL_093D: add
IL_093E: stloc.s 38 (System.Int32)
IL_0940: Label66
IL_0940: ldloc.s 38 (System.Int32)
IL_0942: ldloc.s 37 (System.Int32)
IL_0944: blt => Label67
IL_0949: Label65
IL_0949: ldarg.2
IL_094A: ldfld System.Byte NetSegment::m_trafficDensity
IL_094F: ldc.i4.s 50
IL_0951: blt => Label68
IL_0956: ldarg.2
IL_0957: ldfld System.Single NetSegment::m_averageLength
IL_095C: ldc.r4 25
IL_0961: bge.un => Label69
IL_0966: ldloc.1
IL_0967: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_096C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0971: ldarg.2
IL_0972: ldfld System.UInt16 NetSegment::m_startNode
IL_0977: ldelema NetNode
IL_097C: ldfld Flags NetNode::m_flags
IL_0981: ldc.i4 10485760
IL_0986: and
IL_0987: ldc.i4 8388608
IL_098C: bne.un => Label70
IL_0991: ldloc.1
IL_0992: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0997: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_099C: ldarg.2
IL_099D: ldfld System.UInt16 NetSegment::m_endNode
IL_09A2: ldelema NetNode
IL_09A7: ldfld Flags NetNode::m_flags
IL_09AC: ldc.i4 10485760
IL_09B1: and
IL_09B2: ldc.i4 8388608
IL_09B7: bne.un => Label71
IL_09BC: call static GuideManager
ColossalFramework.Singleton`1<GuideManager>::get_instance()
IL_09C1: ldfld GuideController SimulationManagerBase`2<GuideManager,
GuideController>::m_properties
IL_09C6: stloc.s 40 (GuideController)
IL_09C8: ldloc.s 40 (GuideController)
IL_09CA: brfalse => Label72
IL_09CF: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_09D4: ldfld NetSegmentInstanceGuide NetManager::m_shortRoadTraffic
IL_09D9: ldloc.s 40 (GuideController)
IL_09DB: ldfld GuideInfo GuideController::m_shortRoadTraffic
IL_09E0: ldarg.1
IL_09E1: ldc.i4.0
IL_09E2: callvirt System.Void NetSegmentInstanceGuide::Activate(GuideInfo
guideInfo, System.UInt16 segmentID, System.Boolean ignoreID)
IL_09E7: Label68
IL_09E7: Label69
IL_09E7: Label70
IL_09E7: Label71
IL_09E7: Label72
IL_09E7: ldarg.2
IL_09E8: ldfld Flags NetSegment::m_flags
IL_09ED: ldc.i4.8
IL_09EE: and
IL_09EF: brfalse => Label73
IL_09F4: call static GuideManager
ColossalFramework.Singleton`1<GuideManager>::get_instance()
IL_09F9: ldfld GuideController SimulationManagerBase`2<GuideManager,
GuideController>::m_properties
IL_09FE: stloc.s 41 (GuideController)
IL_0A00: ldloc.s 41 (GuideController)
IL_0A02: brfalse => Label74
IL_0A07: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0A0C: ldfld NetSegmentInstanceGuide NetManager::m_roadDestroyed
IL_0A11: ldloc.s 41 (GuideController)
IL_0A13: ldfld GuideInfo GuideController::m_roadDestroyed
IL_0A18: ldarg.1
IL_0A19: ldc.i4.0
IL_0A1A: callvirt System.Void NetSegmentInstanceGuide::Activate(GuideInfo
guideInfo, System.UInt16 segmentID, System.Boolean ignoreID)
IL_0A1F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0A24: ldfld ServiceTypeGuide NetManager::m_roadDestroyed2
IL_0A29: ldloc.s 41 (GuideController)
IL_0A2B: ldfld GuideInfo GuideController::m_roadDestroyed2
IL_0A30: ldarg.0
IL_0A31: ldfld NetInfo NetAI::m_info
IL_0A36: ldfld ItemClass NetInfo::m_class
IL_0A3B: ldfld Service ItemClass::m_service
IL_0A40: callvirt System.Void ServiceTypeGuide::Activate(GuideInfo guideInfo,
Service service)
IL_0A45: Label74
IL_0A45: ldloc.0
IL_0A46: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0A4B: ldc.i4.8
IL_0A4C: shr.un
IL_0A4D: ldc.i4.s 15
IL_0A4F: and
IL_0A50: conv.u8
IL_0A51: ldarg.1
IL_0A52: ldc.i4.s 15
IL_0A54: and
IL_0A55: conv.i8
IL_0A56: bne.un => Label75
IL_0A5B: ldarg.2
IL_0A5C: ldfld System.Single NetSegment::m_averageLength
IL_0A61: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_0A66: stloc.s 42 (System.Int32)
IL_0A68: call static StatisticsManager
ColossalFramework.Singleton`1<StatisticsManager>::get_instance()
IL_0A6D: ldc.i4.s 53
IL_0A6F: callvirt StatisticBase StatisticsManager::Acquire(StatisticType type)
IL_0A74: stloc.s 43 (StatisticBase)
IL_0A76: ldloc.s 43 (StatisticBase)
IL_0A78: ldloc.s 42 (System.Int32)
IL_0A7A: callvirt abstract virtual System.Void StatisticBase::Add(System.Int32
delta)
IL_0A7F: Label73
IL_0A7F: Label75
IL_0A7F: ldarg.2
IL_0A80: ldloc.2
IL_0A81: stfld Problem NetSegment::m_problems
IL_0A86: // end original
IL_0A86: Label0
IL_0A86: ret
DONE

### Patch: static System.Void


TrainTrackBaseAI::LevelCrossingSimulationStep(System.UInt16 nodeID, NetNode& data)
### Replacement: static System.Void
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.s => Label1
IL_0014: ldnull
IL_0015: ldarg 0
IL_0019: ldarg 1
IL_001D: call static System.Boolean
TrafficManager.Patch._RoadBaseAI.TrafficLightSimulationStepPatch::Prefix(RoadBaseAI
__instance, System.UInt16 nodeID, NetNode& data)
IL_0022: stloc 20 (System.Boolean)
IL_0026: nop
IL_0027: ldloc 20 (System.Boolean)
IL_002B: brfalse => Label0
IL_0030: // start original
IL_0030: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0035: stloc.0
IL_0036: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_003B: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0040: stloc.1
IL_0041: ldc.i4.0
IL_0042: stloc.2
IL_0043: ldc.i4.0
IL_0044: stloc.3
IL_0045: ldc.i4.0
IL_0046: stloc.s 4 (System.Int32)
IL_0048: br => Label2
IL_004D: Label14
IL_004D: ldarg.1
IL_004E: ldloc.s 4 (System.Int32)
IL_0050: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0055: stloc.s 5 (System.UInt16)
IL_0057: ldloc.s 5 (System.UInt16)
IL_0059: brfalse => Label3
IL_005E: ldloc.0
IL_005F: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0064: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0069: ldloc.s 5 (System.UInt16)
IL_006B: ldelema NetSegment
IL_0070: call NetInfo NetSegment::get_Info()
IL_0075: stloc.s 6 (NetInfo)
IL_0077: ldloc.s 6 (NetInfo)
IL_0079: ldfld ItemClass NetInfo::m_class
IL_007E: ldfld Service ItemClass::m_service
IL_0083: ldc.i4.s 9
IL_0085: beq => Label4
IL_008A: ldloc.s 6 (NetInfo)
IL_008C: ldfld Lane[] NetInfo::m_lanes
IL_0091: brfalse => Label5
IL_0096: ldloc.0
IL_0097: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_009C: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00A1: ldloc.s 5 (System.UInt16)
IL_00A3: ldelema NetSegment
IL_00A8: ldfld System.UInt16 NetSegment::m_startNode
IL_00AD: ldarg.0
IL_00AE: ceq
IL_00B0: stloc.s 7 (System.Boolean)
IL_00B2: ldloc.0
IL_00B3: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_00B8: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00BD: ldloc.s 5 (System.UInt16)
IL_00BF: ldelema NetSegment
IL_00C4: ldfld System.UInt32 NetSegment::m_lanes
IL_00C9: stloc.s 8 (System.UInt32)
IL_00CB: ldc.i4.0
IL_00CC: stloc.s 9 (System.Int32)
IL_00CE: br => Label6
IL_00D3: Label12
IL_00D3: ldloc.s 6 (NetInfo)
IL_00D5: ldfld Lane[] NetInfo::m_lanes
IL_00DA: ldloc.s 9 (System.Int32)
IL_00DC: ldelem.ref
IL_00DD: ldfld LaneType Lane::m_laneType
IL_00E2: ldc.i4.1
IL_00E3: bne.un => Label7
IL_00E8: ldloc.0
IL_00E9: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00EE: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00F3: ldloc.s 8 (System.UInt32)
IL_00F5: conv.u
IL_00F6: ldelema NetLane
IL_00FB: ldloc.s 7 (System.Boolean)
IL_00FD: brfalse => Label8
IL_0102: ldc.r4 0
IL_0107: br => Label9
IL_010C: Label8
IL_010C: ldc.r4 1
IL_0111: Label9
IL_0111: call UnityEngine.Vector3 NetLane::CalculatePosition(System.Single
laneOffset)
IL_0116: stloc.s 10 (UnityEngine.Vector3)
IL_0118: ldloc.s 10 (UnityEngine.Vector3)
IL_011A: call static System.Boolean
TrainTrackBaseAI::CheckOverlap(UnityEngine.Vector3 pos)
IL_011F: brfalse => Label10
IL_0124: ldc.i4.1
IL_0125: stloc.2
IL_0126: Label7
IL_0126: Label10
IL_0126: ldloc.0
IL_0127: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_012C: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0131: ldloc.s 8 (System.UInt32)
IL_0133: conv.u
IL_0134: ldelema NetLane
IL_0139: ldfld System.UInt32 NetLane::m_nextLane
IL_013E: stloc.s 8 (System.UInt32)
IL_0140: ldloc.s 9 (System.Int32)
IL_0142: ldc.i4.1
IL_0143: add
IL_0144: stloc.s 9 (System.Int32)
IL_0146: Label6
IL_0146: ldloc.s 9 (System.Int32)
IL_0148: ldloc.s 6 (NetInfo)
IL_014A: ldfld Lane[] NetInfo::m_lanes
IL_014F: ldlen
IL_0150: conv.i4
IL_0151: bge => Label11
IL_0156: ldloc.s 8 (System.UInt32)
IL_0158: brtrue => Label12
IL_015D: Label5
IL_015D: Label11
IL_015D: ldarg.0
IL_015E: ldloc.0
IL_015F: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0164: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0169: ldloc.s 5 (System.UInt16)
IL_016B: ldelema NetSegment
IL_0170: ldloc.1
IL_0171: ldc.i4 256
IL_0176: sub
IL_0177: ldloca.s 11 (RoadBaseAI+TrafficLightState)
IL_0179: ldloca.s 12 (RoadBaseAI+TrafficLightState)
IL_017B: ldloca.s 13 (System.Boolean)
IL_017D: ldloca.s 14 (System.Boolean)
IL_017F: 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_0184: ldloc.s 13 (System.Boolean)
IL_0186: brfalse => Label13
IL_018B: ldc.i4.1
IL_018C: stloc.2
IL_018D: Label3
IL_018D: Label4
IL_018D: Label13
IL_018D: ldloc.s 4 (System.Int32)
IL_018F: ldc.i4.1
IL_0190: add
IL_0191: stloc.s 4 (System.Int32)
IL_0193: Label2
IL_0193: ldloc.s 4 (System.Int32)
IL_0195: ldc.i4.8
IL_0196: blt => Label14
IL_019B: ldloc.2
IL_019C: stloc.3
IL_019D: ldc.i4.0
IL_019E: stloc.s 15 (System.Int32)
IL_01A0: br => Label15
IL_01A5: Label29
IL_01A5: ldarg.1
IL_01A6: ldloc.s 15 (System.Int32)
IL_01A8: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_01AD: stloc.s 16 (System.UInt16)
IL_01AF: ldloc.s 16 (System.UInt16)
IL_01B1: brfalse => Label16
IL_01B6: ldloc.0
IL_01B7: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01BC: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01C1: ldloc.s 16 (System.UInt16)
IL_01C3: ldelema NetSegment
IL_01C8: call NetInfo NetSegment::get_Info()
IL_01CD: stloc.s 17 (NetInfo)
IL_01CF: ldarg.0
IL_01D0: ldloc.0
IL_01D1: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01D6: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01DB: ldloc.s 16 (System.UInt16)
IL_01DD: ldelema NetSegment
IL_01E2: ldloc.1
IL_01E3: ldc.i4 256
IL_01E8: sub
IL_01E9: ldloca.s 18 (RoadBaseAI+TrafficLightState)
IL_01EB: ldloca.s 19 (RoadBaseAI+TrafficLightState)
IL_01ED: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_01F2: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01F4: ldc.i4.s -2
IL_01F6: and
IL_01F7: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01F9: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_01FB: ldc.i4.s -2
IL_01FD: and
IL_01FE: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0200: ldloc.s 17 (NetInfo)
IL_0202: ldfld ItemClass NetInfo::m_class
IL_0207: ldfld Service ItemClass::m_service
IL_020C: ldc.i4.s 9
IL_020E: bne.un => Label17
IL_0213: ldloc.3
IL_0214: brfalse => Label18
IL_0219: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_021B: ldc.i4.2
IL_021C: and
IL_021D: brtrue => Label19
IL_0222: ldc.i4.3
IL_0223: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0225: Label19
IL_0225: br => Label20
IL_022A: Label18
IL_022A: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_022C: ldc.i4.2
IL_022D: and
IL_022E: brfalse => Label21
IL_0233: ldc.i4.1
IL_0234: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0236: Label20
IL_0236: Label21
IL_0236: ldc.i4.0
IL_0237: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0239: br => Label22
IL_023E: Label17
IL_023E: ldloc.3
IL_023F: brfalse => Label23
IL_0244: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0246: ldc.i4.2
IL_0247: and
IL_0248: brfalse => Label24
IL_024D: ldc.i4.1
IL_024E: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0250: Label24
IL_0250: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0252: ldc.i4.2
IL_0253: and
IL_0254: brtrue => Label25
IL_0259: ldc.i4.3
IL_025A: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_025C: Label25
IL_025C: br => Label26
IL_0261: Label23
IL_0261: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0263: ldc.i4.2
IL_0264: and
IL_0265: brtrue => Label27
IL_026A: ldc.i4.3
IL_026B: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_026D: Label27
IL_026D: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_026F: ldc.i4.2
IL_0270: and
IL_0271: brfalse => Label28
IL_0276: ldc.i4.1
IL_0277: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0279: Label22
IL_0279: Label26
IL_0279: Label28
IL_0279: ldarg.0
IL_027A: ldloc.0
IL_027B: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0280: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0285: ldloc.s 16 (System.UInt16)
IL_0287: ldelema NetSegment
IL_028C: ldloc.1
IL_028D: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_028F: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0291: ldc.i4.0
IL_0292: ldc.i4.0
IL_0293: 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_0298: Label16
IL_0298: ldloc.s 15 (System.Int32)
IL_029A: ldc.i4.1
IL_029B: add
IL_029C: stloc.s 15 (System.Int32)
IL_029E: Label15
IL_029E: ldloc.s 15 (System.Int32)
IL_02A0: ldc.i4.8
IL_02A1: blt => Label29
IL_02A6: // end original
IL_02A6: Label0
IL_02A6: ret
DONE

### Patch: virtual System.Void HumanAI::ArriveAtDestination(System.UInt16


instanceID, CitizenInstance& citizenData, System.Boolean success)
### Replacement: static System.Void 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.s => Label1
IL_0014: ldarg.0
IL_0015: ldarg 1
IL_0019: ldarg 2
IL_001D: ldarg 3
IL_0021: call static System.Void
TrafficManager.Patch._HumanAI.ArriveAtDestinationPatch::Prefix(HumanAI __instance,
System.UInt16 instanceID, CitizenInstance& citizenData, System.Boolean success)
IL_0026: nop
IL_0027: ldloc 7 (System.Boolean)
IL_002B: brfalse => Label0
IL_0030: // start original
IL_0030: ldarg.2
IL_0031: ldfld System.UInt32 CitizenInstance::m_citizen
IL_0036: stloc.0
IL_0037: ldloc.0
IL_0038: brfalse => Label2
IL_003D: call static CitizenManager
ColossalFramework.Singleton`1<CitizenManager>::get_instance()
IL_0042: stloc.1
IL_0043: ldloc.1
IL_0044: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0049: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_004E: ldloc.0
IL_004F: conv.u
IL_0050: ldelema Citizen
IL_0055: ldloc.0
IL_0056: ldc.i4.0
IL_0057: ldc.i4.0
IL_0058: call System.Void Citizen::SetVehicle(System.UInt32 citizenID,
System.UInt16 vehicleID, System.UInt32 unitID)
IL_005D: ldarg.2
IL_005E: ldfld Flags CitizenInstance::m_flags
IL_0063: ldc.i4 134217728
IL_0068: and
IL_0069: brfalse => Label3
IL_006E: ldarg.3
IL_006F: brfalse => Label4
IL_0074: ldarg.2
IL_0075: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_007A: stloc.2
IL_007B: ldloc.2
IL_007C: brfalse => Label5
IL_0081: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0086: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0090: ldloc.2
IL_0091: ldelema NetNode
IL_0096: ldfld System.UInt16 NetNode::m_transportLine
IL_009B: stloc.3
IL_009C: ldloc.3
IL_009D: brfalse => Label6
IL_00A2: call static TransportManager
ColossalFramework.Singleton`1<TransportManager>::get_instance()
IL_00A7: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_00AC: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_00B1: ldloc.3
IL_00B2: ldelema TransportLine
IL_00B7: call TransportInfo TransportLine::get_Info()
IL_00BC: stloc.s 4 (TransportInfo)
IL_00BE: ldloc.s 4 (TransportInfo)
IL_00C0: ldfld VehicleType TransportInfo::m_vehicleType
IL_00C5: brtrue => Label7
IL_00CA: ldarg.1
IL_00CB: ldc.i4.1
IL_00CC: and
IL_00CD: brtrue => Label8
IL_00D2: ldloc.2
IL_00D3: call static System.UInt16 TransportLine::GetNextStop(System.UInt16
stop)
IL_00D8: stloc.2
IL_00D9: br => Label9
IL_00DE: Label8
IL_00DE: ldloc.2
IL_00DF: call static System.UInt16 TransportLine::GetPrevStop(System.UInt16
stop)
IL_00E4: stloc.2
IL_00E5: Label9
IL_00E5: ldloc.2
IL_00E6: brfalse => Label10
IL_00EB: ldarg.2
IL_00EC: dup
IL_00ED: ldfld Flags CitizenInstance::m_flags
IL_00F2: ldc.i4 268435456
IL_00F7: or
IL_00F8: stfld Flags CitizenInstance::m_flags
IL_00FD: ldarg.0
IL_00FE: ldarg.1
IL_00FF: ldarg.2
IL_0100: ldloc.2
IL_0101: ldc.i4.1
IL_0102: callvirt virtual System.Void CitizenAI::SetTarget(System.UInt16
instanceID, CitizenInstance& data, System.UInt16 targetIndex, System.Boolean
targetIsNode)
IL_0107: br => Label18
IL_010C: Label10
IL_010C: br => Label11
IL_0111: Label7
IL_0111: ldarg.2
IL_0112: dup
IL_0113: ldfld Flags CitizenInstance::m_flags
IL_0118: ldc.i4 268435456
IL_011D: or
IL_011E: stfld Flags CitizenInstance::m_flags
IL_0123: ldarg.0
IL_0124: ldarg.1
IL_0125: ldarg.2
IL_0126: ldloc.2
IL_0127: call System.Void HumanAI::WaitTouristVehicle(System.UInt16
instanceID, CitizenInstance& citizenData, System.UInt16 stop)
IL_012C: br => Label19
IL_0131: Label4
IL_0131: Label5
IL_0131: Label6
IL_0131: Label11
IL_0131: br => Label12
IL_0136: Label3
IL_0136: ldarg.3
IL_0137: brfalse => Label13
IL_013C: ldloc.1
IL_013D: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0142: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0147: ldloc.0
IL_0148: conv.u
IL_0149: ldelema Citizen
IL_014E: ldloc.0
IL_014F: ldarg.2
IL_0150: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_0155: call System.Void Citizen::SetLocationByBuilding(System.UInt32
citizenID, System.UInt16 buildingID)
IL_015A: Label13
IL_015A: ldarg.2
IL_015B: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_0160: brfalse => Label14
IL_0165: ldloc.1
IL_0166: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_016B: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0170: ldloc.0
IL_0171: conv.u
IL_0172: ldelema Citizen
IL_0177: call Location Citizen::get_CurrentLocation()
IL_017C: ldc.i4.2
IL_017D: bne.un => Label15
IL_0182: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0187: stloc.s 5 (BuildingManager)
IL_0189: ldloc.s 5 (BuildingManager)
IL_018B: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0190: ldfld Building[] Array16`1<Building>::m_buffer
IL_0195: ldarg.2
IL_0196: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_019B: ldelema Building
IL_01A0: call BuildingInfo Building::get_Info()
IL_01A5: stloc.s 6 (BuildingInfo)
IL_01A7: ldloc.s 6 (BuildingInfo)
IL_01A9: ldfld BuildingAI BuildingInfo::m_buildingAI
IL_01AE: ldarg.2
IL_01AF: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_01B4: ldloc.s 5 (BuildingManager)
IL_01B6: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01BB: ldfld Building[] Array16`1<Building>::m_buffer
IL_01C0: ldarg.2
IL_01C1: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_01C6: ldelema Building
IL_01CB: ldloc.0
IL_01CC: callvirt virtual System.Void BuildingAI::VisitorEnter(System.UInt16
buildingID, Building& data, System.UInt32 citizen)
IL_01D1: Label2
IL_01D1: Label12
IL_01D1: Label14
IL_01D1: Label15
IL_01D1: ldarg.2
IL_01D2: ldfld Flags CitizenInstance::m_flags
IL_01D7: ldc.i4.s 64
IL_01D9: and
IL_01DA: brfalse => Label16
IL_01DF: ldarg.3
IL_01E0: brtrue => Label17
IL_01E5: Label16
IL_01E5: ldarg.0
IL_01E6: ldarg.1
IL_01E7: ldarg.2
IL_01E8: ldc.i4.0
IL_01E9: callvirt virtual System.Void CitizenAI::SetSource(System.UInt16
instanceID, CitizenInstance& data, System.UInt16 sourceBuilding)
IL_01EE: ldarg.0
IL_01EF: ldarg.1
IL_01F0: ldarg.2
IL_01F1: ldc.i4.0
IL_01F2: call System.Void CitizenAI::SetTarget(System.UInt16 instanceID,
CitizenInstance& data, System.UInt16 targetBuilding)
IL_01F7: ldarg.2
IL_01F8: ldarg.1
IL_01F9: call System.Void CitizenInstance::Unspawn(System.UInt16 instanceID)
IL_01FE: // end original
IL_01FE: Label17
IL_01FE: Label18
IL_01FE: Label19
IL_01FE: Label0
IL_01FE: ret
DONE

### Patch: virtual System.Void CommonBuildingAI::SimulationStep(System.UInt16


buildingID, Building& data)
### Replacement: static System.Void
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.s => Label1
IL_0014: ldarg 1
IL_0018: ldarg 2
IL_001C: call static System.Void
TrafficManager.Patch._CommonBuildingAI.SimulationStepPatch::Prefix(System.UInt16
buildingID, Building& data)
IL_0021: nop
IL_0022: ldloc 3 (System.Boolean)
IL_0026: brfalse => Label0
IL_002B: // start original
IL_002B: ldarg.0
IL_002C: ldarg.1
IL_002D: ldarg.2
IL_002E: call virtual System.Void BuildingAI::SimulationStep(System.UInt16
buildingID, Building& data)
IL_0033: ldarg.2
IL_0034: ldfld Flags Building::m_flags
IL_0039: ldc.i4 524288
IL_003E: and
IL_003F: brfalse => Label2
IL_0044: ldarg.1
IL_0045: ldc.i4.8
IL_0046: shl
IL_0047: ldc.i4 49152
IL_004C: div.un
IL_004D: stloc.0
IL_004E: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0053: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0058: ldloc.0
IL_0059: sub
IL_005A: stloc.1
IL_005B: ldarg.2
IL_005C: ldfld Flags Building::m_flags
IL_0061: ldc.i4 4194304
IL_0066: and
IL_0067: brfalse => Label3
IL_006C: ldarg.2
IL_006D: ldloc.1
IL_006E: ldc.i4 256
IL_0073: sub
IL_0074: call Frame Building::GetFrameData(System.UInt32 simulationFrame)
IL_0079: stloc.2
IL_007A: ldloca.s 2 (Building+Frame)
IL_007C: ldfld System.Byte Frame::m_constructState
IL_0081: brtrue => Label4
IL_0086: Label3
IL_0086: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_008B: ldarg.1
IL_008C: callvirt System.Void BuildingManager::ReleaseBuilding(System.UInt16
building)
IL_0091: // end original
IL_0091: Label2
IL_0091: Label4
IL_0091: Label0
IL_0091: ret
DONE

### Patch: System.Void RoadWorldInfoPanel::OnAdjustRoadButton()


### Replacement: static System.Void
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.s => Label1
IL_0014: call static System.Boolean
TrafficManager.Patch._RoadWorldInfoPanel.OnAdjustRoadButtonPatch::Prefix()
IL_0019: stloc 0 (System.Boolean)
IL_001D: nop
IL_001E: ldloc 0 (System.Boolean)
IL_0022: brfalse => Label0
IL_0027: // start original
IL_0027: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_002C: ldc.i4.s 30
IL_002E: ldc.i4.2
IL_002F: callvirt System.Void InfoManager::SetCurrentMode(InfoMode mode,
SubInfoMode subMode)
IL_0034: ldarg.0
IL_0035: call System.Void WorldInfoPanel::Hide()
IL_003A: // end original
IL_003A: Label0
IL_003A: ret
DONE

### Patch: System.Void NetSegment::CalculateSegment(System.UInt16 segmentID)


### Replacement: static System.Void 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<NetManager>::get_instance()
IL_0036: stloc.0
IL_0037: ldloc.0
IL_0038: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0074: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16>
NetManager::m_updateNameVisibility
IL_00CF: ldarg.1
IL_00D0: callvirt System.Boolean
System.Collections.Generic.HashSet`1<System.UInt16>::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::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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<CustomAssetMetaData>::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<CustomAssetMetaData>::GetListingMetaData(System.Int32 index)
IL_0037: stloc.0
IL_0038: ldarg.0
IL_0039: ldloc.0
IL_003A: call System.Void
LoadSavePanelBase`1<CustomAssetMetaData>::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<CustomAssetMetaData>::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<SimulationManager>::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<SimulationManager>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_010B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<VehicleInfo>::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<VehicleInfo>::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<VehicleInfo>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_023B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<BuildingInfo>::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<BuildingInfo>::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<BuildingInfo>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_036B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<BuildingInfo>::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<BuildingInfo>::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<BuildingInfo>::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<BuildingManager>::get_instance()
IL_0482: callvirt virtual System.Void SimulationManagerBase`2<BuildingManager,
BuildingProperties>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_04A5: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<BuildingInfo>::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<CitizenInfo>::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<VehicleInfo>::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<PropInfo>::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<TreeInfo>::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<NetInfo>::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::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
IL_00B7: br => Label37
IL_00BC: Label0
IL_00BC: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00C1: ldc.i4.0
IL_00C2: ldc.i4.0
IL_00C3: ldc.i4.m1
IL_00C4: ldc.r4 300
IL_00C9: ldc.i4.0
IL_00CA: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_00CF: br => Label38
IL_00D4: Label1
IL_00D4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00D9: ldc.i4.0
IL_00DA: ldc.i4.0
IL_00DB: ldc.i4.m1
IL_00DC: ldc.r4 300
IL_00E1: ldc.i4.0
IL_00E2: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_00E7: br => Label39
IL_00EC: Label2
IL_00EC: ldarg.2
IL_00ED: brtrue => Label40
IL_00F2: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00F7: ldc.i4.s 15
IL_00F9: ldc.i4.0
IL_00FA: ldc.i4.0
IL_00FB: ldc.r4 500
IL_0100: ldc.i4.0
IL_0101: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0106: br => Label41
IL_010B: Label40
IL_010B: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0110: ldc.i4.0
IL_0111: ldc.i4.0
IL_0112: ldc.i4.m1
IL_0113: ldc.r4 300
IL_0118: ldc.i4.0
IL_0119: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_011E: Label41
IL_011E: br => Label42
IL_0123: Label3
IL_0123: ldarg.2
IL_0124: ldc.i4.1
IL_0125: bne.un => Label43
IL_012A: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_012F: ldc.i4.s 14
IL_0131: ldc.i4.0
IL_0132: ldc.i4.1
IL_0133: ldc.r4 500
IL_0138: ldc.i4.0
IL_0139: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_013E: br => Label44
IL_0143: Label43
IL_0143: ldarg.2
IL_0144: ldc.i4.3
IL_0145: bne.un => Label45
IL_014A: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_014F: ldc.i4.s 14
IL_0151: ldc.i4.0
IL_0152: ldc.i4.4
IL_0153: ldc.r4 500
IL_0158: ldc.i4.0
IL_0159: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_015E: br => Label46
IL_0163: Label45
IL_0163: ldarg.2
IL_0164: ldc.i4.2
IL_0165: bne.un => Label47
IL_016A: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_016F: ldc.i4.s 14
IL_0171: ldc.i4.0
IL_0172: ldc.i4.3
IL_0173: ldc.r4 500
IL_0178: ldc.i4.0
IL_0179: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_017E: br => Label48
IL_0183: Label47
IL_0183: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0188: ldc.i4.s 14
IL_018A: ldc.i4.0
IL_018B: ldc.i4.0
IL_018C: ldc.r4 500
IL_0191: ldc.i4.0
IL_0192: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0197: Label44
IL_0197: Label46
IL_0197: Label48
IL_0197: br => Label49
IL_019C: Label12
IL_019C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01A1: ldc.i4.0
IL_01A2: ldc.i4.0
IL_01A3: ldc.i4.m1
IL_01A4: ldc.r4 300
IL_01A9: ldc.i4.0
IL_01AA: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01AF: br => Label50
IL_01B4: Label4
IL_01B4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01B9: ldc.i4.0
IL_01BA: ldc.i4.0
IL_01BB: ldc.i4.m1
IL_01BC: ldc.r4 300
IL_01C1: ldc.i4.0
IL_01C2: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01C7: br => Label51
IL_01CC: Label5
IL_01CC: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01D1: ldc.i4.0
IL_01D2: ldc.i4.0
IL_01D3: ldc.i4.m1
IL_01D4: ldc.r4 300
IL_01D9: ldc.i4.0
IL_01DA: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01DF: br => Label52
IL_01E4: Label8
IL_01E4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01E9: ldc.i4.0
IL_01EA: ldc.i4.0
IL_01EB: ldc.i4.m1
IL_01EC: ldc.r4 300
IL_01F1: ldc.i4.0
IL_01F2: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01F7: br => Label53
IL_01FC: Label6
IL_01FC: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0201: ldc.i4.0
IL_0202: ldc.i4.0
IL_0203: ldc.i4.m1
IL_0204: ldc.r4 300
IL_0209: ldc.i4.0
IL_020A: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_020F: br => Label54
IL_0214: Label7
IL_0214: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0219: ldc.i4.0
IL_021A: ldc.i4.0
IL_021B: ldc.i4.m1
IL_021C: ldc.r4 300
IL_0221: ldc.i4.0
IL_0222: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0227: br => Label55
IL_022C: Label9
IL_022C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0231: ldc.i4.0
IL_0232: ldc.i4.0
IL_0233: ldc.i4.m1
IL_0234: ldc.r4 300
IL_0239: ldc.i4.0
IL_023A: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_023F: br => Label56
IL_0244: Label10
IL_0244: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0249: ldc.i4.0
IL_024A: ldc.i4.0
IL_024B: ldc.i4.m1
IL_024C: ldc.r4 300
IL_0251: ldc.i4.0
IL_0252: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0257: br => Label57
IL_025C: Label11
IL_025C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0261: ldc.i4.0
IL_0262: ldc.i4.0
IL_0263: ldc.i4.m1
IL_0264: ldc.r4 300
IL_0269: ldc.i4.0
IL_026A: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_026F: br => Label58
IL_0274: Label14
IL_0274: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0279: ldc.i4.0
IL_027A: ldc.i4.0
IL_027B: ldc.i4.m1
IL_027C: ldc.r4 300
IL_0281: ldc.i4.0
IL_0282: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0287: br => Label59
IL_028C: Label17
IL_028C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0291: ldc.i4.s 18
IL_0293: ldc.i4.0
IL_0294: ldc.i4.0
IL_0295: ldc.r4 500
IL_029A: ldc.i4.0
IL_029B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02A0: br => Label60
IL_02A5: Label19
IL_02A5: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02AA: ldc.i4.0
IL_02AB: ldc.i4.0
IL_02AC: ldc.i4.m1
IL_02AD: ldc.r4 300
IL_02B2: ldc.i4.1
IL_02B3: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02B8: br => Label61
IL_02BD: Label18
IL_02BD: ldarg.2
IL_02BE: ldc.i4.1
IL_02BF: bne.un => Label62
IL_02C4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02C9: ldc.i4.s 16
IL_02CB: ldc.i4.0
IL_02CC: ldc.i4.1
IL_02CD: ldc.r4 500
IL_02D2: ldc.i4.1
IL_02D3: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02D8: br => Label63
IL_02DD: Label62
IL_02DD: ldarg.2
IL_02DE: ldc.i4.2
IL_02DF: bne.un => Label64
IL_02E4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02E9: ldc.i4.s 16
IL_02EB: ldc.i4.0
IL_02EC: ldc.i4.2
IL_02ED: ldc.r4 500
IL_02F2: ldc.i4.1
IL_02F3: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02F8: br => Label65
IL_02FD: Label64
IL_02FD: ldarg.2
IL_02FE: brtrue => Label66
IL_0303: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0308: ldc.i4.s 16
IL_030A: ldc.i4.0
IL_030B: ldc.i4.0
IL_030C: ldc.r4 500
IL_0311: ldc.i4.1
IL_0312: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0317: br => Label67
IL_031C: Label66
IL_031C: ldarg.2
IL_031D: ldc.i4.4
IL_031E: bne.un => Label68
IL_0323: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0328: ldc.i4.s 16
IL_032A: ldc.i4.0
IL_032B: ldc.i4.3
IL_032C: ldc.r4 500
IL_0331: ldc.i4.1
IL_0332: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0337: br => Label69
IL_033C: Label68
IL_033C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0341: ldc.i4.s 16
IL_0343: ldc.i4.0
IL_0344: ldc.i4.2
IL_0345: ldc.r4 500
IL_034A: ldc.i4.1
IL_034B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0350: Label63
IL_0350: Label65
IL_0350: Label67
IL_0350: Label69
IL_0350: br => Label70
IL_0355: Label16
IL_0355: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_035A: ldc.i4.0
IL_035B: ldc.i4.0
IL_035C: ldc.i4.m1
IL_035D: ldc.r4 300
IL_0362: ldc.i4.0
IL_0363: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0368: br => Label71
IL_036D: Label13
IL_036D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0372: ldc.i4.0
IL_0373: ldc.i4.0
IL_0374: ldc.i4.m1
IL_0375: ldc.r4 300
IL_037A: ldc.i4.0
IL_037B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0380: br => Label72
IL_0385: Label15
IL_0385: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_038A: ldc.i4.s 13
IL_038C: ldc.i4.0
IL_038D: ldc.i4.m1
IL_038E: ldc.r4 2000
IL_0393: ldc.i4.0
IL_0394: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0399: br => Label73
IL_039E: Label20
IL_039E: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03A3: ldc.i4.0
IL_03A4: ldc.i4.0
IL_03A5: ldc.i4.m1
IL_03A6: ldc.r4 300
IL_03AB: ldc.i4.0
IL_03AC: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03B1: br => Label74
IL_03B6: Label21
IL_03B6: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03BB: ldc.i4.0
IL_03BC: ldc.i4.0
IL_03BD: ldc.i4.m1
IL_03BE: ldc.r4 300
IL_03C3: ldc.i4.0
IL_03C4: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03C9: br => Label75
IL_03CE: Label22
IL_03CE: ldarg.2
IL_03CF: brtrue => Label76
IL_03D4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03D9: ldc.i4.s 9
IL_03DB: ldc.i4.0
IL_03DC: ldc.i4.1
IL_03DD: ldc.r4 2000
IL_03E2: ldc.i4.0
IL_03E3: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03E8: br => Label77
IL_03ED: Label76
IL_03ED: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03F2: ldc.i4.0
IL_03F3: ldc.i4.0
IL_03F4: ldc.i4.m1
IL_03F5: ldc.r4 300
IL_03FA: ldc.i4.0
IL_03FB: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0400: Label77
IL_0400: br => Label78
IL_0405: Label23
IL_0405: ldarg.2
IL_0406: brtrue => Label79
IL_040B: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0410: ldc.i4.s 9
IL_0412: ldc.i4.0
IL_0413: ldc.i4.3
IL_0414: ldc.r4 2000
IL_0419: ldc.i4.0
IL_041A: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_041F: br => Label80
IL_0424: Label79
IL_0424: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0429: ldc.i4.0
IL_042A: ldc.i4.0
IL_042B: ldc.i4.m1
IL_042C: ldc.r4 300
IL_0431: ldc.i4.0
IL_0432: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0437: Label80
IL_0437: br => Label81
IL_043C: Label24
IL_043C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0441: ldc.i4.s 20
IL_0443: ldc.i4.0
IL_0444: ldc.i4.3
IL_0445: ldc.r4 500
IL_044A: ldc.i4.1
IL_044B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0450: br => Label82
IL_0455: Label25
IL_0455: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_045A: ldc.i4.0
IL_045B: ldc.i4.0
IL_045C: ldc.i4.m1
IL_045D: ldc.r4 300
IL_0462: ldc.i4.0
IL_0463: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0468: br => Label83
IL_046D: Label26
IL_046D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0472: ldc.i4.s 20
IL_0474: ldc.i4.0
IL_0475: ldc.i4.1
IL_0476: ldc.r4 2000
IL_047B: ldc.i4.0
IL_047C: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0481: br => Label84
IL_0486: Label27
IL_0486: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_048B: ldc.i4.0
IL_048C: ldc.i4.0
IL_048D: ldc.i4.m1
IL_048E: ldc.r4 300
IL_0493: ldc.i4.0
IL_0494: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0499: br => Label85
IL_049E: Label28
IL_049E: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04A3: ldc.i4.0
IL_04A4: ldc.i4.0
IL_04A5: ldc.i4.m1
IL_04A6: ldc.r4 300
IL_04AB: ldc.i4.0
IL_04AC: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04B1: br => Label86
IL_04B6: Label29
IL_04B6: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04BB: ldc.i4.0
IL_04BC: ldc.i4.0
IL_04BD: ldc.i4.m1
IL_04BE: ldc.r4 300
IL_04C3: ldc.i4.0
IL_04C4: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04C9: br => Label87
IL_04CE: Label30
IL_04CE: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04D3: ldc.i4.0
IL_04D4: ldc.i4.0
IL_04D5: ldc.i4.m1
IL_04D6: ldc.r4 300
IL_04DB: ldc.i4.0
IL_04DC: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04E1: br => Label88
IL_04E6: Label31
IL_04E6: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04EB: ldc.i4.0
IL_04EC: ldc.i4.0
IL_04ED: ldc.i4.m1
IL_04EE: ldc.r4 300
IL_04F3: ldc.i4.0
IL_04F4: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04F9: br => Label89
IL_04FE: Label32
IL_04FE: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0503: ldc.i4.s 12
IL_0505: ldc.i4.s 17
IL_0507: ldc.i4.1
IL_0508: ldc.r4 2000
IL_050D: ldc.i4.0
IL_050E: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0513: br => Label90
IL_0518: Label33
IL_0518: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_051D: ldc.i4.0
IL_051E: ldc.i4.0
IL_051F: ldc.i4.m1
IL_0520: ldc.r4 300
IL_0525: ldc.i4.0
IL_0526: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_052B: br => Label91
IL_0530: Label34
IL_0530: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0535: ldc.i4.s 19
IL_0537: ldc.i4.s 28
IL_0539: ldc.i4.1
IL_053A: ldc.r4 500
IL_053F: ldc.i4.0
IL_0540: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0545: br => Label92
IL_054A: Label35
IL_054A: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_054F: ldc.i4.0
IL_0550: ldc.i4.0
IL_0551: ldc.i4.m1
IL_0552: ldc.r4 300
IL_0557: ldc.i4.0
IL_0558: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_055D: br => Label93
IL_0562: Label36
IL_0562: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0567: ldc.i4.0
IL_0568: ldc.i4.0
IL_0569: ldc.i4.m1
IL_056A: ldc.r4 300
IL_056F: ldc.i4.0
IL_0570: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0575: br => Label94
IL_057A: Label37
IL_057A: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_057F: ldc.i4.0
IL_0580: ldc.i4.0
IL_0581: ldc.i4.m1
IL_0582: ldc.r4 300
IL_0587: ldc.i4.0
IL_0588: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_058D: br => Label95
IL_0592: // end original
IL_0592: Label38
IL_0592: Label39
IL_0592: Label42
IL_0592: Label49
IL_0592: Label50
IL_0592: Label51
IL_0592: Label52
IL_0592: Label53
IL_0592: Label54
IL_0592: Label55
IL_0592: Label56
IL_0592: Label57
IL_0592: Label58
IL_0592: Label59
IL_0592: Label60
IL_0592: Label61
IL_0592: Label70
IL_0592: Label71
IL_0592: Label72
IL_0592: Label73
IL_0592: Label74
IL_0592: Label75
IL_0592: Label78
IL_0592: Label81
IL_0592: Label82
IL_0592: Label83
IL_0592: Label84
IL_0592: Label85
IL_0592: Label86
IL_0592: Label87
IL_0592: Label88
IL_0592: Label89
IL_0592: Label90
IL_0592: Label91
IL_0592: Label92
IL_0592: Label93
IL_0592: Label94
IL_0592: Label95
IL_0592: ret
DONE

### Patch: virtual System.Void DefaultTool::OnToolGUI(UnityEngine.Event e)


### Replacement: static System.Void 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<SimulationManager>::get_instance()
IL_0046: ldarg.0
IL_0047: ldftn System.Void DefaultTool::<OnToolGUI>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<InstanceManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<BuildingManager>::get_instance()
IL_017E: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0183: ldfld Building[] Array16`1<Building>::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<SimulationManager>::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<SimulationManager>::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::<OnToolGUI>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<SimulationManager>::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::<OnToolGUI>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<LogChannel>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<BuildingManager>::get_instance()
IL_04D2: stloc.s 13 (BuildingManager)
IL_04D4: ldloc.s 13 (BuildingManager)
IL_04D6: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_04DB: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_04FA: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0555: ldfld Building[] Array16`1<Building>::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<VehicleManager>::get_instance()
IL_0590: stloc.s 16 (VehicleManager)
IL_0592: ldloc.s 16 (VehicleManager)
IL_0594: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0599: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_05B8: ldfld Vehicle[] Array16`1<Vehicle>::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})"
IL_05DD: ldc.i4.2
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: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_0601: stloc.s 12 (System.String)
IL_0603: ldloc.s 17 (VehicleInfo)
IL_0605: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_060A: ldloc.s 8 (System.UInt16)
IL_060C: ldloc.s 16 (VehicleManager)
IL_060E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0613: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0618: ldloc.s 8 (System.UInt16)
IL_061A: ldelema Vehicle
IL_061F: callvirt virtual System.String VehicleAI::GetDebugString(System.UInt16
vehicleID, Vehicle& data)
IL_0624: stloc.s 18 (System.String)
IL_0626: ldloc.s 18 (System.String)
IL_0628: brfalse => Label68
IL_062D: ldloc.s 12 (System.String)
IL_062F: ldstr "\n"
IL_0634: ldloc.s 18 (System.String)
IL_0636: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_063B: stloc.s 12 (System.String)
IL_063D: Label66
IL_063D: Label67
IL_063D: Label68
IL_063D: br => Label69
IL_0642: Label65
IL_0642: ldloc.s 9 (System.UInt16)
IL_0644: brfalse => Label70
IL_0649: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_064E: stloc.s 19 (VehicleManager)
IL_0650: ldloc.s 19 (VehicleManager)
IL_0652: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_0657: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_065C: ldloc.s 9 (System.UInt16)
IL_065E: ldelema VehicleParked
IL_0663: ldfld System.UInt16 VehicleParked::m_flags
IL_0668: ldc.i4.1
IL_0669: and
IL_066A: brfalse => Label71
IL_066F: ldloc.s 19 (VehicleManager)
IL_0671: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_0676: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_067B: ldloc.s 9 (System.UInt16)
IL_067D: ldelema VehicleParked
IL_0682: call VehicleInfo VehicleParked::get_Info()
IL_0687: stloc.s 20 (VehicleInfo)
IL_0689: ldloc.s 20 (VehicleInfo)
IL_068B: ldnull
IL_068C: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0691: brfalse => Label72
IL_0696: ldstr "{0} ({1})"
IL_069B: ldc.i4.2
IL_069C: newarr System.Object
IL_06A1: dup
IL_06A2: ldc.i4.0
IL_06A3: ldloc.s 20 (VehicleInfo)
IL_06A5: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_06AA: callvirt System.String UnityEngine.Object::get_name()
IL_06AF: stelem.ref
IL_06B0: dup
IL_06B1: ldc.i4.1
IL_06B2: ldloc.s 9 (System.UInt16)
IL_06B4: box System.UInt16
IL_06B9: stelem.ref
IL_06BA: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_06BF: stloc.s 12 (System.String)
IL_06C1: ldloc.s 20 (VehicleInfo)
IL_06C3: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_06C8: ldloc.s 9 (System.UInt16)
IL_06CA: ldloc.s 19 (VehicleManager)
IL_06CC: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_06D1: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_06D6: ldloc.s 9 (System.UInt16)
IL_06D8: ldelema VehicleParked
IL_06DD: callvirt virtual System.String VehicleAI::GetDebugString(System.UInt16
parkedVehicleID, VehicleParked& data)
IL_06E2: stloc.s 21 (System.String)
IL_06E4: ldloc.s 21 (System.String)
IL_06E6: brfalse => Label73
IL_06EB: ldloc.s 12 (System.String)
IL_06ED: ldstr "\n"
IL_06F2: ldloc.s 21 (System.String)
IL_06F4: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_06F9: stloc.s 12 (System.String)
IL_06FB: Label71
IL_06FB: Label72
IL_06FB: Label73
IL_06FB: br => Label74
IL_0700: Label70
IL_0700: ldloc.s 10 (System.UInt16)
IL_0702: brfalse => Label75
IL_0707: call static CitizenManager
ColossalFramework.Singleton`1<CitizenManager>::get_instance()
IL_070C: stloc.s 22 (CitizenManager)
IL_070E: ldloc.s 22 (CitizenManager)
IL_0710: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0715: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_071A: ldloc.s 10 (System.UInt16)
IL_071C: ldelema CitizenInstance
IL_0721: ldfld Flags CitizenInstance::m_flags
IL_0726: ldc.i4.1
IL_0727: and
IL_0728: brfalse => Label76
IL_072D: ldloc.s 22 (CitizenManager)
IL_072F: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0734: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0739: ldloc.s 10 (System.UInt16)
IL_073B: ldelema CitizenInstance
IL_0740: call CitizenInfo CitizenInstance::get_Info()
IL_0745: stloc.s 23 (CitizenInfo)
IL_0747: ldloc.s 23 (CitizenInfo)
IL_0749: ldnull
IL_074A: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_074F: brfalse => Label77
IL_0754: ldstr "{0} ({1})"
IL_0759: ldc.i4.2
IL_075A: newarr System.Object
IL_075F: dup
IL_0760: ldc.i4.0
IL_0761: ldloc.s 23 (CitizenInfo)
IL_0763: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_0768: callvirt System.String UnityEngine.Object::get_name()
IL_076D: stelem.ref
IL_076E: dup
IL_076F: ldc.i4.1
IL_0770: ldloc.s 10 (System.UInt16)
IL_0772: box System.UInt16
IL_0777: stelem.ref
IL_0778: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_077D: stloc.s 12 (System.String)
IL_077F: ldloc.s 23 (CitizenInfo)
IL_0781: ldfld CitizenAI CitizenInfo::m_citizenAI
IL_0786: ldloc.s 10 (System.UInt16)
IL_0788: ldloc.s 22 (CitizenManager)
IL_078A: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_078F: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0794: ldloc.s 10 (System.UInt16)
IL_0796: ldelema CitizenInstance
IL_079B: callvirt virtual System.String CitizenAI::GetDebugString(System.UInt16
instanceID, CitizenInstance& data)
IL_07A0: stloc.s 24 (System.String)
IL_07A2: ldloc.s 24 (System.String)
IL_07A4: brfalse => Label78
IL_07A9: ldloc.s 12 (System.String)
IL_07AB: ldstr "\n"
IL_07B0: ldloc.s 24 (System.String)
IL_07B2: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_07B7: stloc.s 12 (System.String)
IL_07B9: Label76
IL_07B9: Label77
IL_07B9: Label78
IL_07B9: br => Label79
IL_07BE: Label75
IL_07BE: ldloc.s 11 (System.UInt16)
IL_07C0: brfalse => Label80
IL_07C5: call static TransportManager
ColossalFramework.Singleton`1<TransportManager>::get_instance()
IL_07CA: stloc.s 25 (TransportManager)
IL_07CC: ldloc.s 25 (TransportManager)
IL_07CE: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_07D3: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_07D8: ldloc.s 11 (System.UInt16)
IL_07DA: ldelema TransportLine
IL_07DF: ldfld Flags TransportLine::m_flags
IL_07E4: ldc.i4.1
IL_07E5: and
IL_07E6: brfalse => Label81
IL_07EB: ldloc.s 25 (TransportManager)
IL_07ED: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_07F2: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_07F7: ldloc.s 11 (System.UInt16)
IL_07F9: ldelema TransportLine
IL_07FE: call TransportInfo TransportLine::get_Info()
IL_0803: stloc.s 26 (TransportInfo)
IL_0805: ldloc.s 26 (TransportInfo)
IL_0807: ldnull
IL_0808: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_080D: brfalse => Label82
IL_0812: ldstr "{0} ({1})"
IL_0817: ldc.i4.2
IL_0818: newarr System.Object
IL_081D: dup
IL_081E: ldc.i4.0
IL_081F: ldloc.s 26 (TransportInfo)
IL_0821: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_0826: callvirt System.String UnityEngine.Object::get_name()
IL_082B: stelem.ref
IL_082C: dup
IL_082D: ldc.i4.1
IL_082E: ldloc.s 11 (System.UInt16)
IL_0830: box System.UInt16
IL_0835: stelem.ref
IL_0836: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_083B: stloc.s 12 (System.String)
IL_083D: ldloc.s 25 (TransportManager)
IL_083F: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_0844: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_0849: ldloc.s 11 (System.UInt16)
IL_084B: ldelema TransportLine
IL_0850: ldloc.s 11 (System.UInt16)
IL_0852: call System.String TransportLine::GetDebugString(System.UInt16
lineID)
IL_0857: stloc.s 27 (System.String)
IL_0859: ldloc.s 27 (System.String)
IL_085B: brfalse => Label83
IL_0860: ldloc.s 12 (System.String)
IL_0862: ldstr "\n"
IL_0867: ldloc.s 27 (System.String)
IL_0869: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_086E: stloc.s 12 (System.String)
IL_0870: Label64
IL_0870: Label69
IL_0870: Label74
IL_0870: Label79
IL_0870: Label80
IL_0870: Label81
IL_0870: Label82
IL_0870: Label83
IL_0870: ldloc.s 12 (System.String)
IL_0872: brfalse => Label84
IL_0877: ldloc.s 6 (InstanceID)
IL_0879: ldloca.s 28 (UnityEngine.Vector3)
IL_087B: ldloca.s 29 (UnityEngine.Quaternion)
IL_087D: ldloca.s 30 (UnityEngine.Vector3)
IL_087F: call static System.Boolean InstanceManager::GetPosition(InstanceID
id, UnityEngine.Vector3& position, UnityEngine.Quaternion& rotation,
UnityEngine.Vector3& size)
IL_0884: brtrue => Label85
IL_0889: ldarg.0
IL_088A: ldfld UnityEngine.Vector3 DefaultTool::m_mousePosition
IL_088F: stloc.s 28 (UnityEngine.Vector3)
IL_0891: Label85
IL_0891: call static UnityEngine.Camera UnityEngine.Camera::get_main()
IL_0896: ldloc.s 28 (UnityEngine.Vector3)
IL_0898: callvirt UnityEngine.Vector3
UnityEngine.Camera::WorldToScreenPoint(UnityEngine.Vector3 position)
IL_089D: stloc.s 31 (UnityEngine.Vector3)
IL_089F: ldloca.s 31 (UnityEngine.Vector3)
IL_08A1: call static System.Int32 UnityEngine.Screen::get_height()
IL_08A6: conv.r4
IL_08A7: ldloca.s 31 (UnityEngine.Vector3)
IL_08A9: ldfld System.Single UnityEngine.Vector3::y
IL_08AE: sub
IL_08AF: stfld System.Single UnityEngine.Vector3::y
IL_08B4: call static UnityEngine.Color UnityEngine.GUI::get_color()
IL_08B9: stloc.s 32 (UnityEngine.Color)
IL_08BB: call static UnityEngine.Color UnityEngine.Color::get_cyan()
IL_08C0: call static System.Void UnityEngine.GUI::set_color(UnityEngine.Color
value)
IL_08C5: ldloca.s 31 (UnityEngine.Vector3)
IL_08C7: ldfld System.Single UnityEngine.Vector3::x
IL_08CC: ldloca.s 31 (UnityEngine.Vector3)
IL_08CE: ldfld System.Single UnityEngine.Vector3::y
IL_08D3: ldc.r4 500
IL_08D8: ldc.r4 500
IL_08DD: newobj System.Void UnityEngine.Rect::.ctor(System.Single x,
System.Single y, System.Single width, System.Single height)
IL_08E2: ldloc.s 12 (System.String)
IL_08E4: call static UnityEngine.Color UnityEngine.Color::get_black()
IL_08E9: call static UnityEngine.Color UnityEngine.Color::get_cyan()
IL_08EE: call static UnityEngine.GUISkin UnityEngine.GUI::get_skin()
IL_08F3: callvirt UnityEngine.GUIStyle UnityEngine.GUISkin::get_label()
IL_08F8: ldc.r4 2
IL_08FD: 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_0902: ldloc.s 32 (UnityEngine.Color)
IL_0904: call static System.Void UnityEngine.GUI::set_color(UnityEngine.Color
value)
IL_0909: // end original
IL_0909: Label57
IL_0909: Label58
IL_0909: Label59
IL_0909: Label84
IL_0909: ldarg 1
IL_090D: call static System.Void
TrafficManager.Patch._DefaultTool.OnToolGUIPatch::Postfix(UnityEngine.Event e)
IL_0912: ret
DONE

### Patch: virtual System.Void DefaultTool::RenderOverlay(CameraInfo cameraInfo)


### Replacement: static System.Void 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<PropManager>::get_instance()
IL_0079: ldfld Array16`1<PropInstance> PropManager::m_props
IL_007E: ldfld PropInstance[] Array16`1<PropInstance>::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<TreeManager>::get_instance()
IL_012C: ldfld Array32`1<TreeInstance> TreeManager::m_trees
IL_0131: ldfld TreeInstance[] Array32`1<TreeInstance>::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<BuildingManager>::get_instance()
IL_01E6: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01EB: ldfld Building[] Array16`1<Building>::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<DisasterManager>::get_instance()
IL_03A3: ldfld FastList`1<DisasterData> DisasterManager::m_disasters
IL_03A8: ldfld DisasterData[] FastList`1<DisasterData>::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<NetManager>::get_instance()
IL_04A6: stloc.s 24 (NetManager)
IL_04A8: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_04AD: stloc.s 25 (BuildingManager)
IL_04AF: ldloc.s 25 (BuildingManager)
IL_04B1: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_04B6: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_04F6: ldfld Building[] Array16`1<Building>::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<NetNode> NetManager::m_nodes
IL_0520: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_0543: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0562: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0582: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_05AA: ldfld NetNode[] Array16`1<NetNode>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_05F6: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0618: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0637: ldfld Building[] Array16`1<Building>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_0693: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06AD: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06C7: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06F2: ldfld Building[] Array16`1<Building>::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<NetNode> NetManager::m_nodes
IL_071C: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_073F: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_075E: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_077F: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_07A9: ldfld NetNode[] Array16`1<NetNode>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_07F5: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0817: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0831: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_084B: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0865: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0890: ldfld Building[] Array16`1<Building>::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<LogChannel>::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<NetManager>::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<RenderManager>::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<NetSegment> NetManager::m_segments
IL_09A8: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_09CC: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_09D1: ldloc.s 45 (NetManager)
IL_09D3: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_09D8: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_0A01: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A06: ldloc.s 45 (NetManager)
IL_0A08: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0A0D: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0A73: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0A92: ldfld NetSegment[] Array16`1<NetSegment>::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<ToolManager>::get_instance()
IL_0C1C: ldflda DrawCallData SimulationManagerBase`2<ToolManager,
ToolController>::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<RenderManager>::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<NetSegment> NetManager::m_segments
IL_0C75: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0C96: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0CF4: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0D18: ldfld NetSegment[] Array16`1<NetSegment>::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<TreeManager>::get_instance()
IL_0D40: stloc.s 67 (TreeManager)
IL_0D42: ldloc.s 67 (TreeManager)
IL_0D44: ldfld Array32`1<TreeInstance> TreeManager::m_trees
IL_0D49: ldfld TreeInstance[] Array32`1<TreeInstance>::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<TreeInstance> TreeManager::m_trees
IL_0D64: ldfld TreeInstance[] Array32`1<TreeInstance>::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<PropManager>::get_instance()
IL_0E07: stloc.s 75 (PropManager)
IL_0E09: ldloc.s 75 (PropManager)
IL_0E0B: ldfld Array16`1<PropInstance> PropManager::m_props
IL_0E10: ldfld PropInstance[] Array16`1<PropInstance>::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<PropInstance> PropManager::m_props
IL_0E2A: ldfld PropInstance[] Array16`1<PropInstance>::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<PropInstance> PropManager::m_props
IL_0E44: ldfld PropInstance[] Array16`1<PropInstance>::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<VehicleManager>::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<Vehicle> VehicleManager::m_vehicles
IL_0F0E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0F38: ldfld Vehicle[] Array16`1<Vehicle>::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<VehicleManager>::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<VehicleParked> VehicleManager::m_parkedVehicles
IL_0F87: ldfld VehicleParked[] Array16`1<VehicleParked>::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<VehicleParked> VehicleManager::m_parkedVehicles
IL_0FB1: ldfld VehicleParked[] Array16`1<VehicleParked>::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<CitizenManager>::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<CitizenInstance> CitizenManager::m_instances
IL_1000: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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<CitizenInstance> CitizenManager::m_instances
IL_102A: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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<InfoManager>::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<DistrictManager>::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<InfoManager>::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<DistrictManager>::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<DisasterManager>::get_instance()
IL_1129: stloc.s 104 (DisasterManager)
IL_112B: ldloc.s 104 (DisasterManager)
IL_112D: ldfld FastList`1<DisasterData> DisasterManager::m_disasters
IL_1132: ldfld DisasterData[] FastList`1<DisasterData>::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<DisasterData> DisasterManager::m_disasters
IL_114C: ldfld DisasterData[] FastList`1<DisasterData>::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<DisasterData> DisasterManager::m_disasters
IL_1166: ldfld DisasterData[] FastList`1<DisasterData>::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::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<Citizen> CitizenManager::m_citizens
IL_0008: ldfld Citizen[] Array32`1<Citizen>::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::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<CitizenInstance> CitizenManager::m_instances
IL_0008: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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(CitizenMa
nager __instance, System.UInt16 instance)
IL_0022: ret
DONE

### Patch: static System.Void BuildingDecoration::LoadPaths(BuildingInfo info,


System.UInt16 buildingID, Building& data, System.Single elevation)
### Replacement: static System.Void
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<NetManager>::get_instance()
IL_0010: stloc.0
IL_0011: ldloc.0
IL_0012: ldfld FastList`1<System.UInt16> NetManager::m_tempNodeBuffer
IL_0017: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_001C: ldloc.0
IL_001D: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_0022: callvirt System.Void FastList`1<System.UInt16>::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<System.UInt16> 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<System.UInt16> 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<System.UInt16> 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<System.UInt16>::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<NodePosition> 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<NodePosition> 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<System.UInt16> NetManager::m_tempNodeBuffer
IL_022C: ldloc.s 9 (System.UInt16)
IL_022E: callvirt System.Void FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_0268: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_02AC: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16> 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<System.UInt16> 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<NodePosition> 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<NodePosition> 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<System.UInt16> NetManager::m_tempNodeBuffer
IL_056B: ldloc.s 20 (System.UInt16)
IL_056D: callvirt System.Void FastList`1<System.UInt16>::Add(System.UInt16 item)
IL_0572: ldloc.0
IL_0573: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_0578: ldloc.s 21 (System.UInt16)
IL_057A: callvirt System.Void FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_05B6: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_05FC: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_0646: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_067B: ldfld NetSegment[] Array16`1<NetSegment>::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<System.UInt16> NetManager::m_tempNodeBuffer
IL_06D4: ldfld System.UInt16[] FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_06E4: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_071D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_073E: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_075D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0788: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16> NetManager::m_tempNodeBuffer
IL_07C2: ldfld System.Int32 FastList`1<System.UInt16>::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<System.UInt16> NetManager::m_tempSegmentBuffer
IL_07DA: ldfld System.UInt16[] FastList`1<System.UInt16>::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<NetSegment> NetManager::m_segments
IL_07EA: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_080F: ldfld NetSegment[] Array16`1<NetSegment>::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<ToolManager>::get_instance()
IL_083B: ldfld ToolController SimulationManagerBase`2<ToolManager,
ToolController>::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<NetSegment> NetManager::m_segments
IL_0852: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0879: ldfld NetSegment[] Array16`1<NetSegment>::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<System.UInt16> NetManager::m_tempSegmentBuffer
IL_08A9: ldfld System.Int32 FastList`1<System.UInt16>::m_size
IL_08AE: blt => Label60
IL_08B3: ldarg.0
IL_08B4: call static System.Void
TrafficManager.Patches._BuildingDecoration.LoadPathsPatch::AfterIntersectionBuilt(B
uildingInfo info)
IL_08B9: ldloc.0
IL_08BA: ldfld FastList`1<System.UInt16> NetManager::m_tempNodeBuffer
IL_08BF: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_08C4: ldloc.0
IL_08C5: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_08CA: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_08CF: // end original
IL_08CF: Label0
IL_08CF: ret
DONE

### Harmony id=de.viathinksoft.tmpe, version=2.0.0.9, location=E:\Games\data-


0000000015990080
### Started from System.Void TrafficManager.Patcher::Uninstall(), location E:\
Games\data-0000000016967040
### At 2022-11-05 01.25.55
### 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::CreateVehicle_Patch1(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.s => Label1
IL_001D: ldarg.0
IL_001E: ldarg 1
IL_0022: ldarg 3
IL_0026: call static System.Boolean
TrafficManager.Patch._VehicleManager.CreateVehiclePatch::Prefix(VehicleManager
__instance, System.UInt16& vehicle, VehicleInfo info)
IL_002B: stloc 3 (System.Boolean)
IL_002F: nop
IL_0030: ldloc 3 (System.Boolean)
IL_0034: brfalse => Label0
IL_0039: // start original
IL_0039: ldarg.0
IL_003A: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_003F: ldloca.s 0 (System.UInt16)
IL_0041: ldarg.2
IL_0042: callvirt System.Boolean Array16`1<Vehicle>::CreateItem(System.UInt16&
item, ColossalFramework.Math.Randomizer& r)
IL_0047: brfalse => Label2
IL_004C: ldarg.1
IL_004D: ldloc.0
IL_004E: stind.i2
IL_004F: ldloca.s 1 (Vehicle+Frame)
IL_0051: ldarg.s 4
IL_0053: call static UnityEngine.Quaternion
UnityEngine.Quaternion::get_identity()
IL_0058: call System.Void Frame::.ctor(UnityEngine.Vector3 position,
UnityEngine.Quaternion rotation)
IL_005D: ldarg.0
IL_005E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0063: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0068: ldarg.1
IL_0069: ldind.u2
IL_006A: ldelema Vehicle
IL_006F: ldc.i4.1
IL_0070: stfld Flags Vehicle::m_flags
IL_0075: ldarg.0
IL_0076: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_007B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0080: ldarg.1
IL_0081: ldind.u2
IL_0082: ldelema Vehicle
IL_0087: ldc.i4.0
IL_0088: stfld Flags2 Vehicle::m_flags2
IL_008D: ldarg.s 6
IL_008F: brfalse => Label3
IL_0094: ldarg.0
IL_0095: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_009A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_009F: ldarg.1
IL_00A0: ldind.u2
IL_00A1: ldelema Vehicle
IL_00A6: dup
IL_00A7: ldfld Flags Vehicle::m_flags
IL_00AC: ldc.i4.s 32
IL_00AE: or
IL_00AF: stfld Flags Vehicle::m_flags
IL_00B4: Label3
IL_00B4: ldarg.s 7
IL_00B6: brfalse => Label4
IL_00BB: ldarg.0
IL_00BC: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00C1: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00C6: ldarg.1
IL_00C7: ldind.u2
IL_00C8: ldelema Vehicle
IL_00CD: dup
IL_00CE: ldfld Flags Vehicle::m_flags
IL_00D3: ldc.i4.s 16
IL_00D5: or
IL_00D6: stfld Flags Vehicle::m_flags
IL_00DB: Label4
IL_00DB: ldarg.0
IL_00DC: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00E1: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00E6: ldarg.1
IL_00E7: ldind.u2
IL_00E8: ldelema Vehicle
IL_00ED: ldarg.3
IL_00EE: call System.Void Vehicle::set_Info(VehicleInfo value)
IL_00F3: ldarg.0
IL_00F4: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00F9: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00FE: ldarg.1
IL_00FF: ldind.u2
IL_0100: ldelema Vehicle
IL_0105: ldloc.1
IL_0106: stfld Frame Vehicle::m_frame0
IL_010B: ldarg.0
IL_010C: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0111: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0116: ldarg.1
IL_0117: ldind.u2
IL_0118: ldelema Vehicle
IL_011D: ldloc.1
IL_011E: stfld Frame Vehicle::m_frame1
IL_0123: ldarg.0
IL_0124: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0129: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_012E: ldarg.1
IL_012F: ldind.u2
IL_0130: ldelema Vehicle
IL_0135: ldloc.1
IL_0136: stfld Frame Vehicle::m_frame2
IL_013B: ldarg.0
IL_013C: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0141: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0146: ldarg.1
IL_0147: ldind.u2
IL_0148: ldelema Vehicle
IL_014D: ldloc.1
IL_014E: stfld Frame Vehicle::m_frame3
IL_0153: ldarg.0
IL_0154: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0159: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_015E: ldarg.1
IL_015F: ldind.u2
IL_0160: ldelema Vehicle
IL_0165: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_016A: stfld UnityEngine.Vector4 Vehicle::m_targetPos0
IL_016F: ldarg.0
IL_0170: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0175: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_017A: ldarg.1
IL_017B: ldind.u2
IL_017C: ldelema Vehicle
IL_0181: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_0186: stfld UnityEngine.Vector4 Vehicle::m_targetPos1
IL_018B: ldarg.0
IL_018C: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0191: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0196: ldarg.1
IL_0197: ldind.u2
IL_0198: ldelema Vehicle
IL_019D: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_01A2: stfld UnityEngine.Vector4 Vehicle::m_targetPos2
IL_01A7: ldarg.0
IL_01A8: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01AD: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01B2: ldarg.1
IL_01B3: ldind.u2
IL_01B4: ldelema Vehicle
IL_01B9: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_01BE: stfld UnityEngine.Vector4 Vehicle::m_targetPos3
IL_01C3: ldarg.0
IL_01C4: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01C9: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01CE: ldarg.1
IL_01CF: ldind.u2
IL_01D0: ldelema Vehicle
IL_01D5: ldc.i4.0
IL_01D6: stfld System.UInt16 Vehicle::m_sourceBuilding
IL_01DB: ldarg.0
IL_01DC: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01E1: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01E6: ldarg.1
IL_01E7: ldind.u2
IL_01E8: ldelema Vehicle
IL_01ED: ldc.i4.0
IL_01EE: stfld System.UInt16 Vehicle::m_targetBuilding
IL_01F3: ldarg.0
IL_01F4: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01F9: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01FE: ldarg.1
IL_01FF: ldind.u2
IL_0200: ldelema Vehicle
IL_0205: ldarg.s 5
IL_0207: conv.u1
IL_0208: stfld System.Byte Vehicle::m_transferType
IL_020D: ldarg.0
IL_020E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0213: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0218: ldarg.1
IL_0219: ldind.u2
IL_021A: ldelema Vehicle
IL_021F: ldc.i4.0
IL_0220: stfld System.UInt16 Vehicle::m_transferSize
IL_0225: ldarg.0
IL_0226: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_022B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0230: ldarg.1
IL_0231: ldind.u2
IL_0232: ldelema Vehicle
IL_0237: ldc.i4.0
IL_0238: stfld System.Byte Vehicle::m_waitCounter
IL_023D: ldarg.0
IL_023E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0243: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0248: ldarg.1
IL_0249: ldind.u2
IL_024A: ldelema Vehicle
IL_024F: ldc.i4.0
IL_0250: stfld System.Byte Vehicle::m_blockCounter
IL_0255: ldarg.0
IL_0256: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_025B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0260: ldarg.1
IL_0261: ldind.u2
IL_0262: ldelema Vehicle
IL_0267: ldc.i4.0
IL_0268: stfld System.UInt16 Vehicle::m_nextGridVehicle
IL_026D: ldarg.0
IL_026E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0273: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0278: ldarg.1
IL_0279: ldind.u2
IL_027A: ldelema Vehicle
IL_027F: ldc.i4.0
IL_0280: stfld System.UInt16 Vehicle::m_nextOwnVehicle
IL_0285: ldarg.0
IL_0286: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_028B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0290: ldarg.1
IL_0291: ldind.u2
IL_0292: ldelema Vehicle
IL_0297: ldc.i4.0
IL_0298: stfld System.UInt16 Vehicle::m_nextGuestVehicle
IL_029D: ldarg.0
IL_029E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02A3: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02A8: ldarg.1
IL_02A9: ldind.u2
IL_02AA: ldelema Vehicle
IL_02AF: ldc.i4.0
IL_02B0: stfld System.UInt16 Vehicle::m_nextLineVehicle
IL_02B5: ldarg.0
IL_02B6: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02BB: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02C0: ldarg.1
IL_02C1: ldind.u2
IL_02C2: ldelema Vehicle
IL_02C7: ldc.i4.0
IL_02C8: stfld System.UInt16 Vehicle::m_transportLine
IL_02CD: ldarg.0
IL_02CE: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02D3: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02D8: ldarg.1
IL_02D9: ldind.u2
IL_02DA: ldelema Vehicle
IL_02DF: ldc.i4.0
IL_02E0: stfld System.UInt16 Vehicle::m_leadingVehicle
IL_02E5: ldarg.0
IL_02E6: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02EB: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02F0: ldarg.1
IL_02F1: ldind.u2
IL_02F2: ldelema Vehicle
IL_02F7: ldc.i4.0
IL_02F8: stfld System.UInt16 Vehicle::m_trailingVehicle
IL_02FD: ldarg.0
IL_02FE: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0303: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0308: ldarg.1
IL_0309: ldind.u2
IL_030A: ldelema Vehicle
IL_030F: ldc.i4.0
IL_0310: stfld System.UInt16 Vehicle::m_cargoParent
IL_0315: ldarg.0
IL_0316: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_031B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0320: ldarg.1
IL_0321: ldind.u2
IL_0322: ldelema Vehicle
IL_0327: ldc.i4.0
IL_0328: stfld System.UInt16 Vehicle::m_firstCargo
IL_032D: ldarg.0
IL_032E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0333: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0338: ldarg.1
IL_0339: ldind.u2
IL_033A: ldelema Vehicle
IL_033F: ldc.i4.0
IL_0340: stfld System.UInt16 Vehicle::m_nextCargo
IL_0345: ldarg.0
IL_0346: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_034B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0350: ldarg.1
IL_0351: ldind.u2
IL_0352: ldelema Vehicle
IL_0357: ldc.i4.0
IL_0358: stfld System.UInt32 Vehicle::m_citizenUnits
IL_035D: ldarg.0
IL_035E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0363: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0368: ldarg.1
IL_0369: ldind.u2
IL_036A: ldelema Vehicle
IL_036F: ldc.i4.0
IL_0370: stfld System.UInt32 Vehicle::m_path
IL_0375: ldarg.0
IL_0376: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_037B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0380: ldarg.1
IL_0381: ldind.u2
IL_0382: ldelema Vehicle
IL_0387: ldc.i4.0
IL_0388: stfld System.Byte Vehicle::m_lastFrame
IL_038D: ldarg.0
IL_038E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0393: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0398: ldarg.1
IL_0399: ldind.u2
IL_039A: ldelema Vehicle
IL_039F: ldc.i4.0
IL_03A0: stfld System.Byte Vehicle::m_pathPositionIndex
IL_03A5: ldarg.0
IL_03A6: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03AB: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03B0: ldarg.1
IL_03B1: ldind.u2
IL_03B2: ldelema Vehicle
IL_03B7: ldc.i4.0
IL_03B8: stfld System.Byte Vehicle::m_lastPathOffset
IL_03BD: ldarg.0
IL_03BE: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03C3: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03C8: ldarg.1
IL_03C9: ldind.u2
IL_03CA: ldelema Vehicle
IL_03CF: ldc.i4.0
IL_03D0: stfld System.Byte Vehicle::m_gateIndex
IL_03D5: ldarg.0
IL_03D6: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03DB: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03E0: ldarg.1
IL_03E1: ldind.u2
IL_03E2: ldelema Vehicle
IL_03E7: ldc.i4.0
IL_03E8: stfld System.UInt16 Vehicle::m_waterSource
IL_03ED: ldarg.0
IL_03EE: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03F3: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03F8: ldarg.1
IL_03F9: ldind.u2
IL_03FA: ldelema Vehicle
IL_03FF: ldc.i4.0
IL_0400: stfld System.UInt16 Vehicle::m_touristCount
IL_0405: ldarg.0
IL_0406: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_040B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0410: ldarg.1
IL_0411: ldind.u2
IL_0412: ldelema Vehicle
IL_0417: ldc.i4.0
IL_0418: stfld System.UInt16 Vehicle::m_custom
IL_041D: ldarg.3
IL_041E: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_0423: ldarg.1
IL_0424: ldind.u2
IL_0425: ldarg.0
IL_0426: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_042B: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0430: ldarg.1
IL_0431: ldind.u2
IL_0432: ldelema Vehicle
IL_0437: callvirt virtual System.Void VehicleAI::CreateVehicle(System.UInt16
vehicleID, Vehicle& data)
IL_043C: ldarg.3
IL_043D: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_0442: ldarg.1
IL_0443: ldind.u2
IL_0444: ldarg.0
IL_0445: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_044A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_044F: ldarg.1
IL_0450: ldind.u2
IL_0451: ldelema Vehicle
IL_0456: ldarg.0
IL_0457: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_045C: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0461: ldarg.1
IL_0462: ldind.u2
IL_0463: ldelema Vehicle
IL_0468: ldflda Frame Vehicle::m_frame0
IL_046D: callvirt virtual System.Void VehicleAI::FrameDataUpdated(System.UInt16
vehicleID, Vehicle& vehicleData, Frame& frameData)
IL_0472: ldarg.0
IL_0473: ldarg.0
IL_0474: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0479: callvirt System.UInt32 Array16`1<Vehicle>::ItemCount()
IL_047E: ldc.i4.1
IL_047F: sub
IL_0480: stfld System.Int32 VehicleManager::m_vehicleCount
IL_0485: ldc.i4.1
IL_0486: br => Label5
IL_048B: Label2
IL_048B: ldarg.1
IL_048C: ldc.i4.0
IL_048D: stind.i2
IL_048E: ldc.i4.0
IL_048F: // end original
IL_048F: Label5
IL_048F: stloc 2 (System.Boolean)
IL_0493: Label0
IL_0493: ldloc 2 (System.Boolean)
IL_0497: 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::CreateVehicle_Patch0(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: // start original
IL_0000: ldarg.0
IL_0001: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0006: ldloca.s 0 (System.UInt16)
IL_0008: ldarg.2
IL_0009: callvirt System.Boolean Array16`1<Vehicle>::CreateItem(System.UInt16&
item, ColossalFramework.Math.Randomizer& r)
IL_000E: brfalse => Label0
IL_0013: ldarg.1
IL_0014: ldloc.0
IL_0015: stind.i2
IL_0016: ldloca.s 1 (Vehicle+Frame)
IL_0018: ldarg.s 4
IL_001A: call static UnityEngine.Quaternion
UnityEngine.Quaternion::get_identity()
IL_001F: call System.Void Frame::.ctor(UnityEngine.Vector3 position,
UnityEngine.Quaternion rotation)
IL_0024: ldarg.0
IL_0025: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_002A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_002F: ldarg.1
IL_0030: ldind.u2
IL_0031: ldelema Vehicle
IL_0036: ldc.i4.1
IL_0037: stfld Flags Vehicle::m_flags
IL_003C: ldarg.0
IL_003D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0042: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0047: ldarg.1
IL_0048: ldind.u2
IL_0049: ldelema Vehicle
IL_004E: ldc.i4.0
IL_004F: stfld Flags2 Vehicle::m_flags2
IL_0054: ldarg.s 6
IL_0056: brfalse => Label1
IL_005B: ldarg.0
IL_005C: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0061: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0066: ldarg.1
IL_0067: ldind.u2
IL_0068: ldelema Vehicle
IL_006D: dup
IL_006E: ldfld Flags Vehicle::m_flags
IL_0073: ldc.i4.s 32
IL_0075: or
IL_0076: stfld Flags Vehicle::m_flags
IL_007B: Label1
IL_007B: ldarg.s 7
IL_007D: brfalse => Label2
IL_0082: ldarg.0
IL_0083: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0088: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_008D: ldarg.1
IL_008E: ldind.u2
IL_008F: ldelema Vehicle
IL_0094: dup
IL_0095: ldfld Flags Vehicle::m_flags
IL_009A: ldc.i4.s 16
IL_009C: or
IL_009D: stfld Flags Vehicle::m_flags
IL_00A2: Label2
IL_00A2: ldarg.0
IL_00A3: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00A8: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00AD: ldarg.1
IL_00AE: ldind.u2
IL_00AF: ldelema Vehicle
IL_00B4: ldarg.3
IL_00B5: call System.Void Vehicle::set_Info(VehicleInfo value)
IL_00BA: ldarg.0
IL_00BB: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00C0: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00C5: ldarg.1
IL_00C6: ldind.u2
IL_00C7: ldelema Vehicle
IL_00CC: ldloc.1
IL_00CD: stfld Frame Vehicle::m_frame0
IL_00D2: ldarg.0
IL_00D3: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00D8: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00DD: ldarg.1
IL_00DE: ldind.u2
IL_00DF: ldelema Vehicle
IL_00E4: ldloc.1
IL_00E5: stfld Frame Vehicle::m_frame1
IL_00EA: ldarg.0
IL_00EB: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00F0: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00F5: ldarg.1
IL_00F6: ldind.u2
IL_00F7: ldelema Vehicle
IL_00FC: ldloc.1
IL_00FD: stfld Frame Vehicle::m_frame2
IL_0102: ldarg.0
IL_0103: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0108: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_010D: ldarg.1
IL_010E: ldind.u2
IL_010F: ldelema Vehicle
IL_0114: ldloc.1
IL_0115: stfld Frame Vehicle::m_frame3
IL_011A: ldarg.0
IL_011B: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0120: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0125: ldarg.1
IL_0126: ldind.u2
IL_0127: ldelema Vehicle
IL_012C: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_0131: stfld UnityEngine.Vector4 Vehicle::m_targetPos0
IL_0136: ldarg.0
IL_0137: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_013C: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0141: ldarg.1
IL_0142: ldind.u2
IL_0143: ldelema Vehicle
IL_0148: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_014D: stfld UnityEngine.Vector4 Vehicle::m_targetPos1
IL_0152: ldarg.0
IL_0153: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0158: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_015D: ldarg.1
IL_015E: ldind.u2
IL_015F: ldelema Vehicle
IL_0164: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_0169: stfld UnityEngine.Vector4 Vehicle::m_targetPos2
IL_016E: ldarg.0
IL_016F: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0174: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0179: ldarg.1
IL_017A: ldind.u2
IL_017B: ldelema Vehicle
IL_0180: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_0185: stfld UnityEngine.Vector4 Vehicle::m_targetPos3
IL_018A: ldarg.0
IL_018B: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0190: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0195: ldarg.1
IL_0196: ldind.u2
IL_0197: ldelema Vehicle
IL_019C: ldc.i4.0
IL_019D: stfld System.UInt16 Vehicle::m_sourceBuilding
IL_01A2: ldarg.0
IL_01A3: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01A8: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01AD: ldarg.1
IL_01AE: ldind.u2
IL_01AF: ldelema Vehicle
IL_01B4: ldc.i4.0
IL_01B5: stfld System.UInt16 Vehicle::m_targetBuilding
IL_01BA: ldarg.0
IL_01BB: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01C0: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01C5: ldarg.1
IL_01C6: ldind.u2
IL_01C7: ldelema Vehicle
IL_01CC: ldarg.s 5
IL_01CE: conv.u1
IL_01CF: stfld System.Byte Vehicle::m_transferType
IL_01D4: ldarg.0
IL_01D5: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01DA: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01DF: ldarg.1
IL_01E0: ldind.u2
IL_01E1: ldelema Vehicle
IL_01E6: ldc.i4.0
IL_01E7: stfld System.UInt16 Vehicle::m_transferSize
IL_01EC: ldarg.0
IL_01ED: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01F2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01F7: ldarg.1
IL_01F8: ldind.u2
IL_01F9: ldelema Vehicle
IL_01FE: ldc.i4.0
IL_01FF: stfld System.Byte Vehicle::m_waitCounter
IL_0204: ldarg.0
IL_0205: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_020A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_020F: ldarg.1
IL_0210: ldind.u2
IL_0211: ldelema Vehicle
IL_0216: ldc.i4.0
IL_0217: stfld System.Byte Vehicle::m_blockCounter
IL_021C: ldarg.0
IL_021D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0222: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0227: ldarg.1
IL_0228: ldind.u2
IL_0229: ldelema Vehicle
IL_022E: ldc.i4.0
IL_022F: stfld System.UInt16 Vehicle::m_nextGridVehicle
IL_0234: ldarg.0
IL_0235: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_023A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_023F: ldarg.1
IL_0240: ldind.u2
IL_0241: ldelema Vehicle
IL_0246: ldc.i4.0
IL_0247: stfld System.UInt16 Vehicle::m_nextOwnVehicle
IL_024C: ldarg.0
IL_024D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0252: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0257: ldarg.1
IL_0258: ldind.u2
IL_0259: ldelema Vehicle
IL_025E: ldc.i4.0
IL_025F: stfld System.UInt16 Vehicle::m_nextGuestVehicle
IL_0264: ldarg.0
IL_0265: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_026A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_026F: ldarg.1
IL_0270: ldind.u2
IL_0271: ldelema Vehicle
IL_0276: ldc.i4.0
IL_0277: stfld System.UInt16 Vehicle::m_nextLineVehicle
IL_027C: ldarg.0
IL_027D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0282: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0287: ldarg.1
IL_0288: ldind.u2
IL_0289: ldelema Vehicle
IL_028E: ldc.i4.0
IL_028F: stfld System.UInt16 Vehicle::m_transportLine
IL_0294: ldarg.0
IL_0295: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_029A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_029F: ldarg.1
IL_02A0: ldind.u2
IL_02A1: ldelema Vehicle
IL_02A6: ldc.i4.0
IL_02A7: stfld System.UInt16 Vehicle::m_leadingVehicle
IL_02AC: ldarg.0
IL_02AD: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02B2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02B7: ldarg.1
IL_02B8: ldind.u2
IL_02B9: ldelema Vehicle
IL_02BE: ldc.i4.0
IL_02BF: stfld System.UInt16 Vehicle::m_trailingVehicle
IL_02C4: ldarg.0
IL_02C5: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02CA: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02CF: ldarg.1
IL_02D0: ldind.u2
IL_02D1: ldelema Vehicle
IL_02D6: ldc.i4.0
IL_02D7: stfld System.UInt16 Vehicle::m_cargoParent
IL_02DC: ldarg.0
IL_02DD: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02E2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02E7: ldarg.1
IL_02E8: ldind.u2
IL_02E9: ldelema Vehicle
IL_02EE: ldc.i4.0
IL_02EF: stfld System.UInt16 Vehicle::m_firstCargo
IL_02F4: ldarg.0
IL_02F5: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02FA: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02FF: ldarg.1
IL_0300: ldind.u2
IL_0301: ldelema Vehicle
IL_0306: ldc.i4.0
IL_0307: stfld System.UInt16 Vehicle::m_nextCargo
IL_030C: ldarg.0
IL_030D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0312: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0317: ldarg.1
IL_0318: ldind.u2
IL_0319: ldelema Vehicle
IL_031E: ldc.i4.0
IL_031F: stfld System.UInt32 Vehicle::m_citizenUnits
IL_0324: ldarg.0
IL_0325: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_032A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_032F: ldarg.1
IL_0330: ldind.u2
IL_0331: ldelema Vehicle
IL_0336: ldc.i4.0
IL_0337: stfld System.UInt32 Vehicle::m_path
IL_033C: ldarg.0
IL_033D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0342: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0347: ldarg.1
IL_0348: ldind.u2
IL_0349: ldelema Vehicle
IL_034E: ldc.i4.0
IL_034F: stfld System.Byte Vehicle::m_lastFrame
IL_0354: ldarg.0
IL_0355: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_035A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_035F: ldarg.1
IL_0360: ldind.u2
IL_0361: ldelema Vehicle
IL_0366: ldc.i4.0
IL_0367: stfld System.Byte Vehicle::m_pathPositionIndex
IL_036C: ldarg.0
IL_036D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0372: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0377: ldarg.1
IL_0378: ldind.u2
IL_0379: ldelema Vehicle
IL_037E: ldc.i4.0
IL_037F: stfld System.Byte Vehicle::m_lastPathOffset
IL_0384: ldarg.0
IL_0385: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_038A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_038F: ldarg.1
IL_0390: ldind.u2
IL_0391: ldelema Vehicle
IL_0396: ldc.i4.0
IL_0397: stfld System.Byte Vehicle::m_gateIndex
IL_039C: ldarg.0
IL_039D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03A2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03A7: ldarg.1
IL_03A8: ldind.u2
IL_03A9: ldelema Vehicle
IL_03AE: ldc.i4.0
IL_03AF: stfld System.UInt16 Vehicle::m_waterSource
IL_03B4: ldarg.0
IL_03B5: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03BA: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03BF: ldarg.1
IL_03C0: ldind.u2
IL_03C1: ldelema Vehicle
IL_03C6: ldc.i4.0
IL_03C7: stfld System.UInt16 Vehicle::m_touristCount
IL_03CC: ldarg.0
IL_03CD: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03D2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03D7: ldarg.1
IL_03D8: ldind.u2
IL_03D9: ldelema Vehicle
IL_03DE: ldc.i4.0
IL_03DF: stfld System.UInt16 Vehicle::m_custom
IL_03E4: ldarg.3
IL_03E5: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_03EA: ldarg.1
IL_03EB: ldind.u2
IL_03EC: ldarg.0
IL_03ED: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03F2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03F7: ldarg.1
IL_03F8: ldind.u2
IL_03F9: ldelema Vehicle
IL_03FE: callvirt virtual System.Void VehicleAI::CreateVehicle(System.UInt16
vehicleID, Vehicle& data)
IL_0403: ldarg.3
IL_0404: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_0409: ldarg.1
IL_040A: ldind.u2
IL_040B: ldarg.0
IL_040C: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0411: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0416: ldarg.1
IL_0417: ldind.u2
IL_0418: ldelema Vehicle
IL_041D: ldarg.0
IL_041E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0423: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0428: ldarg.1
IL_0429: ldind.u2
IL_042A: ldelema Vehicle
IL_042F: ldflda Frame Vehicle::m_frame0
IL_0434: callvirt virtual System.Void VehicleAI::FrameDataUpdated(System.UInt16
vehicleID, Vehicle& vehicleData, Frame& frameData)
IL_0439: ldarg.0
IL_043A: ldarg.0
IL_043B: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0440: callvirt System.UInt32 Array16`1<Vehicle>::ItemCount()
IL_0445: ldc.i4.1
IL_0446: sub
IL_0447: stfld System.Int32 VehicleManager::m_vehicleCount
IL_044C: ldc.i4.1
IL_044D: br => Label3
IL_0452: Label0
IL_0452: ldarg.1
IL_0453: ldc.i4.0
IL_0454: stind.i2
IL_0455: ldc.i4.0
IL_0456: // end original
IL_0456: Label3
IL_0456: ret
DONE
### Patch: System.Void VehicleManager::ReleaseVehicle(System.UInt16 vehicle)
### Replacement: static System.Void
VehicleManager::ReleaseVehicle_Patch0(VehicleManager this, System.UInt16 vehicle)
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: ldarg.0
IL_0003: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0008: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_000D: ldarg.1
IL_000E: ldelema Vehicle
IL_0013: call System.Void
VehicleManager::ReleaseVehicleImplementation(System.UInt16 vehicle, Vehicle& data)
IL_0018: // end original
IL_0018: ret
DONE

### Patch: System.Void NetManager::UpdateSegment(System.UInt16 segment,


System.UInt16 fromNode, System.Int32 level)
### Replacement: static System.Void NetManager::UpdateSegment_Patch0(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<NetSegment> NetManager::m_segments
IL_0030: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0047: ldfld NetSegment[] Array16`1<NetSegment>::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: ret
DONE

### Patch: System.Void NetManager::FinalizeSegment(System.UInt16 segment,


NetSegment& data)
### Replacement: static System.Void NetManager::FinalizeSegment_Patch0(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<NetNode> NetManager::m_nodes
IL_0006: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0021: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_00CD: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_00F3: ldfld NetSegment[] Array16`1<NetSegment>::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<LogChannel>::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: ret
DONE

### Patch: static System.Void RoadBaseAI::TrafficLightSimulationStep(System.UInt16


nodeID, NetNode& data)
### Replacement: static System.Void
RoadBaseAI::TrafficLightSimulationStep_Patch0(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.Int32
IL_0000: Local var 38: System.UInt16
IL_0000: Local var 39: RoadBaseAI/TrafficLightState
IL_0000: Local var 40: RoadBaseAI/TrafficLightState
IL_0000: Local var 41: UnityEngine.Vector3
IL_0000: // start original
IL_0000: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0005: stloc.0
IL_0006: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_000B: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0010: stloc.1
IL_0011: ldarg.1
IL_0012: ldfld System.Byte NetNode::m_maxWaitTime
IL_0017: ldc.i4.3
IL_0018: and
IL_0019: stloc.2
IL_001A: ldarg.1
IL_001B: ldfld System.Byte NetNode::m_maxWaitTime
IL_0020: ldc.i4.2
IL_0021: shr
IL_0022: ldc.i4.7
IL_0023: and
IL_0024: stloc.3
IL_0025: ldarg.1
IL_0026: ldfld System.Byte NetNode::m_maxWaitTime
IL_002B: ldc.i4.5
IL_002C: shr
IL_002D: stloc.s 4 (System.Int32)
IL_002F: ldc.i4.m1
IL_0030: stloc.s 5 (System.Int32)
IL_0032: ldc.i4.m1
IL_0033: stloc.s 6 (System.Int32)
IL_0035: ldc.i4.m1
IL_0036: stloc.s 7 (System.Int32)
IL_0038: ldc.i4.m1
IL_0039: stloc.s 8 (System.Int32)
IL_003B: ldc.i4.m1
IL_003C: stloc.s 9 (System.Int32)
IL_003E: ldc.i4.m1
IL_003F: stloc.s 10 (System.Int32)
IL_0041: ldc.i4.0
IL_0042: stloc.s 11 (System.Int32)
IL_0044: ldc.i4.0
IL_0045: stloc.s 12 (System.Int32)
IL_0047: ldc.i4.0
IL_0048: stloc.s 13 (System.Int32)
IL_004A: ldc.i4.0
IL_004B: stloc.s 14 (System.Int32)
IL_004D: ldc.i4.0
IL_004E: stloc.s 15 (System.Int32)
IL_0050: ldc.i4.0
IL_0051: stloc.s 16 (System.Int32)
IL_0053: br => Label0
IL_0058: Label22
IL_0058: ldarg.1
IL_0059: ldloc.s 16 (System.Int32)
IL_005B: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0060: stloc.s 17 (System.UInt16)
IL_0062: ldloc.s 17 (System.UInt16)
IL_0064: brfalse => Label1
IL_0069: ldc.i4.0
IL_006A: stloc.s 18 (System.Int32)
IL_006C: ldc.i4.0
IL_006D: stloc.s 19 (System.Int32)
IL_006F: ldloc.0
IL_0070: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0075: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_007A: ldloc.s 17 (System.UInt16)
IL_007C: ldelema NetSegment
IL_0081: ldloc.s 17 (System.UInt16)
IL_0083: ldc.i4.s 33
IL_0085: ldc.i4 65601
IL_008A: ldloca.s 18 (System.Int32)
IL_008C: ldloca.s 19 (System.Int32)
IL_008E: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_0093: ldloc.0
IL_0094: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0099: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_009E: ldloc.s 17 (System.UInt16)
IL_00A0: ldelema NetSegment
IL_00A5: ldfld System.UInt16 NetSegment::m_startNode
IL_00AA: ldarg.0
IL_00AB: ceq
IL_00AD: stloc.s 20 (System.Boolean)
IL_00AF: ldloc.s 20 (System.Boolean)
IL_00B1: brfalse => Label2
IL_00B6: ldloc.s 19 (System.Int32)
IL_00B8: ldc.i4.0
IL_00B9: ceq
IL_00BB: ldc.i4.0
IL_00BC: ceq
IL_00BE: br => Label3
IL_00C3: Label2
IL_00C3: ldloc.s 18 (System.Int32)
IL_00C5: ldc.i4.0
IL_00C6: ceq
IL_00C8: ldc.i4.0
IL_00C9: ceq
IL_00CB: Label3
IL_00CB: stloc.s 21 (System.Boolean)
IL_00CD: ldloc.s 20 (System.Boolean)
IL_00CF: brfalse => Label4
IL_00D4: ldloc.s 18 (System.Int32)
IL_00D6: ldc.i4.0
IL_00D7: ceq
IL_00D9: ldc.i4.0
IL_00DA: ceq
IL_00DC: br => Label5
IL_00E1: Label4
IL_00E1: ldloc.s 19 (System.Int32)
IL_00E3: ldc.i4.0
IL_00E4: ceq
IL_00E6: ldc.i4.0
IL_00E7: ceq
IL_00E9: Label5
IL_00E9: stloc.s 22 (System.Boolean)
IL_00EB: ldloc.s 21 (System.Boolean)
IL_00ED: brfalse => Label6
IL_00F2: ldloc.s 11 (System.Int32)
IL_00F4: ldc.i4.1
IL_00F5: ldloc.s 16 (System.Int32)
IL_00F7: ldc.i4.s 31
IL_00F9: and
IL_00FA: shl
IL_00FB: or
IL_00FC: stloc.s 11 (System.Int32)
IL_00FE: Label6
IL_00FE: ldloc.s 22 (System.Boolean)
IL_0100: brfalse => Label7
IL_0105: ldloc.s 12 (System.Int32)
IL_0107: ldc.i4.1
IL_0108: ldloc.s 16 (System.Int32)
IL_010A: ldc.i4.s 31
IL_010C: and
IL_010D: shl
IL_010E: or
IL_010F: stloc.s 12 (System.Int32)
IL_0111: ldloc.s 14 (System.Int32)
IL_0113: ldc.i4.1
IL_0114: add
IL_0115: stloc.s 14 (System.Int32)
IL_0117: Label7
IL_0117: ldarg.0
IL_0118: ldloc.0
IL_0119: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_011E: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0123: ldloc.s 17 (System.UInt16)
IL_0125: ldelema NetSegment
IL_012A: ldloc.1
IL_012B: ldc.i4 256
IL_0130: sub
IL_0131: ldloca.s 23 (RoadBaseAI+TrafficLightState)
IL_0133: ldloca.s 24 (RoadBaseAI+TrafficLightState)
IL_0135: ldloca.s 25 (System.Boolean)
IL_0137: ldloca.s 26 (System.Boolean)
IL_0139: 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_013E: ldloc.s 24 (RoadBaseAI+TrafficLightState)
IL_0140: ldc.i4.2
IL_0141: and
IL_0142: brfalse => Label8
IL_0147: ldloc.s 26 (System.Boolean)
IL_0149: brfalse => Label9
IL_014E: ldloc.s 8 (System.Int32)
IL_0150: ldc.i4.m1
IL_0151: bne.un => Label10
IL_0156: ldloc.s 16 (System.Int32)
IL_0158: stloc.s 8 (System.Int32)
IL_015A: Label10
IL_015A: ldloc.s 10 (System.Int32)
IL_015C: ldc.i4.m1
IL_015D: bne.un => Label11
IL_0162: ldloc.s 15 (System.Int32)
IL_0164: ldloc.s 4 (System.Int32)
IL_0166: blt => Label12
IL_016B: ldloc.s 16 (System.Int32)
IL_016D: stloc.s 10 (System.Int32)
IL_016F: Label8
IL_016F: Label9
IL_016F: Label11
IL_016F: Label12
IL_016F: ldloc.s 15 (System.Int32)
IL_0171: ldc.i4.1
IL_0172: add
IL_0173: stloc.s 15 (System.Int32)
IL_0175: ldloc.s 21 (System.Boolean)
IL_0177: brtrue => Label13
IL_017C: ldloc.s 25 (System.Boolean)
IL_017E: brfalse => Label14
IL_0183: Label13
IL_0183: ldloc.s 23 (RoadBaseAI+TrafficLightState)
IL_0185: ldc.i4.2
IL_0186: and
IL_0187: brtrue => Label15
IL_018C: ldloc.s 16 (System.Int32)
IL_018E: stloc.s 6 (System.Int32)
IL_0190: ldloc.s 25 (System.Boolean)
IL_0192: brfalse => Label16
IL_0197: ldloc.s 16 (System.Int32)
IL_0199: stloc.s 5 (System.Int32)
IL_019B: Label16
IL_019B: br => Label17
IL_01A0: Label15
IL_01A0: ldloc.s 25 (System.Boolean)
IL_01A2: brfalse => Label18
IL_01A7: ldloc.s 7 (System.Int32)
IL_01A9: ldc.i4.m1
IL_01AA: bne.un => Label19
IL_01AF: ldloc.s 16 (System.Int32)
IL_01B1: stloc.s 7 (System.Int32)
IL_01B3: Label19
IL_01B3: ldloc.s 9 (System.Int32)
IL_01B5: ldc.i4.m1
IL_01B6: bne.un => Label20
IL_01BB: ldloc.s 13 (System.Int32)
IL_01BD: ldloc.3
IL_01BE: blt => Label21
IL_01C3: ldloc.s 16 (System.Int32)
IL_01C5: stloc.s 9 (System.Int32)
IL_01C7: Label17
IL_01C7: Label18
IL_01C7: Label20
IL_01C7: Label21
IL_01C7: ldloc.s 13 (System.Int32)
IL_01C9: ldc.i4.1
IL_01CA: add
IL_01CB: stloc.s 13 (System.Int32)
IL_01CD: Label1
IL_01CD: Label14
IL_01CD: ldloc.s 16 (System.Int32)
IL_01CF: ldc.i4.1
IL_01D0: add
IL_01D1: stloc.s 16 (System.Int32)
IL_01D3: Label0
IL_01D3: ldloc.s 16 (System.Int32)
IL_01D5: ldc.i4.8
IL_01D6: blt => Label22
IL_01DB: ldloc.s 9 (System.Int32)
IL_01DD: ldc.i4.m1
IL_01DE: bne.un => Label23
IL_01E3: ldloc.s 7 (System.Int32)
IL_01E5: stloc.s 9 (System.Int32)
IL_01E7: Label23
IL_01E7: ldloc.s 10 (System.Int32)
IL_01E9: ldc.i4.m1
IL_01EA: bne.un => Label24
IL_01EF: ldloc.s 8 (System.Int32)
IL_01F1: stloc.s 10 (System.Int32)
IL_01F3: Label24
IL_01F3: ldloc.s 6 (System.Int32)
IL_01F5: ldc.i4.m1
IL_01F6: beq => Label25
IL_01FB: ldloc.s 5 (System.Int32)
IL_01FD: ldc.i4.m1
IL_01FE: beq => Label26
IL_0203: ldloc.2
IL_0204: ldc.i4.1
IL_0205: bgt => Label27
IL_020A: ldc.i4.m1
IL_020B: stloc.s 9 (System.Int32)
IL_020D: ldc.i4.m1
IL_020E: stloc.s 10 (System.Int32)
IL_0210: ldloc.2
IL_0211: ldc.i4.1
IL_0212: add
IL_0213: stloc.2
IL_0214: Label25
IL_0214: Label26
IL_0214: Label27
IL_0214: ldloc.s 10 (System.Int32)
IL_0216: ldc.i4.m1
IL_0217: beq => Label28
IL_021C: ldloc.s 9 (System.Int32)
IL_021E: ldc.i4.m1
IL_021F: beq => Label29
IL_0224: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0229: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_022E: ldc.i4.3
IL_022F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0234: brfalse => Label30
IL_0239: ldc.i4.m1
IL_023A: stloc.s 10 (System.Int32)
IL_023C: Label28
IL_023C: Label29
IL_023C: Label30
IL_023C: ldloc.s 9 (System.Int32)
IL_023E: ldc.i4.m1
IL_023F: beq => Label31
IL_0244: ldloc.s 9 (System.Int32)
IL_0246: stloc.s 6 (System.Int32)
IL_0248: Label31
IL_0248: ldloc.s 10 (System.Int32)
IL_024A: ldloc.s 6 (System.Int32)
IL_024C: bne.un => Label32
IL_0251: ldc.i4.m1
IL_0252: stloc.s 6 (System.Int32)
IL_0254: Label32
IL_0254: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_0259: stloc.s 27 (UnityEngine.Vector3)
IL_025B: ldloc.s 10 (System.Int32)
IL_025D: ldc.i4.m1
IL_025E: beq => Label33
IL_0263: ldarg.1
IL_0264: ldloc.s 10 (System.Int32)
IL_0266: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_026B: stloc.s 28 (System.UInt16)
IL_026D: ldloc.0
IL_026E: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0273: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0278: ldloc.s 28 (System.UInt16)
IL_027A: ldelema NetSegment
IL_027F: ldarg.0
IL_0280: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0285: stloc.s 27 (UnityEngine.Vector3)
IL_0287: ldloc.s 6 (System.Int32)
IL_0289: ldc.i4.m1
IL_028A: beq => Label34
IL_028F: ldarg.1
IL_0290: ldloc.s 6 (System.Int32)
IL_0292: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0297: stloc.s 28 (System.UInt16)
IL_0299: ldloc.0
IL_029A: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_029F: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02A4: ldloc.s 28 (System.UInt16)
IL_02A6: ldelema NetSegment
IL_02AB: ldarg.0
IL_02AC: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_02B1: stloc.s 29 (UnityEngine.Vector3)
IL_02B3: ldloca.s 29 (UnityEngine.Vector3)
IL_02B5: ldfld System.Single UnityEngine.Vector3::x
IL_02BA: ldloca.s 27 (UnityEngine.Vector3)
IL_02BC: ldfld System.Single UnityEngine.Vector3::x
IL_02C1: mul
IL_02C2: ldloca.s 29 (UnityEngine.Vector3)
IL_02C4: ldfld System.Single UnityEngine.Vector3::z
IL_02C9: ldloca.s 27 (UnityEngine.Vector3)
IL_02CB: ldfld System.Single UnityEngine.Vector3::z
IL_02D0: mul
IL_02D1: add
IL_02D2: ldc.r4 -0.5
IL_02D7: bge.un => Label35
IL_02DC: ldc.i4.m1
IL_02DD: stloc.s 6 (System.Int32)
IL_02DF: Label34
IL_02DF: Label35
IL_02DF: ldloc.s 6 (System.Int32)
IL_02E1: ldc.i4.m1
IL_02E2: bne.un => Label36
IL_02E7: ldc.i4.0
IL_02E8: stloc.s 30 (System.Int32)
IL_02EA: br => Label37
IL_02EF: Label43
IL_02EF: ldloc.s 30 (System.Int32)
IL_02F1: ldloc.s 10 (System.Int32)
IL_02F3: beq => Label38
IL_02F8: ldloc.s 11 (System.Int32)
IL_02FA: ldc.i4.1
IL_02FB: ldloc.s 30 (System.Int32)
IL_02FD: ldc.i4.s 31
IL_02FF: and
IL_0300: shl
IL_0301: and
IL_0302: brfalse => Label39
IL_0307: ldarg.1
IL_0308: ldloc.s 30 (System.Int32)
IL_030A: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_030F: stloc.s 28 (System.UInt16)
IL_0311: ldloc.s 28 (System.UInt16)
IL_0313: brfalse => Label40
IL_0318: ldloc.0
IL_0319: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_031E: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0323: ldloc.s 28 (System.UInt16)
IL_0325: ldelema NetSegment
IL_032A: ldarg.0
IL_032B: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0330: stloc.s 31 (UnityEngine.Vector3)
IL_0332: ldloca.s 31 (UnityEngine.Vector3)
IL_0334: ldfld System.Single UnityEngine.Vector3::x
IL_0339: ldloca.s 27 (UnityEngine.Vector3)
IL_033B: ldfld System.Single UnityEngine.Vector3::x
IL_0340: mul
IL_0341: ldloca.s 31 (UnityEngine.Vector3)
IL_0343: ldfld System.Single UnityEngine.Vector3::z
IL_0348: ldloca.s 27 (UnityEngine.Vector3)
IL_034A: ldfld System.Single UnityEngine.Vector3::z
IL_034F: mul
IL_0350: add
IL_0351: ldc.r4 -0.5
IL_0356: blt.un => Label41
IL_035B: ldloc.s 30 (System.Int32)
IL_035D: stloc.s 6 (System.Int32)
IL_035F: br => Label42
IL_0364: Label38
IL_0364: Label39
IL_0364: Label40
IL_0364: Label41
IL_0364: ldloc.s 30 (System.Int32)
IL_0366: ldc.i4.1
IL_0367: add
IL_0368: stloc.s 30 (System.Int32)
IL_036A: Label37
IL_036A: ldloc.s 30 (System.Int32)
IL_036C: ldc.i4.8
IL_036D: blt => Label43
IL_0372: Label33
IL_0372: Label36
IL_0372: Label42
IL_0372: ldc.i4.m1
IL_0373: stloc.s 32 (System.Int32)
IL_0375: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_037A: stloc.s 33 (UnityEngine.Vector3)
IL_037C: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_0381: stloc.s 34 (UnityEngine.Vector3)
IL_0383: ldloc.s 6 (System.Int32)
IL_0385: ldc.i4.m1
IL_0386: beq => Label44
IL_038B: ldarg.1
IL_038C: ldloc.s 6 (System.Int32)
IL_038E: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0393: stloc.s 35 (System.UInt16)
IL_0395: ldloc.0
IL_0396: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_039B: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_03A0: ldloc.s 35 (System.UInt16)
IL_03A2: ldelema NetSegment
IL_03A7: ldarg.0
IL_03A8: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_03AD: stloc.s 33 (UnityEngine.Vector3)
IL_03AF: ldloc.s 11 (System.Int32)
IL_03B1: ldloc.s 12 (System.Int32)
IL_03B3: and
IL_03B4: ldc.i4.1
IL_03B5: ldloc.s 6 (System.Int32)
IL_03B7: ldc.i4.s 31
IL_03B9: and
IL_03BA: shl
IL_03BB: and
IL_03BC: brfalse => Label45
IL_03C1: ldc.i4.0
IL_03C2: stloc.s 36 (System.Int32)
IL_03C4: br => Label46
IL_03C9: Label57
IL_03C9: ldloc.s 36 (System.Int32)
IL_03CB: ldloc.s 6 (System.Int32)
IL_03CD: beq => Label47
IL_03D2: ldloc.s 36 (System.Int32)
IL_03D4: ldloc.s 10 (System.Int32)
IL_03D6: beq => Label48
IL_03DB: ldloc.s 11 (System.Int32)
IL_03DD: ldloc.s 12 (System.Int32)
IL_03DF: and
IL_03E0: ldc.i4.1
IL_03E1: ldloc.s 36 (System.Int32)
IL_03E3: ldc.i4.s 31
IL_03E5: and
IL_03E6: shl
IL_03E7: and
IL_03E8: brfalse => Label49
IL_03ED: ldarg.1
IL_03EE: ldloc.s 36 (System.Int32)
IL_03F0: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_03F5: stloc.s 35 (System.UInt16)
IL_03F7: ldloc.s 35 (System.UInt16)
IL_03F9: brfalse => Label50
IL_03FE: ldloc.0
IL_03FF: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0404: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0409: ldloc.s 35 (System.UInt16)
IL_040B: ldelema NetSegment
IL_0410: ldarg.0
IL_0411: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0416: stloc.s 34 (UnityEngine.Vector3)
IL_0418: ldloc.s 10 (System.Int32)
IL_041A: ldc.i4.m1
IL_041B: beq => Label51
IL_0420: ldloca.s 34 (UnityEngine.Vector3)
IL_0422: ldfld System.Single UnityEngine.Vector3::x
IL_0427: ldloca.s 27 (UnityEngine.Vector3)
IL_0429: ldfld System.Single UnityEngine.Vector3::x
IL_042E: mul
IL_042F: ldloca.s 34 (UnityEngine.Vector3)
IL_0431: ldfld System.Single UnityEngine.Vector3::z
IL_0436: ldloca.s 27 (UnityEngine.Vector3)
IL_0438: ldfld System.Single UnityEngine.Vector3::z
IL_043D: mul
IL_043E: add
IL_043F: ldc.r4 -0.5
IL_0444: blt.un => Label52
IL_0449: Label51
IL_0449: ldloc.s 14 (System.Int32)
IL_044B: ldc.i4.2
IL_044C: bne.un => Label53
IL_0451: ldloc.s 36 (System.Int32)
IL_0453: stloc.s 32 (System.Int32)
IL_0455: br => Label54
IL_045A: Label53
IL_045A: ldloca.s 34 (UnityEngine.Vector3)
IL_045C: ldfld System.Single UnityEngine.Vector3::x
IL_0461: ldloca.s 33 (UnityEngine.Vector3)
IL_0463: ldfld System.Single UnityEngine.Vector3::x
IL_0468: mul
IL_0469: ldloca.s 34 (UnityEngine.Vector3)
IL_046B: ldfld System.Single UnityEngine.Vector3::z
IL_0470: ldloca.s 33 (UnityEngine.Vector3)
IL_0472: ldfld System.Single UnityEngine.Vector3::z
IL_0477: mul
IL_0478: add
IL_0479: ldc.r4 -0.9396926
IL_047E: bge.un => Label55
IL_0483: ldloc.s 36 (System.Int32)
IL_0485: stloc.s 32 (System.Int32)
IL_0487: br => Label56
IL_048C: Label47
IL_048C: Label48
IL_048C: Label49
IL_048C: Label50
IL_048C: Label52
IL_048C: Label55
IL_048C: ldloc.s 36 (System.Int32)
IL_048E: ldc.i4.1
IL_048F: add
IL_0490: stloc.s 36 (System.Int32)
IL_0492: Label46
IL_0492: ldloc.s 36 (System.Int32)
IL_0494: ldc.i4.8
IL_0495: blt => Label57
IL_049A: Label44
IL_049A: Label45
IL_049A: Label54
IL_049A: Label56
IL_049A: ldc.i4.0
IL_049B: stloc.s 37 (System.Int32)
IL_049D: br => Label58
IL_04A2: Label77
IL_04A2: ldarg.1
IL_04A3: ldloc.s 37 (System.Int32)
IL_04A5: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_04AA: stloc.s 38 (System.UInt16)
IL_04AC: ldloc.s 38 (System.UInt16)
IL_04AE: brfalse => Label59
IL_04B3: ldarg.0
IL_04B4: ldloc.0
IL_04B5: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_04BA: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_04BF: ldloc.s 38 (System.UInt16)
IL_04C1: ldelema NetSegment
IL_04C6: ldloc.1
IL_04C7: ldc.i4 256
IL_04CC: sub
IL_04CD: ldloca.s 39 (RoadBaseAI+TrafficLightState)
IL_04CF: ldloca.s 40 (RoadBaseAI+TrafficLightState)
IL_04D1: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_04D6: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_04D8: ldc.i4.s -2
IL_04DA: and
IL_04DB: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_04DD: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_04DF: ldc.i4.s -2
IL_04E1: and
IL_04E2: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_04E4: ldloc.s 6 (System.Int32)
IL_04E6: ldloc.s 37 (System.Int32)
IL_04E8: beq => Label60
IL_04ED: ldloc.s 32 (System.Int32)
IL_04EF: ldloc.s 37 (System.Int32)
IL_04F1: bne.un => Label61
IL_04F6: Label60
IL_04F6: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_04F8: ldc.i4.2
IL_04F9: and
IL_04FA: brfalse => Label62
IL_04FF: ldc.i4.1
IL_0500: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0502: ldc.i4.0
IL_0503: stloc.2
IL_0504: ldloc.3
IL_0505: ldc.i4.1
IL_0506: add
IL_0507: dup
IL_0508: stloc.3
IL_0509: ldloc.s 13 (System.Int32)
IL_050B: blt => Label63
IL_0510: ldc.i4.0
IL_0511: stloc.3
IL_0512: Label62
IL_0512: Label63
IL_0512: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0514: ldc.i4.2
IL_0515: and
IL_0516: brtrue => Label64
IL_051B: ldc.i4.3
IL_051C: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_051E: Label64
IL_051E: br => Label65
IL_0523: Label61
IL_0523: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0525: ldc.i4.2
IL_0526: and
IL_0527: brtrue => Label66
IL_052C: ldc.i4.3
IL_052D: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_052F: Label66
IL_052F: ldloc.0
IL_0530: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0535: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_053A: ldloc.s 38 (System.UInt16)
IL_053C: ldelema NetSegment
IL_0541: ldarg.0
IL_0542: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0547: stloc.s 41 (UnityEngine.Vector3)
IL_0549: ldloc.s 12 (System.Int32)
IL_054B: ldc.i4.1
IL_054C: ldloc.s 37 (System.Int32)
IL_054E: ldc.i4.s 31
IL_0550: and
IL_0551: shl
IL_0552: and
IL_0553: brfalse => Label67
IL_0558: ldloc.s 10 (System.Int32)
IL_055A: ldloc.s 37 (System.Int32)
IL_055C: beq => Label68
IL_0561: ldloc.s 6 (System.Int32)
IL_0563: ldc.i4.m1
IL_0564: beq => Label69
IL_0569: ldloca.s 41 (UnityEngine.Vector3)
IL_056B: ldfld System.Single UnityEngine.Vector3::x
IL_0570: ldloca.s 33 (UnityEngine.Vector3)
IL_0572: ldfld System.Single UnityEngine.Vector3::x
IL_0577: mul
IL_0578: ldloca.s 41 (UnityEngine.Vector3)
IL_057A: ldfld System.Single UnityEngine.Vector3::z
IL_057F: ldloca.s 33 (UnityEngine.Vector3)
IL_0581: ldfld System.Single UnityEngine.Vector3::z
IL_0586: mul
IL_0587: add
IL_0588: ldc.r4 -0.5
IL_058D: blt => Label70
IL_0592: Label69
IL_0592: ldloc.s 32 (System.Int32)
IL_0594: ldc.i4.m1
IL_0595: beq => Label71
IL_059A: ldloca.s 41 (UnityEngine.Vector3)
IL_059C: ldfld System.Single UnityEngine.Vector3::x
IL_05A1: ldloca.s 34 (UnityEngine.Vector3)
IL_05A3: ldfld System.Single UnityEngine.Vector3::x
IL_05A8: mul
IL_05A9: ldloca.s 41 (UnityEngine.Vector3)
IL_05AB: ldfld System.Single UnityEngine.Vector3::z
IL_05B0: ldloca.s 34 (UnityEngine.Vector3)
IL_05B2: ldfld System.Single UnityEngine.Vector3::z
IL_05B7: mul
IL_05B8: add
IL_05B9: ldc.r4 -0.5
IL_05BE: bge.un => Label72
IL_05C3: Label70
IL_05C3: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05C5: ldc.i4.2
IL_05C6: and
IL_05C7: brtrue => Label73
IL_05CC: ldc.i4.3
IL_05CD: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05CF: Label73
IL_05CF: br => Label74
IL_05D4: Label67
IL_05D4: Label68
IL_05D4: Label71
IL_05D4: Label72
IL_05D4: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05D6: ldc.i4.2
IL_05D7: and
IL_05D8: brfalse => Label75
IL_05DD: ldc.i4.1
IL_05DE: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05E0: ldloc.s 4 (System.Int32)
IL_05E2: ldc.i4.1
IL_05E3: add
IL_05E4: dup
IL_05E5: stloc.s 4 (System.Int32)
IL_05E7: ldloc.s 15 (System.Int32)
IL_05E9: blt => Label76
IL_05EE: ldc.i4.0
IL_05EF: stloc.s 4 (System.Int32)
IL_05F1: Label65
IL_05F1: Label74
IL_05F1: Label75
IL_05F1: Label76
IL_05F1: ldarg.0
IL_05F2: ldloc.0
IL_05F3: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_05F8: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_05FD: ldloc.s 38 (System.UInt16)
IL_05FF: ldelema NetSegment
IL_0604: ldloc.1
IL_0605: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0607: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0609: ldc.i4.0
IL_060A: ldc.i4.0
IL_060B: 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_0610: Label59
IL_0610: ldloc.s 37 (System.Int32)
IL_0612: ldc.i4.1
IL_0613: add
IL_0614: stloc.s 37 (System.Int32)
IL_0616: Label58
IL_0616: ldloc.s 37 (System.Int32)
IL_0618: ldc.i4.8
IL_0619: blt => Label77
IL_061E: ldarg.1
IL_061F: ldloc.s 4 (System.Int32)
IL_0621: ldc.i4.5
IL_0622: shl
IL_0623: ldloc.3
IL_0624: ldc.i4.2
IL_0625: shl
IL_0626: or
IL_0627: ldloc.2
IL_0628: or
IL_0629: conv.u1
IL_062A: stfld System.Byte NetNode::m_maxWaitTime
IL_062F: // end original
IL_062F: ret
DONE

### Patch: static System.Void RoadBaseAI::GetTrafficLightNodeState(System.UInt16


nodeID, NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData, Flags&
flags, UnityEngine.Color& color)
### Replacement: static System.Void
RoadBaseAI::GetTrafficLightNodeState_Patch0(System.UInt16 nodeID, NetNode&
nodeData, System.UInt16 segmentID, NetSegment& segmentData, Flags& 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: // start original
IL_0000: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0005: ldfld System.UInt32 SimulationManager::m_referenceFrameIndex
IL_000A: ldc.i4.s 15
IL_000C: sub
IL_000D: stloc.2
IL_000E: ldarg.0
IL_000F: ldc.i4.8
IL_0010: shl
IL_0011: ldc.i4 32768
IL_0016: div.un
IL_0017: stloc.3
IL_0018: ldloc.2
IL_0019: ldloc.3
IL_001A: sub
IL_001B: ldc.i4 255
IL_0020: and
IL_0021: stloc.s 4 (System.UInt32)
IL_0023: ldarg.0
IL_0024: ldarg.3
IL_0025: ldloc.2
IL_0026: ldloc.3
IL_0027: sub
IL_0028: ldloca.s 0 (RoadBaseAI+TrafficLightState)
IL_002A: ldloca.s 1 (RoadBaseAI+TrafficLightState)
IL_002C: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_0031: ldarg.s 5
IL_0033: ldc.r4 0.5
IL_0038: stfld System.Single UnityEngine.Color::a
IL_003D: ldloc.0
IL_003E: switch => Labels0,1,2,3
IL_0053: br => Label4
IL_0058: Label0
IL_0058: ldarg.s 5
IL_005A: ldc.r4 1
IL_005F: stfld System.Single UnityEngine.Color::g
IL_0064: br => Label5
IL_0069: Label1
IL_0069: ldloc.s 4 (System.UInt32)
IL_006B: ldc.i4.s 45
IL_006D: bge.un => Label6
IL_0072: ldarg.s 5
IL_0074: ldc.r4 0
IL_0079: stfld System.Single UnityEngine.Color::g
IL_007E: br => Label7
IL_0083: Label6
IL_0083: ldloc.s 4 (System.UInt32)
IL_0085: ldc.i4.s 60
IL_0087: bge.un => Label8
IL_008C: ldarg.s 5
IL_008E: ldc.r4 1
IL_0093: stfld System.Single UnityEngine.Color::r
IL_0098: br => Label9
IL_009D: Label8
IL_009D: ldarg.s 5
IL_009F: ldc.r4 1
IL_00A4: stfld System.Single UnityEngine.Color::g
IL_00A9: Label7
IL_00A9: Label9
IL_00A9: br => Label10
IL_00AE: Label2
IL_00AE: ldarg.s 5
IL_00B0: ldc.r4 0
IL_00B5: stfld System.Single UnityEngine.Color::g
IL_00BA: br => Label11
IL_00BF: Label3
IL_00BF: ldloc.s 4 (System.UInt32)
IL_00C1: ldc.i4.s 45
IL_00C3: bge.un => Label12
IL_00C8: ldarg.s 5
IL_00CA: ldc.r4 1
IL_00CF: stfld System.Single UnityEngine.Color::r
IL_00D4: br => Label13
IL_00D9: Label12
IL_00D9: ldarg.s 5
IL_00DB: ldc.r4 0
IL_00E0: stfld System.Single UnityEngine.Color::g
IL_00E5: Label13
IL_00E5: br => Label14
IL_00EA: Label4
IL_00EA: Label5
IL_00EA: Label10
IL_00EA: Label11
IL_00EA: Label14
IL_00EA: ldloc.1
IL_00EB: switch => Labels15,16,17,18
IL_0100: br => Label19
IL_0105: Label15
IL_0105: ldarg.s 5
IL_0107: ldc.r4 1
IL_010C: stfld System.Single UnityEngine.Color::b
IL_0111: br => Label20
IL_0116: Label16
IL_0116: ldloc.s 4 (System.UInt32)
IL_0118: ldc.i4.s 45
IL_011A: bge.un => Label21
IL_011F: ldarg.s 5
IL_0121: ldc.r4 0
IL_0126: stfld System.Single UnityEngine.Color::b
IL_012B: br => Label22
IL_0130: Label21
IL_0130: ldarg.s 5
IL_0132: ldc.r4 1
IL_0137: stfld System.Single UnityEngine.Color::b
IL_013C: Label22
IL_013C: br => Label23
IL_0141: Label17
IL_0141: ldarg.s 5
IL_0143: ldc.r4 0
IL_0148: stfld System.Single UnityEngine.Color::b
IL_014D: br => Label24
IL_0152: Label18
IL_0152: ldloc.s 4 (System.UInt32)
IL_0154: ldc.i4.s 45
IL_0156: bge.un => Label25
IL_015B: ldloc.s 4 (System.UInt32)
IL_015D: ldc.i4.8
IL_015E: div.un
IL_015F: ldc.i4.1
IL_0160: and
IL_0161: ldc.i4.1
IL_0162: bne.un => Label26
IL_0167: ldarg.s 5
IL_0169: ldc.r4 1
IL_016E: stfld System.Single UnityEngine.Color::b
IL_0173: Label26
IL_0173: br => Label27
IL_0178: Label25
IL_0178: ldarg.s 5
IL_017A: ldc.r4 0
IL_017F: stfld System.Single UnityEngine.Color::b
IL_0184: Label27
IL_0184: br => Label28
IL_0189: // end original
IL_0189: Label19
IL_0189: Label20
IL_0189: Label23
IL_0189: Label24
IL_0189: Label28
IL_0189: ret
DONE

### Patch: virtual System.Void RoadBaseAI::UpdateNode(System.UInt16 nodeID,


NetNode& data)
### Replacement: static System.Void RoadBaseAI::UpdateNode_Patch0(RoadBaseAI this,
System.UInt16 nodeID, NetNode& data)
IL_0000: Local var 0: Notification/Problem
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 Problem NetNode::m_problems
IL_000E: ldc.i8 72057602627866624
IL_0017: call static Problem Notification::RemoveProblems(Problem problems1,
Problem problems2)
IL_001C: stloc.0
IL_001D: ldc.i4.0
IL_001E: stloc.1
IL_001F: ldc.i4.0
IL_0020: stloc.2
IL_0021: ldarg.2
IL_0022: ldarg.1
IL_0023: ldc.i4.0
IL_0024: ldc.i4.s 33
IL_0026: ldc.i4.1
IL_0027: ldc.i4.1
IL_0028: ldloca.s 1 (System.Int32)
IL_002A: ldloca.s 2 (System.Int32)
IL_002C: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, LaneType laneTypes, VehicleType vehicleTypes,
System.Boolean onePerSegment, System.Int32& forward, System.Int32& backward)
IL_0031: ldarg.2
IL_0032: ldfld Flags NetNode::m_flags
IL_0037: ldc.i4 1024
IL_003C: and
IL_003D: brfalse => Label0
IL_0042: ldarg.2
IL_0043: ldfld System.UInt16 NetNode::m_building
IL_0048: brfalse => Label1
IL_004D: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0052: stloc.3
IL_0053: ldloc.1
IL_0054: brfalse => Label2
IL_0059: ldloc.3
IL_005A: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_005F: ldfld Building[] Array16`1<Building>::m_buffer
IL_0064: ldarg.2
IL_0065: ldfld System.UInt16 NetNode::m_building
IL_006A: ldelema Building
IL_006F: dup
IL_0070: ldfld Flags Building::m_flags
IL_0075: ldc.i4 128
IL_007A: or
IL_007B: stfld Flags Building::m_flags
IL_0080: br => Label3
IL_0085: Label2
IL_0085: ldloc.3
IL_0086: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008B: ldfld Building[] Array16`1<Building>::m_buffer
IL_0090: ldarg.2
IL_0091: ldfld System.UInt16 NetNode::m_building
IL_0096: ldelema Building
IL_009B: dup
IL_009C: ldfld Flags Building::m_flags
IL_00A1: ldc.i4 -129
IL_00A6: and
IL_00A7: stfld Flags Building::m_flags
IL_00AC: Label3
IL_00AC: ldloc.2
IL_00AD: brfalse => Label4
IL_00B2: ldloc.3
IL_00B3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00B8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00BD: ldarg.2
IL_00BE: ldfld System.UInt16 NetNode::m_building
IL_00C3: ldelema Building
IL_00C8: dup
IL_00C9: ldfld Flags Building::m_flags
IL_00CE: ldc.i4.s 64
IL_00D0: or
IL_00D1: stfld Flags Building::m_flags
IL_00D6: br => Label5
IL_00DB: Label4
IL_00DB: ldloc.3
IL_00DC: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00E1: ldfld Building[] Array16`1<Building>::m_buffer
IL_00E6: ldarg.2
IL_00E7: ldfld System.UInt16 NetNode::m_building
IL_00EC: ldelema Building
IL_00F1: dup
IL_00F2: ldfld Flags Building::m_flags
IL_00F7: ldc.i4.s -65
IL_00F9: and
IL_00FA: stfld Flags Building::m_flags
IL_00FF: Label5
IL_00FF: br => Label6
IL_0104: Label0
IL_0104: Label1
IL_0104: ldloc.1
IL_0105: brfalse => Label7
IL_010A: ldloc.2
IL_010B: brfalse => Label8
IL_0110: Label7
IL_0110: ldloc.1
IL_0111: brtrue => Label9
IL_0116: ldloc.2
IL_0117: brfalse => Label10
IL_011C: Label8
IL_011C: ldloc.0
IL_011D: ldc.i4 4096
IL_0122: conv.i8
IL_0123: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0128: stloc.0
IL_0129: Label6
IL_0129: Label9
IL_0129: Label10
IL_0129: ldloc.1
IL_012A: ldc.i4.1
IL_012B: bne.un => Label11
IL_0130: ldarg.2
IL_0131: dup
IL_0132: ldfld Flags NetNode::m_flags
IL_0137: ldc.i4 4194304
IL_013C: or
IL_013D: stfld Flags NetNode::m_flags
IL_0142: br => Label12
IL_0147: Label11
IL_0147: ldarg.2
IL_0148: dup
IL_0149: ldfld Flags NetNode::m_flags
IL_014E: ldc.i4 -4194305
IL_0153: and
IL_0154: stfld Flags NetNode::m_flags
IL_0159: Label12
IL_0159: ldloc.2
IL_015A: ldc.i4.1
IL_015B: bne.un => Label13
IL_0160: ldarg.2
IL_0161: dup
IL_0162: ldfld Flags NetNode::m_flags
IL_0167: ldc.i4 16777216
IL_016C: or
IL_016D: stfld Flags NetNode::m_flags
IL_0172: br => Label14
IL_0177: Label13
IL_0177: ldarg.2
IL_0178: dup
IL_0179: ldfld Flags NetNode::m_flags
IL_017E: ldc.i4 -16777217
IL_0183: and
IL_0184: stfld Flags NetNode::m_flags
IL_0189: Label14
IL_0189: ldarg.2
IL_018A: ldfld Flags NetNode::m_flags
IL_018F: ldc.i4 262144
IL_0194: and
IL_0195: brtrue => Label15
IL_019A: ldc.i4.0
IL_019B: stloc.s 4 (System.Int32)
IL_019D: ldc.i4.0
IL_019E: stloc.1
IL_019F: ldc.i4.0
IL_01A0: stloc.2
IL_01A1: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_01A6: stloc.s 5 (NetManager)
IL_01A8: ldc.i4.0
IL_01A9: stloc.s 6 (System.Int32)
IL_01AB: br => Label16
IL_01B0: Label24
IL_01B0: ldarg.2
IL_01B1: ldloc.s 6 (System.Int32)
IL_01B3: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_01B8: stloc.s 7 (System.UInt16)
IL_01BA: ldloc.s 7 (System.UInt16)
IL_01BC: brfalse => Label17
IL_01C1: ldc.i4.0
IL_01C2: stloc.s 8 (System.Int32)
IL_01C4: ldc.i4.0
IL_01C5: stloc.s 9 (System.Int32)
IL_01C7: ldloc.s 5 (NetManager)
IL_01C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01D3: ldloc.s 7 (System.UInt16)
IL_01D5: ldelema NetSegment
IL_01DA: ldloc.s 7 (System.UInt16)
IL_01DC: ldc.i4.s 33
IL_01DE: ldc.i4.s 64
IL_01E0: ldloca.s 8 (System.Int32)
IL_01E2: ldloca.s 9 (System.Int32)
IL_01E4: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_01E9: ldloc.s 8 (System.Int32)
IL_01EB: brtrue => Label18
IL_01F0: ldloc.s 9 (System.Int32)
IL_01F2: brfalse => Label19
IL_01F7: Label18
IL_01F7: ldloc.s 4 (System.Int32)
IL_01F9: ldc.i4.1
IL_01FA: add
IL_01FB: stloc.s 4 (System.Int32)
IL_01FD: ldloc.s 8 (System.Int32)
IL_01FF: brfalse => Label20
IL_0204: ldc.i4.1
IL_0205: stloc.s 8 (System.Int32)
IL_0207: Label20
IL_0207: ldloc.s 9 (System.Int32)
IL_0209: brfalse => Label21
IL_020E: ldc.i4.1
IL_020F: stloc.s 9 (System.Int32)
IL_0211: Label21
IL_0211: ldloc.s 5 (NetManager)
IL_0213: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0218: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_021D: ldloc.s 7 (System.UInt16)
IL_021F: ldelema NetSegment
IL_0224: ldfld System.UInt16 NetSegment::m_endNode
IL_0229: ldarg.1
IL_022A: bne.un => Label22
IL_022F: ldloc.1
IL_0230: ldloc.s 9 (System.Int32)
IL_0232: add
IL_0233: stloc.1
IL_0234: ldloc.2
IL_0235: ldloc.s 8 (System.Int32)
IL_0237: add
IL_0238: stloc.2
IL_0239: br => Label23
IL_023E: Label22
IL_023E: ldloc.1
IL_023F: ldloc.s 8 (System.Int32)
IL_0241: add
IL_0242: stloc.1
IL_0243: ldloc.2
IL_0244: ldloc.s 9 (System.Int32)
IL_0246: add
IL_0247: stloc.2
IL_0248: Label17
IL_0248: Label19
IL_0248: Label23
IL_0248: ldloc.s 6 (System.Int32)
IL_024A: ldc.i4.1
IL_024B: add
IL_024C: stloc.s 6 (System.Int32)
IL_024E: Label16
IL_024E: ldloc.s 6 (System.Int32)
IL_0250: ldc.i4.8
IL_0251: blt => Label24
IL_0256: ldloc.1
IL_0257: brfalse => Label25
IL_025C: ldloc.2
IL_025D: brfalse => Label26
IL_0262: Label25
IL_0262: ldloc.1
IL_0263: brtrue => Label27
IL_0268: ldloc.2
IL_0269: brtrue => Label28
IL_026E: Label27
IL_026E: ldloc.s 4 (System.Int32)
IL_0270: ldc.i4.1
IL_0271: bne.un => Label29
IL_0276: Label26
IL_0276: Label28
IL_0276: ldloc.0
IL_0277: ldc.i8 8589934592
IL_0280: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0285: stloc.0
IL_0286: Label29
IL_0286: ldc.i4.0
IL_0287: stloc.s 4 (System.Int32)
IL_0289: ldc.i4.0
IL_028A: stloc.1
IL_028B: ldc.i4.0
IL_028C: stloc.2
IL_028D: ldc.i4.0
IL_028E: stloc.s 10 (System.Int32)
IL_0290: br => Label30
IL_0295: Label38
IL_0295: ldarg.2
IL_0296: ldloc.s 10 (System.Int32)
IL_0298: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_029D: stloc.s 11 (System.UInt16)
IL_029F: ldloc.s 11 (System.UInt16)
IL_02A1: brfalse => Label31
IL_02A6: ldc.i4.0
IL_02A7: stloc.s 12 (System.Int32)
IL_02A9: ldc.i4.0
IL_02AA: stloc.s 13 (System.Int32)
IL_02AC: ldloc.s 5 (NetManager)
IL_02AE: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02B3: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02B8: ldloc.s 11 (System.UInt16)
IL_02BA: ldelema NetSegment
IL_02BF: ldloc.s 11 (System.UInt16)
IL_02C1: ldc.i4.s 33
IL_02C3: ldc.i4 65536
IL_02C8: ldloca.s 12 (System.Int32)
IL_02CA: ldloca.s 13 (System.Int32)
IL_02CC: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_02D1: ldloc.s 12 (System.Int32)
IL_02D3: brtrue => Label32
IL_02D8: ldloc.s 13 (System.Int32)
IL_02DA: brfalse => Label33
IL_02DF: Label32
IL_02DF: ldloc.s 4 (System.Int32)
IL_02E1: ldc.i4.1
IL_02E2: add
IL_02E3: stloc.s 4 (System.Int32)
IL_02E5: ldloc.s 12 (System.Int32)
IL_02E7: brfalse => Label34
IL_02EC: ldc.i4.1
IL_02ED: stloc.s 12 (System.Int32)
IL_02EF: Label34
IL_02EF: ldloc.s 13 (System.Int32)
IL_02F1: brfalse => Label35
IL_02F6: ldc.i4.1
IL_02F7: stloc.s 13 (System.Int32)
IL_02F9: Label35
IL_02F9: ldloc.s 5 (NetManager)
IL_02FB: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0300: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0305: ldloc.s 11 (System.UInt16)
IL_0307: ldelema NetSegment
IL_030C: ldfld System.UInt16 NetSegment::m_endNode
IL_0311: ldarg.1
IL_0312: bne.un => Label36
IL_0317: ldloc.1
IL_0318: ldloc.s 13 (System.Int32)
IL_031A: add
IL_031B: stloc.1
IL_031C: ldloc.2
IL_031D: ldloc.s 12 (System.Int32)
IL_031F: add
IL_0320: stloc.2
IL_0321: br => Label37
IL_0326: Label36
IL_0326: ldloc.1
IL_0327: ldloc.s 12 (System.Int32)
IL_0329: add
IL_032A: stloc.1
IL_032B: ldloc.2
IL_032C: ldloc.s 13 (System.Int32)
IL_032E: add
IL_032F: stloc.2
IL_0330: Label31
IL_0330: Label33
IL_0330: Label37
IL_0330: ldloc.s 10 (System.Int32)
IL_0332: ldc.i4.1
IL_0333: add
IL_0334: stloc.s 10 (System.Int32)
IL_0336: Label30
IL_0336: ldloc.s 10 (System.Int32)
IL_0338: ldc.i4.8
IL_0339: blt => Label38
IL_033E: ldloc.1
IL_033F: brfalse => Label39
IL_0344: ldloc.2
IL_0345: brfalse => Label40
IL_034A: Label39
IL_034A: ldloc.1
IL_034B: brtrue => Label41
IL_0350: ldloc.2
IL_0351: brtrue => Label42
IL_0356: Label41
IL_0356: ldloc.s 4 (System.Int32)
IL_0358: ldc.i4.1
IL_0359: bne.un => Label43
IL_035E: Label40
IL_035E: Label42
IL_035E: ldloc.0
IL_035F: ldc.i8 72057594037927936
IL_0368: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_036D: stloc.0
IL_036E: Label15
IL_036E: Label43
IL_036E: ldarg.2
IL_036F: ldloc.0
IL_0370: stfld Problem NetNode::m_problems
IL_0375: // end original
IL_0375: ret
DONE

### Patch: virtual System.Void RoadBaseAI::UpdateLanes(System.UInt16 segmentID,


NetSegment& data, System.Boolean loading)
### Replacement: static System.Void RoadBaseAI::UpdateLanes_Patch0(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<NetManager>::get_instance()
IL_0005: stloc.0
IL_0006: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::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<NetNode> NetManager::m_nodes
IL_0176: ldfld NetNode[] Array16`1<NetNode>::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: ldarg.2
IL_0192: ldfld UnityEngine.Vector3 NetSegment::m_endDirection
IL_0197: call static UnityEngine.Vector3
UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a)
IL_019C: ldloca.s 12 (System.Int32)
IL_019E: ldloca.s 13 (System.Int32)
IL_01A0: ldloca.s 14 (System.Int32)
IL_01A2: ldloca.s 15 (System.Int32)
IL_01A4: ldloca.s 16 (System.Int32)
IL_01A6: ldloca.s 17 (System.Int32)
IL_01A8: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, Direction directions, LaneType laneTypes, VehicleType
vehicleTypes, UnityEngine.Vector3 direction, System.Int32& left, System.Int32&
forward, System.Int32& right, System.Int32& left2, System.Int32& forward2,
System.Int32& right2)
IL_01AD: ldloc.0
IL_01AE: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_01B3: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_01B8: ldarg.2
IL_01B9: ldfld System.UInt16 NetSegment::m_endNode
IL_01BE: ldelema NetNode
IL_01C3: ldfld Flags NetNode::m_flags
IL_01C8: ldc.i4 1136
IL_01CD: and
IL_01CE: brfalse => Label2
IL_01D3: ldloc.s 12 (System.Int32)
IL_01D5: ldloc.s 13 (System.Int32)
IL_01D7: add
IL_01D8: ldloc.s 14 (System.Int32)
IL_01DA: add
IL_01DB: brtrue => Label3
IL_01E0: ldc.i4.1
IL_01E1: stloc.s 19 (System.Boolean)
IL_01E3: br => Label4
IL_01E8: Label3
IL_01E8: ldc.i4.1
IL_01E9: stloc.s 18 (System.Boolean)
IL_01EB: Label2
IL_01EB: Label4
IL_01EB: ldc.i4.0
IL_01EC: stloc.s 20 (System.Int32)
IL_01EE: ldc.i4.0
IL_01EF: stloc.s 21 (System.Int32)
IL_01F1: ldc.i4.0
IL_01F2: stloc.s 22 (System.Int32)
IL_01F4: ldc.i4.0
IL_01F5: stloc.s 23 (System.Int32)
IL_01F7: ldc.i4.0
IL_01F8: stloc.s 24 (System.Int32)
IL_01FA: ldc.i4.0
IL_01FB: stloc.s 25 (System.Int32)
IL_01FD: ldc.i4.0
IL_01FE: stloc.s 26 (System.Boolean)
IL_0200: ldc.i4.0
IL_0201: stloc.s 27 (System.Boolean)
IL_0203: ldloc.0
IL_0204: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0209: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_020E: ldarg.2
IL_020F: ldfld System.UInt16 NetSegment::m_startNode
IL_0214: ldelema NetNode
IL_0219: ldarg.2
IL_021A: ldfld System.UInt16 NetSegment::m_startNode
IL_021F: ldarg.1
IL_0220: ldc.i4.1
IL_0221: ldc.i4.s 33
IL_0223: ldc.i4.1
IL_0224: ldarg.2
IL_0225: ldfld UnityEngine.Vector3 NetSegment::m_startDirection
IL_022A: call static UnityEngine.Vector3
UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a)
IL_022F: ldloca.s 20 (System.Int32)
IL_0231: ldloca.s 21 (System.Int32)
IL_0233: ldloca.s 22 (System.Int32)
IL_0235: ldloca.s 23 (System.Int32)
IL_0237: ldloca.s 24 (System.Int32)
IL_0239: ldloca.s 25 (System.Int32)
IL_023B: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, Direction directions, LaneType laneTypes, VehicleType
vehicleTypes, UnityEngine.Vector3 direction, System.Int32& left, System.Int32&
forward, System.Int32& right, System.Int32& left2, System.Int32& forward2,
System.Int32& right2)
IL_0240: ldloc.0
IL_0241: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0246: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_024B: ldarg.2
IL_024C: ldfld System.UInt16 NetSegment::m_startNode
IL_0251: ldelema NetNode
IL_0256: ldfld Flags NetNode::m_flags
IL_025B: ldc.i4 1136
IL_0260: and
IL_0261: brfalse => Label5
IL_0266: ldloc.s 20 (System.Int32)
IL_0268: ldloc.s 21 (System.Int32)
IL_026A: add
IL_026B: ldloc.s 22 (System.Int32)
IL_026D: add
IL_026E: brtrue => Label6
IL_0273: ldc.i4.1
IL_0274: stloc.s 27 (System.Boolean)
IL_0276: br => Label7
IL_027B: Label6
IL_027B: ldc.i4.1
IL_027C: stloc.s 26 (System.Boolean)
IL_027E: Label5
IL_027E: Label7
IL_027E: ldc.i4.0
IL_027F: stloc.s 28 (NetLane+Flags)
IL_0281: ldloc.s 15 (System.Int32)
IL_0283: brfalse => Label8
IL_0288: ldloc.s 12 (System.Int32)
IL_028A: brtrue => Label9
IL_028F: ldloc.s 28 (NetLane+Flags)
IL_0291: ldarg.2
IL_0292: ldfld Flags NetSegment::m_flags
IL_0297: ldc.i4.s 16
IL_0299: and
IL_029A: brfalse => Label10
IL_029F: ldc.i4 4096
IL_02A4: br => Label11
IL_02A9: Label10
IL_02A9: ldc.i4 16384
IL_02AE: Label11
IL_02AE: or
IL_02AF: stloc.s 28 (NetLane+Flags)
IL_02B1: Label8
IL_02B1: Label9
IL_02B1: ldloc.s 17 (System.Int32)
IL_02B3: brfalse => Label12
IL_02B8: ldloc.s 14 (System.Int32)
IL_02BA: brtrue => Label13
IL_02BF: ldloc.s 28 (NetLane+Flags)
IL_02C1: ldarg.2
IL_02C2: ldfld Flags NetSegment::m_flags
IL_02C7: ldc.i4.s 16
IL_02C9: and
IL_02CA: brfalse => Label14
IL_02CF: ldc.i4 8192
IL_02D4: br => Label15
IL_02D9: Label14
IL_02D9: ldc.i4 32768
IL_02DE: Label15
IL_02DE: or
IL_02DF: stloc.s 28 (NetLane+Flags)
IL_02E1: Label12
IL_02E1: Label13
IL_02E1: ldloc.s 23 (System.Int32)
IL_02E3: brfalse => Label16
IL_02E8: ldloc.s 20 (System.Int32)
IL_02EA: brtrue => Label17
IL_02EF: ldloc.s 28 (NetLane+Flags)
IL_02F1: ldarg.2
IL_02F2: ldfld Flags NetSegment::m_flags
IL_02F7: ldc.i4.s 16
IL_02F9: and
IL_02FA: brfalse => Label18
IL_02FF: ldc.i4 16384
IL_0304: br => Label19
IL_0309: Label18
IL_0309: ldc.i4 4096
IL_030E: Label19
IL_030E: or
IL_030F: stloc.s 28 (NetLane+Flags)
IL_0311: Label16
IL_0311: Label17
IL_0311: ldloc.s 25 (System.Int32)
IL_0313: brfalse => Label20
IL_0318: ldloc.s 22 (System.Int32)
IL_031A: brtrue => Label21
IL_031F: ldloc.s 28 (NetLane+Flags)
IL_0321: ldarg.2
IL_0322: ldfld Flags NetSegment::m_flags
IL_0327: ldc.i4.s 16
IL_0329: and
IL_032A: brfalse => Label22
IL_032F: ldc.i4 32768
IL_0334: br => Label23
IL_0339: Label22
IL_0339: ldc.i4 8192
IL_033E: Label23
IL_033E: or
IL_033F: stloc.s 28 (NetLane+Flags)
IL_0341: Label20
IL_0341: Label21
IL_0341: ldarg.2
IL_0342: ldfld Flags NetSegment::m_flags
IL_0347: ldc.i4 1073741824
IL_034C: and
IL_034D: brfalse => Label24
IL_0352: ldloc.s 28 (NetLane+Flags)
IL_0354: ldarg.2
IL_0355: ldfld Flags NetSegment::m_flags
IL_035A: ldc.i4.s 16
IL_035C: and
IL_035D: brfalse => Label25
IL_0362: ldc.i4 2048
IL_0367: br => Label26
IL_036C: Label25
IL_036C: ldc.i4 1024
IL_0371: Label26
IL_0371: or
IL_0372: stloc.s 28 (NetLane+Flags)
IL_0374: Label24
IL_0374: ldarg.2
IL_0375: ldfld Flags NetSegment::m_flags
IL_037A: ldc.i4 -2147483648
IL_037F: and
IL_0380: brfalse => Label27
IL_0385: ldloc.s 28 (NetLane+Flags)
IL_0387: ldarg.2
IL_0388: ldfld Flags NetSegment::m_flags
IL_038D: ldc.i4.s 16
IL_038F: and
IL_0390: brfalse => Label28
IL_0395: ldc.i4 1024
IL_039A: br => Label29
IL_039F: Label28
IL_039F: ldc.i4 2048
IL_03A4: Label29
IL_03A4: or
IL_03A5: stloc.s 28 (NetLane+Flags)
IL_03A7: Label27
IL_03A7: ldc.r4 0
IL_03AC: stloc.s 29 (System.Single)
IL_03AE: ldc.r4 0
IL_03B3: stloc.s 30 (System.Single)
IL_03B5: ldc.i4.0
IL_03B6: stloc.s 31 (System.UInt32)
IL_03B8: ldarg.2
IL_03B9: ldfld System.UInt32 NetSegment::m_lanes
IL_03BE: stloc.s 32 (System.UInt32)
IL_03C0: ldc.i4.0
IL_03C1: stloc.s 33 (System.Int32)
IL_03C3: br => Label30
IL_03C8: Label89
IL_03C8: ldloc.s 32 (System.UInt32)
IL_03CA: brtrue => Label31
IL_03CF: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_03D4: ldloca.s 32 (System.UInt32)
IL_03D6: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_03DB: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_03E0: ldarg.1
IL_03E1: ldc.i4.1
IL_03E2: callvirt System.Boolean NetManager::CreateLanes(System.UInt32&
firstLane, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segment,
System.Int32 count)
IL_03E7: brfalse => Label32
IL_03EC: ldloc.s 31 (System.UInt32)
IL_03EE: brfalse => Label33
IL_03F3: ldloc.0
IL_03F4: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_03F9: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_03FE: ldloc.s 31 (System.UInt32)
IL_0400: conv.u
IL_0401: ldelema NetLane
IL_0406: ldloc.s 32 (System.UInt32)
IL_0408: stfld System.UInt32 NetLane::m_nextLane
IL_040D: br => Label34
IL_0412: Label33
IL_0412: ldarg.2
IL_0413: ldloc.s 32 (System.UInt32)
IL_0415: stfld System.UInt32 NetSegment::m_lanes
IL_041A: Label34
IL_041A: br => Label35
IL_041F: Label32
IL_041F: br => Label36
IL_0424: Label31
IL_0424: Label35
IL_0424: ldarg.0
IL_0425: ldfld NetInfo NetAI::m_info
IL_042A: ldfld Lane[] NetInfo::m_lanes
IL_042F: ldloc.s 33 (System.Int32)
IL_0431: ldelem.ref
IL_0432: stloc.s 34 (NetInfo+Lane)
IL_0434: ldloc.s 34 (NetInfo+Lane)
IL_0436: ldfld System.Single Lane::m_position
IL_043B: ldarg.0
IL_043C: ldfld NetInfo NetAI::m_info
IL_0441: ldfld System.Single NetInfo::m_halfWidth
IL_0446: ldc.r4 2
IL_044B: mul
IL_044C: div
IL_044D: ldc.r4 0.5
IL_0452: add
IL_0453: stloc.s 35 (System.Single)
IL_0455: ldarg.2
IL_0456: ldfld Flags NetSegment::m_flags
IL_045B: ldc.i4.s 16
IL_045D: and
IL_045E: brfalse => Label37
IL_0463: ldc.r4 1
IL_0468: ldloc.s 35 (System.Single)
IL_046A: sub
IL_046B: stloc.s 35 (System.Single)
IL_046D: Label37
IL_046D: ldloc.2
IL_046E: ldloc.3
IL_046F: ldloc.2
IL_0470: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0475: ldloc.s 35 (System.Single)
IL_0477: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_047C: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0481: stloc.s 36 (UnityEngine.Vector3)
IL_0483: ldloc.s 6 (UnityEngine.Vector3)
IL_0485: ldloc.s 7 (UnityEngine.Vector3)
IL_0487: ldloc.s 35 (System.Single)
IL_0489: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_048E: stloc.s 37 (UnityEngine.Vector3)
IL_0490: ldloc.s 4 (UnityEngine.Vector3)
IL_0492: ldloc.s 5 (UnityEngine.Vector3)
IL_0494: ldloc.s 4 (UnityEngine.Vector3)
IL_0496: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_049B: ldloc.s 35 (System.Single)
IL_049D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_04A2: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_04A7: stloc.s 38 (UnityEngine.Vector3)
IL_04A9: ldloc.s 8 (UnityEngine.Vector3)
IL_04AB: ldloc.s 9 (UnityEngine.Vector3)
IL_04AD: ldloc.s 35 (System.Single)
IL_04AF: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_04B4: stloc.s 39 (UnityEngine.Vector3)
IL_04B6: ldloca.s 36 (UnityEngine.Vector3)
IL_04B8: dup
IL_04B9: ldfld System.Single UnityEngine.Vector3::y
IL_04BE: ldloc.s 34 (NetInfo+Lane)
IL_04C0: ldfld System.Single Lane::m_verticalOffset
IL_04C5: add
IL_04C6: stfld System.Single UnityEngine.Vector3::y
IL_04CB: ldloca.s 38 (UnityEngine.Vector3)
IL_04CD: dup
IL_04CE: ldfld System.Single UnityEngine.Vector3::y
IL_04D3: ldloc.s 34 (NetInfo+Lane)
IL_04D5: ldfld System.Single Lane::m_verticalOffset
IL_04DA: add
IL_04DB: stfld System.Single UnityEngine.Vector3::y
IL_04E0: ldloc.s 36 (UnityEngine.Vector3)
IL_04E2: ldloc.s 37 (UnityEngine.Vector3)
IL_04E4: ldloc.s 38 (UnityEngine.Vector3)
IL_04E6: ldloc.s 39 (UnityEngine.Vector3)
IL_04E8: ldloc.s 10 (System.Boolean)
IL_04EA: ldloc.s 11 (System.Boolean)
IL_04EC: ldloca.s 40 (UnityEngine.Vector3)
IL_04EE: ldloca.s 41 (UnityEngine.Vector3)
IL_04F0: 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_04F5: ldloc.0
IL_04F6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_04FB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0500: ldloc.s 32 (System.UInt32)
IL_0502: conv.u
IL_0503: ldelema NetLane
IL_0508: ldfld System.UInt16 NetLane::m_flags
IL_050D: stloc.s 42 (NetLane+Flags)
IL_050F: ldloc.s 28 (NetLane+Flags)
IL_0511: stloc.s 43 (NetLane+Flags)
IL_0513: ldloc.s 42 (NetLane+Flags)
IL_0515: ldc.i4 -64753
IL_051A: and
IL_051B: stloc.s 42 (NetLane+Flags)
IL_051D: ldloc.s 34 (NetInfo+Lane)
IL_051F: ldfld Direction Lane::m_finalDirection
IL_0524: ldc.i4.3
IL_0525: and
IL_0526: conv.u1
IL_0527: ldc.i4.2
IL_0528: bne.un => Label38
IL_052D: ldloc.s 43 (NetLane+Flags)
IL_052F: ldc.i4 -2049
IL_0534: and
IL_0535: stloc.s 43 (NetLane+Flags)
IL_0537: Label38
IL_0537: ldloc.s 34 (NetInfo+Lane)
IL_0539: ldfld Direction Lane::m_finalDirection
IL_053E: ldc.i4.3
IL_053F: and
IL_0540: conv.u1
IL_0541: ldc.i4.1
IL_0542: bne.un => Label39
IL_0547: ldloc.s 43 (NetLane+Flags)
IL_0549: ldc.i4 -1025
IL_054E: and
IL_054F: stloc.s 43 (NetLane+Flags)
IL_0551: Label39
IL_0551: ldloc.s 34 (NetInfo+Lane)
IL_0553: ldfld VehicleType Lane::m_vehicleType
IL_0558: ldc.i4 2048
IL_055D: and
IL_055E: brfalse => Label40
IL_0563: ldloc.s 43 (NetLane+Flags)
IL_0565: ldc.i4 -3073
IL_056A: and
IL_056B: stloc.s 43 (NetLane+Flags)
IL_056D: Label40
IL_056D: ldloc.s 42 (NetLane+Flags)
IL_056F: ldloc.s 43 (NetLane+Flags)
IL_0571: or
IL_0572: stloc.s 42 (NetLane+Flags)
IL_0574: ldloc.1
IL_0575: brfalse => Label41
IL_057A: ldloc.s 42 (NetLane+Flags)
IL_057C: ldc.i4.4
IL_057D: or
IL_057E: stloc.s 42 (NetLane+Flags)
IL_0580: br => Label42
IL_0585: Label41
IL_0585: ldloc.s 42 (NetLane+Flags)
IL_0587: ldc.i4.s -5
IL_0589: and
IL_058A: stloc.s 42 (NetLane+Flags)
IL_058C: Label42
IL_058C: ldc.i4.0
IL_058D: stloc.s 44 (System.Int32)
IL_058F: ldc.i4 255
IL_0594: stloc.s 45 (System.Int32)
IL_0596: ldloc.s 34 (NetInfo+Lane)
IL_0598: ldfld LaneType Lane::m_laneType
IL_059D: ldc.i4.s 33
IL_059F: and
IL_05A0: conv.u1
IL_05A1: brfalse => Label43
IL_05A6: ldloc.s 34 (NetInfo+Lane)
IL_05A8: ldfld Direction Lane::m_finalDirection
IL_05AD: ldc.i4.1
IL_05AE: and
IL_05AF: conv.u1
IL_05B0: ldc.i4.0
IL_05B1: ceq
IL_05B3: ldc.i4.0
IL_05B4: ceq
IL_05B6: ldarg.2
IL_05B7: ldfld Flags NetSegment::m_flags
IL_05BC: ldc.i4.s 16
IL_05BE: and
IL_05BF: ldc.i4.0
IL_05C0: ceq
IL_05C2: ceq
IL_05C4: stloc.s 46 (System.Boolean)
IL_05C6: ldloc.s 46 (System.Boolean)
IL_05C8: brfalse => Label44
IL_05CD: ldloc.s 12 (System.Int32)
IL_05CF: stloc.s 47 (System.Int32)
IL_05D1: ldloc.s 13 (System.Int32)
IL_05D3: stloc.s 48 (System.Int32)
IL_05D5: ldloc.s 14 (System.Int32)
IL_05D7: stloc.s 49 (System.Int32)
IL_05D9: br => Label45
IL_05DE: Label44
IL_05DE: ldloc.s 20 (System.Int32)
IL_05E0: stloc.s 47 (System.Int32)
IL_05E2: ldloc.s 21 (System.Int32)
IL_05E4: stloc.s 48 (System.Int32)
IL_05E6: ldloc.s 22 (System.Int32)
IL_05E8: stloc.s 49 (System.Int32)
IL_05EA: Label45
IL_05EA: ldloc.s 34 (NetInfo+Lane)
IL_05EC: ldfld Direction Lane::m_finalDirection
IL_05F1: ldc.i4.1
IL_05F2: and
IL_05F3: conv.u1
IL_05F4: brfalse => Label46
IL_05F9: ldloc.s 34 (NetInfo+Lane)
IL_05FB: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0600: stloc.s 50 (System.Int32)
IL_0602: ldloc.s 34 (NetInfo+Lane)
IL_0604: ldfld System.Int32 Lane::m_similarLaneCount
IL_0609: ldloc.s 34 (NetInfo+Lane)
IL_060B: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0610: sub
IL_0611: ldc.i4.1
IL_0612: sub
IL_0613: stloc.s 51 (System.Int32)
IL_0615: br => Label47
IL_061A: Label46
IL_061A: ldloc.s 34 (NetInfo+Lane)
IL_061C: ldfld System.Int32 Lane::m_similarLaneCount
IL_0621: ldloc.s 34 (NetInfo+Lane)
IL_0623: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0628: sub
IL_0629: ldc.i4.1
IL_062A: sub
IL_062B: stloc.s 50 (System.Int32)
IL_062D: ldloc.s 34 (NetInfo+Lane)
IL_062F: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0634: stloc.s 51 (System.Int32)
IL_0636: Label47
IL_0636: ldloc.s 47 (System.Int32)
IL_0638: ldloc.s 48 (System.Int32)
IL_063A: add
IL_063B: ldloc.s 49 (System.Int32)
IL_063D: add
IL_063E: stloc.s 52 (System.Int32)
IL_0640: ldc.i4 255
IL_0645: stloc.s 44 (System.Int32)
IL_0647: ldc.i4.0
IL_0648: stloc.s 45 (System.Int32)
IL_064A: ldloc.s 52 (System.Int32)
IL_064C: brfalse => Label48
IL_0651: ldloc.s 34 (NetInfo+Lane)
IL_0653: ldfld System.Int32 Lane::m_similarLaneCount
IL_0658: ldloc.s 52 (System.Int32)
IL_065A: ble => Label49
IL_065F: ldloc.s 52 (System.Int32)
IL_0661: ldc.i4.0
IL_0662: ble => Label50
IL_0667: ldloc.s 52 (System.Int32)
IL_0669: ldloc.s 50 (System.Int32)
IL_066B: mul
IL_066C: ldloc.s 34 (NetInfo+Lane)
IL_066E: ldfld System.Int32 Lane::m_similarLaneCount
IL_0673: div
IL_0674: stloc.s 44 (System.Int32)
IL_0676: ldloc.s 52 (System.Int32)
IL_0678: ldloc.s 52 (System.Int32)
IL_067A: ldloc.s 51 (System.Int32)
IL_067C: mul
IL_067D: ldloc.s 34 (NetInfo+Lane)
IL_067F: ldfld System.Int32 Lane::m_similarLaneCount
IL_0684: div
IL_0685: sub
IL_0686: stloc.s 45 (System.Int32)
IL_0688: ldloc.s 42 (NetLane+Flags)
IL_068A: ldc.i4 128
IL_068F: or
IL_0690: stloc.s 42 (NetLane+Flags)
IL_0692: ldloc.s 44 (System.Int32)
IL_0694: ldloc.s 47 (System.Int32)
IL_0696: bge => Label51
IL_069B: ldloc.s 42 (NetLane+Flags)
IL_069D: ldc.i4.s 32
IL_069F: or
IL_06A0: stloc.s 42 (NetLane+Flags)
IL_06A2: Label51
IL_06A2: ldloc.s 52 (System.Int32)
IL_06A4: ldloc.s 45 (System.Int32)
IL_06A6: sub
IL_06A7: ldloc.s 49 (System.Int32)
IL_06A9: bge => Label52
IL_06AE: ldloc.s 42 (NetLane+Flags)
IL_06B0: ldc.i4.s 64
IL_06B2: or
IL_06B3: stloc.s 42 (NetLane+Flags)
IL_06B5: Label52
IL_06B5: ldloc.s 48 (System.Int32)
IL_06B7: brfalse => Label53
IL_06BC: ldloc.s 44 (System.Int32)
IL_06BE: ldloc.s 47 (System.Int32)
IL_06C0: ldloc.s 48 (System.Int32)
IL_06C2: add
IL_06C3: bge => Label54
IL_06C8: ldloc.s 45 (System.Int32)
IL_06CA: ldloc.s 47 (System.Int32)
IL_06CC: ble => Label55
IL_06D1: ldloc.s 42 (NetLane+Flags)
IL_06D3: ldc.i4.s 16
IL_06D5: or
IL_06D6: stloc.s 42 (NetLane+Flags)
IL_06D8: Label53
IL_06D8: Label54
IL_06D8: Label55
IL_06D8: br => Label56
IL_06DD: Label49
IL_06DD: Label50
IL_06DD: ldloc.s 34 (NetInfo+Lane)
IL_06DF: ldfld System.Int32 Lane::m_similarLaneCount
IL_06E4: ldloc.s 52 (System.Int32)
IL_06E6: blt => Label57
IL_06EB: ldloc.s 47 (System.Int32)
IL_06ED: stloc.s 53 (System.Int32)
IL_06EF: ldloc.s 49 (System.Int32)
IL_06F1: stloc.s 54 (System.Int32)
IL_06F3: br => Label58
IL_06F8: Label57
IL_06F8: ldloc.s 47 (System.Int32)
IL_06FA: ldloc.s 34 (NetInfo+Lane)
IL_06FC: ldfld System.Int32 Lane::m_similarLaneCount
IL_0701: mul
IL_0702: ldloc.s 52 (System.Int32)
IL_0704: ldloc.s 48 (System.Int32)
IL_0706: ldc.i4.1
IL_0707: shr
IL_0708: add
IL_0709: div
IL_070A: stloc.s 53 (System.Int32)
IL_070C: ldloc.s 49 (System.Int32)
IL_070E: ldloc.s 34 (NetInfo+Lane)
IL_0710: ldfld System.Int32 Lane::m_similarLaneCount
IL_0715: mul
IL_0716: ldloc.s 52 (System.Int32)
IL_0718: ldloc.s 48 (System.Int32)
IL_071A: ldc.i4.1
IL_071B: shr
IL_071C: add
IL_071D: div
IL_071E: stloc.s 54 (System.Int32)
IL_0720: Label58
IL_0720: ldloc.s 53 (System.Int32)
IL_0722: stloc.s 55 (System.Int32)
IL_0724: ldloc.s 34 (NetInfo+Lane)
IL_0726: ldfld System.Int32 Lane::m_similarLaneCount
IL_072B: ldloc.s 53 (System.Int32)
IL_072D: sub
IL_072E: ldloc.s 54 (System.Int32)
IL_0730: sub
IL_0731: stloc.s 56 (System.Int32)
IL_0733: ldloc.s 54 (System.Int32)
IL_0735: stloc.s 57 (System.Int32)
IL_0737: ldloc.s 56 (System.Int32)
IL_0739: ldc.i4.0
IL_073A: ble => Label59
IL_073F: ldloc.s 47 (System.Int32)
IL_0741: ldloc.s 53 (System.Int32)
IL_0743: ble => Label60
IL_0748: ldloc.s 55 (System.Int32)
IL_074A: ldc.i4.1
IL_074B: add
IL_074C: stloc.s 55 (System.Int32)
IL_074E: Label60
IL_074E: ldloc.s 49 (System.Int32)
IL_0750: ldloc.s 54 (System.Int32)
IL_0752: ble => Label61
IL_0757: ldloc.s 57 (System.Int32)
IL_0759: ldc.i4.1
IL_075A: add
IL_075B: stloc.s 57 (System.Int32)
IL_075D: Label59
IL_075D: Label61
IL_075D: ldloc.s 50 (System.Int32)
IL_075F: ldloc.s 55 (System.Int32)
IL_0761: bge => Label62
IL_0766: ldloc.s 50 (System.Int32)
IL_0768: ldloc.s 47 (System.Int32)
IL_076A: mul
IL_076B: ldloc.s 55 (System.Int32)
IL_076D: add
IL_076E: ldc.i4.1
IL_076F: sub
IL_0770: ldloc.s 55 (System.Int32)
IL_0772: div
IL_0773: stloc.s 58 (System.Int32)
IL_0775: ldloc.s 50 (System.Int32)
IL_0777: ldc.i4.1
IL_0778: add
IL_0779: ldloc.s 47 (System.Int32)
IL_077B: mul
IL_077C: ldloc.s 55 (System.Int32)
IL_077E: add
IL_077F: ldc.i4.1
IL_0780: sub
IL_0781: ldloc.s 55 (System.Int32)
IL_0783: div
IL_0784: stloc.s 59 (System.Int32)
IL_0786: ldloc.s 59 (System.Int32)
IL_0788: ldloc.s 58 (System.Int32)
IL_078A: ble => Label63
IL_078F: ldloc.s 42 (NetLane+Flags)
IL_0791: ldc.i4.s 32
IL_0793: or
IL_0794: stloc.s 42 (NetLane+Flags)
IL_0796: ldloc.s 44 (System.Int32)
IL_0798: ldloc.s 58 (System.Int32)
IL_079A: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_079F: stloc.s 44 (System.Int32)
IL_07A1: ldloc.s 45 (System.Int32)
IL_07A3: ldloc.s 59 (System.Int32)
IL_07A5: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_07AA: stloc.s 45 (System.Int32)
IL_07AC: Label62
IL_07AC: Label63
IL_07AC: ldloc.s 50 (System.Int32)
IL_07AE: ldloc.s 53 (System.Int32)
IL_07B0: blt => Label64
IL_07B5: ldloc.s 51 (System.Int32)
IL_07B7: ldloc.s 54 (System.Int32)
IL_07B9: blt => Label65
IL_07BE: ldloc.s 48 (System.Int32)
IL_07C0: brfalse => Label66
IL_07C5: ldloc.s 34 (NetInfo+Lane)
IL_07C7: ldfld System.Int32 Lane::m_similarLaneCount
IL_07CC: ldloc.s 52 (System.Int32)
IL_07CE: ble => Label67
IL_07D3: ldloc.s 53 (System.Int32)
IL_07D5: ldc.i4.1
IL_07D6: add
IL_07D7: stloc.s 53 (System.Int32)
IL_07D9: Label67
IL_07D9: ldloc.s 47 (System.Int32)
IL_07DB: ldloc.s 50 (System.Int32)
IL_07DD: ldloc.s 53 (System.Int32)
IL_07DF: sub
IL_07E0: ldloc.s 48 (System.Int32)
IL_07E2: mul
IL_07E3: ldloc.s 56 (System.Int32)
IL_07E5: add
IL_07E6: ldc.i4.1
IL_07E7: sub
IL_07E8: ldloc.s 56 (System.Int32)
IL_07EA: div
IL_07EB: add
IL_07EC: stloc.s 60 (System.Int32)
IL_07EE: ldloc.s 47 (System.Int32)
IL_07F0: ldloc.s 50 (System.Int32)
IL_07F2: ldc.i4.1
IL_07F3: add
IL_07F4: ldloc.s 53 (System.Int32)
IL_07F6: sub
IL_07F7: ldloc.s 48 (System.Int32)
IL_07F9: mul
IL_07FA: ldloc.s 56 (System.Int32)
IL_07FC: add
IL_07FD: ldc.i4.1
IL_07FE: sub
IL_07FF: ldloc.s 56 (System.Int32)
IL_0801: div
IL_0802: add
IL_0803: stloc.s 61 (System.Int32)
IL_0805: ldloc.s 61 (System.Int32)
IL_0807: ldloc.s 60 (System.Int32)
IL_0809: ble => Label68
IL_080E: ldloc.s 42 (NetLane+Flags)
IL_0810: ldc.i4.s 16
IL_0812: or
IL_0813: stloc.s 42 (NetLane+Flags)
IL_0815: ldloc.s 44 (System.Int32)
IL_0817: ldloc.s 60 (System.Int32)
IL_0819: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_081E: stloc.s 44 (System.Int32)
IL_0820: ldloc.s 45 (System.Int32)
IL_0822: ldloc.s 61 (System.Int32)
IL_0824: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0829: stloc.s 45 (System.Int32)
IL_082B: Label64
IL_082B: Label65
IL_082B: Label66
IL_082B: Label68
IL_082B: ldloc.s 51 (System.Int32)
IL_082D: ldloc.s 57 (System.Int32)
IL_082F: bge => Label69
IL_0834: ldloc.s 52 (System.Int32)
IL_0836: ldloc.s 51 (System.Int32)
IL_0838: ldc.i4.1
IL_0839: add
IL_083A: ldloc.s 49 (System.Int32)
IL_083C: mul
IL_083D: ldloc.s 57 (System.Int32)
IL_083F: add
IL_0840: ldc.i4.1
IL_0841: sub
IL_0842: ldloc.s 57 (System.Int32)
IL_0844: div
IL_0845: sub
IL_0846: stloc.s 62 (System.Int32)
IL_0848: ldloc.s 52 (System.Int32)
IL_084A: ldloc.s 51 (System.Int32)
IL_084C: ldloc.s 49 (System.Int32)
IL_084E: mul
IL_084F: ldloc.s 57 (System.Int32)
IL_0851: add
IL_0852: ldc.i4.1
IL_0853: sub
IL_0854: ldloc.s 57 (System.Int32)
IL_0856: div
IL_0857: sub
IL_0858: stloc.s 63 (System.Int32)
IL_085A: ldloc.s 63 (System.Int32)
IL_085C: ldloc.s 62 (System.Int32)
IL_085E: ble => Label70
IL_0863: ldloc.s 42 (NetLane+Flags)
IL_0865: ldc.i4.s 64
IL_0867: or
IL_0868: stloc.s 42 (NetLane+Flags)
IL_086A: ldloc.s 44 (System.Int32)
IL_086C: ldloc.s 62 (System.Int32)
IL_086E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0873: stloc.s 44 (System.Int32)
IL_0875: ldloc.s 45 (System.Int32)
IL_0877: ldloc.s 63 (System.Int32)
IL_0879: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_087E: stloc.s 45 (System.Int32)
IL_0880: Label69
IL_0880: Label70
IL_0880: ldarg.0
IL_0881: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_0886: brfalse => Label71
IL_088B: ldloc.s 42 (NetLane+Flags)
IL_088D: ldc.i4.s 96
IL_088F: and
IL_0890: ldc.i4.s 32
IL_0892: bne.un => Label72
IL_0897: ldloc.s 42 (NetLane+Flags)
IL_0899: ldc.i4.s 16
IL_089B: and
IL_089C: brfalse => Label73
IL_08A1: ldloc.s 48 (System.Int32)
IL_08A3: ldc.i4.2
IL_08A4: blt => Label74
IL_08A9: ldloc.s 47 (System.Int32)
IL_08AB: ldc.i4.1
IL_08AC: bne.un => Label75
IL_08B1: Label73
IL_08B1: ldloc.s 45 (System.Int32)
IL_08B3: ldloc.s 44 (System.Int32)
IL_08B5: ldc.i4.1
IL_08B6: add
IL_08B7: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_08BC: stloc.s 45 (System.Int32)
IL_08BE: Label74
IL_08BE: Label75
IL_08BE: br => Label76
IL_08C3: Label72
IL_08C3: ldloc.s 42 (NetLane+Flags)
IL_08C5: ldc.i4.s 96
IL_08C7: and
IL_08C8: ldc.i4.s 64
IL_08CA: bne.un => Label77
IL_08CF: ldloc.s 42 (NetLane+Flags)
IL_08D1: ldc.i4.s 16
IL_08D3: and
IL_08D4: brfalse => Label78
IL_08D9: ldloc.s 48 (System.Int32)
IL_08DB: ldc.i4.2
IL_08DC: blt => Label79
IL_08E1: ldloc.s 49 (System.Int32)
IL_08E3: ldc.i4.1
IL_08E4: bne.un => Label80
IL_08E9: Label78
IL_08E9: ldloc.s 44 (System.Int32)
IL_08EB: ldloc.s 45 (System.Int32)
IL_08ED: ldc.i4.1
IL_08EE: sub
IL_08EF: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_08F4: stloc.s 44 (System.Int32)
IL_08F6: Label48
IL_08F6: Label56
IL_08F6: Label71
IL_08F6: Label76
IL_08F6: Label77
IL_08F6: Label79
IL_08F6: Label80
IL_08F6: ldloc.s 46 (System.Boolean)
IL_08F8: brfalse => Label81
IL_08FD: ldloc.s 18 (System.Boolean)
IL_08FF: brfalse => Label82
IL_0904: ldloc.s 42 (NetLane+Flags)
IL_0906: ldc.i4.s -113
IL_0908: and
IL_0909: stloc.s 42 (NetLane+Flags)
IL_090B: br => Label83
IL_0910: Label82
IL_0910: ldloc.s 19 (System.Boolean)
IL_0912: brfalse => Label84
IL_0917: ldloc.s 42 (NetLane+Flags)
IL_0919: ldc.i4.s 16
IL_091B: or
IL_091C: stloc.s 42 (NetLane+Flags)
IL_091E: Label83
IL_091E: Label84
IL_091E: br => Label85
IL_0923: Label81
IL_0923: ldloc.s 26 (System.Boolean)
IL_0925: brfalse => Label86
IL_092A: ldloc.s 42 (NetLane+Flags)
IL_092C: ldc.i4.s -113
IL_092E: and
IL_092F: stloc.s 42 (NetLane+Flags)
IL_0931: br => Label87
IL_0936: Label86
IL_0936: ldloc.s 27 (System.Boolean)
IL_0938: brfalse => Label88
IL_093D: ldloc.s 42 (NetLane+Flags)
IL_093F: ldc.i4.s 16
IL_0941: or
IL_0942: stloc.s 42 (NetLane+Flags)
IL_0944: Label43
IL_0944: Label85
IL_0944: Label87
IL_0944: Label88
IL_0944: ldloc.0
IL_0945: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_094A: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_094F: ldloc.s 32 (System.UInt32)
IL_0951: conv.u
IL_0952: ldelema NetLane
IL_0957: ldloc.s 36 (UnityEngine.Vector3)
IL_0959: ldloc.s 40 (UnityEngine.Vector3)
IL_095B: ldloc.s 41 (UnityEngine.Vector3)
IL_095D: ldloc.s 38 (UnityEngine.Vector3)
IL_095F: newobj System.Void
ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3
_b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d)
IL_0964: stfld ColossalFramework.Math.Bezier3 NetLane::m_bezier
IL_0969: ldloc.0
IL_096A: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_096F: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0974: ldloc.s 32 (System.UInt32)
IL_0976: conv.u
IL_0977: ldelema NetLane
IL_097C: ldarg.1
IL_097D: stfld System.UInt16 NetLane::m_segment
IL_0982: ldloc.0
IL_0983: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0988: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_098D: ldloc.s 32 (System.UInt32)
IL_098F: conv.u
IL_0990: ldelema NetLane
IL_0995: ldloc.s 42 (NetLane+Flags)
IL_0997: conv.u2
IL_0998: stfld System.UInt16 NetLane::m_flags
IL_099D: ldloc.0
IL_099E: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09A3: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09A8: ldloc.s 32 (System.UInt32)
IL_09AA: conv.u
IL_09AB: ldelema NetLane
IL_09B0: ldloc.s 44 (System.Int32)
IL_09B2: conv.u1
IL_09B3: stfld System.Byte NetLane::m_firstTarget
IL_09B8: ldloc.0
IL_09B9: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09BE: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09C3: ldloc.s 32 (System.UInt32)
IL_09C5: conv.u
IL_09C6: ldelema NetLane
IL_09CB: ldloc.s 45 (System.Int32)
IL_09CD: conv.u1
IL_09CE: stfld System.Byte NetLane::m_lastTarget
IL_09D3: ldloc.s 29 (System.Single)
IL_09D5: ldloc.0
IL_09D6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09DB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09E0: ldloc.s 32 (System.UInt32)
IL_09E2: conv.u
IL_09E3: ldelema NetLane
IL_09E8: call System.Single NetLane::UpdateLength()
IL_09ED: add
IL_09EE: stloc.s 29 (System.Single)
IL_09F0: ldloc.s 30 (System.Single)
IL_09F2: ldc.r4 1
IL_09F7: add
IL_09F8: stloc.s 30 (System.Single)
IL_09FA: ldloc.s 32 (System.UInt32)
IL_09FC: stloc.s 31 (System.UInt32)
IL_09FE: ldloc.0
IL_09FF: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0A04: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0A09: ldloc.s 32 (System.UInt32)
IL_0A0B: conv.u
IL_0A0C: ldelema NetLane
IL_0A11: ldfld System.UInt32 NetLane::m_nextLane
IL_0A16: stloc.s 32 (System.UInt32)
IL_0A18: ldloc.s 33 (System.Int32)
IL_0A1A: ldc.i4.1
IL_0A1B: add
IL_0A1C: stloc.s 33 (System.Int32)
IL_0A1E: Label30
IL_0A1E: ldloc.s 33 (System.Int32)
IL_0A20: ldarg.0
IL_0A21: ldfld NetInfo NetAI::m_info
IL_0A26: ldfld Lane[] NetInfo::m_lanes
IL_0A2B: ldlen
IL_0A2C: conv.i4
IL_0A2D: blt => Label89
IL_0A32: Label36
IL_0A32: ldloc.s 30 (System.Single)
IL_0A34: ldc.r4 0
IL_0A39: beq => Label90
IL_0A3E: ldarg.2
IL_0A3F: ldloc.s 29 (System.Single)
IL_0A41: ldloc.s 30 (System.Single)
IL_0A43: div
IL_0A44: stfld System.Single NetSegment::m_averageLength
IL_0A49: br => Label91
IL_0A4E: Label90
IL_0A4E: ldarg.2
IL_0A4F: ldc.r4 0
IL_0A54: stfld System.Single NetSegment::m_averageLength
IL_0A59: Label91
IL_0A59: ldc.i4.0
IL_0A5A: stloc.s 64 (System.Boolean)
IL_0A5C: ldarg.2
IL_0A5D: ldfld System.Single NetSegment::m_averageLength
IL_0A62: ldc.r4 11
IL_0A67: bge.un => Label92
IL_0A6C: ldloc.0
IL_0A6D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0A72: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A77: ldarg.2
IL_0A78: ldfld System.UInt16 NetSegment::m_startNode
IL_0A7D: ldelema NetNode
IL_0A82: ldfld Flags NetNode::m_flags
IL_0A87: ldc.i4 128
IL_0A8C: and
IL_0A8D: brfalse => Label93
IL_0A92: ldloc.0
IL_0A93: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0A98: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A9D: ldarg.2
IL_0A9E: ldfld System.UInt16 NetSegment::m_endNode
IL_0AA3: ldelema NetNode
IL_0AA8: ldfld Flags NetNode::m_flags
IL_0AAD: ldc.i4 128
IL_0AB2: and
IL_0AB3: brfalse => Label94
IL_0AB8: ldc.i4.1
IL_0AB9: stloc.s 64 (System.Boolean)
IL_0ABB: Label92
IL_0ABB: Label93
IL_0ABB: Label94
IL_0ABB: ldarg.2
IL_0ABC: ldfld System.UInt32 NetSegment::m_lanes
IL_0AC1: stloc.s 32 (System.UInt32)
IL_0AC3: ldc.i4.0
IL_0AC4: stloc.s 65 (System.Int32)
IL_0AC6: br => Label95
IL_0ACB: Label98
IL_0ACB: ldloc.0
IL_0ACC: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0AD1: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0AD6: ldloc.s 32 (System.UInt32)
IL_0AD8: conv.u
IL_0AD9: ldelema NetLane
IL_0ADE: ldfld System.UInt16 NetLane::m_flags
IL_0AE3: ldc.i4.s -9
IL_0AE5: and
IL_0AE6: stloc.s 66 (NetLane+Flags)
IL_0AE8: ldloc.s 64 (System.Boolean)
IL_0AEA: brfalse => Label96
IL_0AEF: ldloc.s 66 (NetLane+Flags)
IL_0AF1: ldc.i4.8
IL_0AF2: or
IL_0AF3: stloc.s 66 (NetLane+Flags)
IL_0AF5: Label96
IL_0AF5: ldloc.0
IL_0AF6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0AFB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0B00: ldloc.s 32 (System.UInt32)
IL_0B02: conv.u
IL_0B03: ldelema NetLane
IL_0B08: ldloc.s 66 (NetLane+Flags)
IL_0B0A: conv.u2
IL_0B0B: stfld System.UInt16 NetLane::m_flags
IL_0B10: ldloc.0
IL_0B11: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0B16: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0B1B: ldloc.s 32 (System.UInt32)
IL_0B1D: conv.u
IL_0B1E: ldelema NetLane
IL_0B23: ldfld System.UInt32 NetLane::m_nextLane
IL_0B28: stloc.s 32 (System.UInt32)
IL_0B2A: ldloc.s 65 (System.Int32)
IL_0B2C: ldc.i4.1
IL_0B2D: add
IL_0B2E: stloc.s 65 (System.Int32)
IL_0B30: Label95
IL_0B30: ldloc.s 65 (System.Int32)
IL_0B32: ldarg.0
IL_0B33: ldfld NetInfo NetAI::m_info
IL_0B38: ldfld Lane[] NetInfo::m_lanes
IL_0B3D: ldlen
IL_0B3E: conv.i4
IL_0B3F: bge => Label97
IL_0B44: ldloc.s 32 (System.UInt32)
IL_0B46: brtrue => Label98
IL_0B4B: Label97
IL_0B4B: ldarg.3
IL_0B4C: brtrue => Label99
IL_0B51: ldarg.2
IL_0B52: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0B57: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0B5C: stloc.s 68 (UnityEngine.Vector3)
IL_0B5E: ldloca.s 68 (UnityEngine.Vector3)
IL_0B60: ldfld System.Single UnityEngine.Vector3::x
IL_0B65: ldc.r4 16
IL_0B6A: sub
IL_0B6B: ldc.r4 64
IL_0B70: div
IL_0B71: ldc.r4 135
IL_0B76: add
IL_0B77: conv.i4
IL_0B78: ldc.i4.0
IL_0B79: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0B7E: stloc.s 67 (System.Int32)
IL_0B80: ldarg.2
IL_0B81: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0B86: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0B8B: stloc.s 70 (UnityEngine.Vector3)
IL_0B8D: ldloca.s 70 (UnityEngine.Vector3)
IL_0B8F: ldfld System.Single UnityEngine.Vector3::z
IL_0B94: ldc.r4 16
IL_0B99: sub
IL_0B9A: ldc.r4 64
IL_0B9F: div
IL_0BA0: ldc.r4 135
IL_0BA5: add
IL_0BA6: conv.i4
IL_0BA7: ldc.i4.0
IL_0BA8: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0BAD: stloc.s 69 (System.Int32)
IL_0BAF: ldarg.2
IL_0BB0: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0BB5: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0BBA: stloc.s 72 (UnityEngine.Vector3)
IL_0BBC: ldloca.s 72 (UnityEngine.Vector3)
IL_0BBE: ldfld System.Single UnityEngine.Vector3::x
IL_0BC3: ldc.r4 16
IL_0BC8: add
IL_0BC9: ldc.r4 64
IL_0BCE: div
IL_0BCF: ldc.r4 135
IL_0BD4: add
IL_0BD5: conv.i4
IL_0BD6: ldc.i4 269
IL_0BDB: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0BE0: stloc.s 71 (System.Int32)
IL_0BE2: ldarg.2
IL_0BE3: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0BE8: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0BED: stloc.s 74 (UnityEngine.Vector3)
IL_0BEF: ldloca.s 74 (UnityEngine.Vector3)
IL_0BF1: ldfld System.Single UnityEngine.Vector3::z
IL_0BF6: ldc.r4 16
IL_0BFB: add
IL_0BFC: ldc.r4 64
IL_0C01: div
IL_0C02: ldc.r4 135
IL_0C07: add
IL_0C08: conv.i4
IL_0C09: ldc.i4 269
IL_0C0E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0C13: stloc.s 73 (System.Int32)
IL_0C15: ldloc.s 69 (System.Int32)
IL_0C17: stloc.s 75 (System.Int32)
IL_0C19: br => Label100
IL_0C1E: Label108
IL_0C1E: ldloc.s 67 (System.Int32)
IL_0C20: stloc.s 76 (System.Int32)
IL_0C22: br => Label101
IL_0C27: Label107
IL_0C27: ldloc.0
IL_0C28: ldfld System.UInt16[] NetManager::m_nodeGrid
IL_0C2D: ldloc.s 75 (System.Int32)
IL_0C2F: ldc.i4 270
IL_0C34: mul
IL_0C35: ldloc.s 76 (System.Int32)
IL_0C37: add
IL_0C38: ldelem.u2
IL_0C39: stloc.s 77 (System.UInt16)
IL_0C3B: ldc.i4.0
IL_0C3C: stloc.s 78 (System.Int32)
IL_0C3E: br => Label102
IL_0C43: Label106
IL_0C43: ldloc.0
IL_0C44: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0C49: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0C4E: ldloc.s 77 (System.UInt16)
IL_0C50: ldelema NetNode
IL_0C55: call NetInfo NetNode::get_Info()
IL_0C5A: stloc.s 79 (NetInfo)
IL_0C5C: ldloc.0
IL_0C5D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0C62: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0C67: ldloc.s 77 (System.UInt16)
IL_0C69: ldelema NetNode
IL_0C6E: ldfld UnityEngine.Vector3 NetNode::m_position
IL_0C73: stloc.s 80 (UnityEngine.Vector3)
IL_0C75: ldarg.2
IL_0C76: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0C7B: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0C80: stloc.s 82 (UnityEngine.Vector3)
IL_0C82: ldloca.s 82 (UnityEngine.Vector3)
IL_0C84: ldfld System.Single UnityEngine.Vector3::x
IL_0C89: ldc.r4 16
IL_0C8E: sub
IL_0C8F: ldloca.s 80 (UnityEngine.Vector3)
IL_0C91: ldfld System.Single UnityEngine.Vector3::x
IL_0C96: sub
IL_0C97: ldarg.2
IL_0C98: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0C9D: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0CA2: stloc.s 83 (UnityEngine.Vector3)
IL_0CA4: ldloca.s 83 (UnityEngine.Vector3)
IL_0CA6: ldfld System.Single UnityEngine.Vector3::z
IL_0CAB: ldc.r4 16
IL_0CB0: sub
IL_0CB1: ldloca.s 80 (UnityEngine.Vector3)
IL_0CB3: ldfld System.Single UnityEngine.Vector3::z
IL_0CB8: sub
IL_0CB9: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0CBE: ldloca.s 80 (UnityEngine.Vector3)
IL_0CC0: ldfld System.Single UnityEngine.Vector3::x
IL_0CC5: ldarg.2
IL_0CC6: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0CCB: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0CD0: stloc.s 84 (UnityEngine.Vector3)
IL_0CD2: ldloca.s 84 (UnityEngine.Vector3)
IL_0CD4: ldfld System.Single UnityEngine.Vector3::x
IL_0CD9: sub
IL_0CDA: ldc.r4 16
IL_0CDF: sub
IL_0CE0: ldloca.s 80 (UnityEngine.Vector3)
IL_0CE2: ldfld System.Single UnityEngine.Vector3::z
IL_0CE7: ldarg.2
IL_0CE8: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0CED: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0CF2: stloc.s 85 (UnityEngine.Vector3)
IL_0CF4: ldloca.s 85 (UnityEngine.Vector3)
IL_0CF6: ldfld System.Single UnityEngine.Vector3::z
IL_0CFB: sub
IL_0CFC: ldc.r4 16
IL_0D01: sub
IL_0D02: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0D07: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0D0C: stloc.s 81 (System.Single)
IL_0D0E: ldloc.s 81 (System.Single)
IL_0D10: ldc.r4 0
IL_0D15: bge.un => Label103
IL_0D1A: ldloc.s 79 (NetInfo)
IL_0D1C: ldfld NetAI NetInfo::m_netAI
IL_0D21: ldloc.s 77 (System.UInt16)
IL_0D23: ldloc.0
IL_0D24: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0D29: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0D2E: ldloc.s 77 (System.UInt16)
IL_0D30: ldelema NetNode
IL_0D35: callvirt virtual System.Void NetAI::NearbyLanesUpdated(System.UInt16
nodeID, NetNode& data)
IL_0D3A: Label103
IL_0D3A: ldloc.0
IL_0D3B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0D40: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0D45: ldloc.s 77 (System.UInt16)
IL_0D47: ldelema NetNode
IL_0D4C: ldfld System.UInt16 NetNode::m_nextGridNode
IL_0D51: stloc.s 77 (System.UInt16)
IL_0D53: ldloc.s 78 (System.Int32)
IL_0D55: ldc.i4.1
IL_0D56: add
IL_0D57: dup
IL_0D58: stloc.s 78 (System.Int32)
IL_0D5A: ldc.i4 32768
IL_0D5F: blt => Label104
IL_0D64: ldc.i4.1
IL_0D65: ldstr "Invalid list detected!\n"
IL_0D6A: call static System.String System.Environment::get_StackTrace()
IL_0D6F: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_0D74: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Error(LogChannel ll, System.String
msg)
IL_0D79: br => Label105
IL_0D7E: Label102
IL_0D7E: Label104
IL_0D7E: ldloc.s 77 (System.UInt16)
IL_0D80: brtrue => Label106
IL_0D85: Label105
IL_0D85: ldloc.s 76 (System.Int32)
IL_0D87: ldc.i4.1
IL_0D88: add
IL_0D89: stloc.s 76 (System.Int32)
IL_0D8B: Label101
IL_0D8B: ldloc.s 76 (System.Int32)
IL_0D8D: ldloc.s 71 (System.Int32)
IL_0D8F: ble => Label107
IL_0D94: ldloc.s 75 (System.Int32)
IL_0D96: ldc.i4.1
IL_0D97: add
IL_0D98: stloc.s 75 (System.Int32)
IL_0D9A: Label100
IL_0D9A: ldloc.s 75 (System.Int32)
IL_0D9C: ldloc.s 73 (System.Int32)
IL_0D9E: ble => Label108
IL_0DA3: ldarg.0
IL_0DA4: ldfld NetInfo NetAI::m_info
IL_0DA9: ldfld System.Boolean NetInfo::m_hasPedestrianLanes
IL_0DAE: brfalse => Label109
IL_0DB3: ldarg.0
IL_0DB4: ldfld NetInfo NetAI::m_info
IL_0DB9: ldfld System.Boolean NetInfo::m_hasForwardVehicleLanes
IL_0DBE: brtrue => Label110
IL_0DC3: ldarg.0
IL_0DC4: ldfld NetInfo NetAI::m_info
IL_0DC9: ldfld System.Boolean NetInfo::m_hasBackwardVehicleLanes
IL_0DCE: brfalse => Label111
IL_0DD3: Label110
IL_0DD3: ldarg.1
IL_0DD4: ldarg.2
IL_0DD5: call static System.Void RoadBaseAI::CheckBuildings(System.UInt16
segmentID, NetSegment& data)
IL_0DDA: // end original
IL_0DDA: Label99
IL_0DDA: Label109
IL_0DDA: Label111
IL_0DDA: 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::SetTrafficLightState_Patch0(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: // start original
IL_0000: ldarg.s 4
IL_0002: ldc.i4.2
IL_0003: shl
IL_0004: ldarg.3
IL_0005: or
IL_0006: stloc.0
IL_0007: ldarg.1
IL_0008: ldfld System.UInt16 NetSegment::m_startNode
IL_000D: ldarg.0
IL_000E: bne.un => Label0
IL_0013: ldarg.2
IL_0014: ldc.i4.8
IL_0015: shr.un
IL_0016: ldc.i4.1
IL_0017: and
IL_0018: brtrue => Label1
IL_001D: ldarg.1
IL_001E: ldarg.1
IL_001F: ldfld System.Byte NetSegment::m_trafficLightState0
IL_0024: ldc.i4 240
IL_0029: and
IL_002A: ldloc.0
IL_002B: or
IL_002C: conv.u1
IL_002D: stfld System.Byte NetSegment::m_trafficLightState0
IL_0032: br => Label2
IL_0037: Label1
IL_0037: ldarg.1
IL_0038: ldarg.1
IL_0039: ldfld System.Byte NetSegment::m_trafficLightState1
IL_003E: ldc.i4 240
IL_0043: and
IL_0044: ldloc.0
IL_0045: or
IL_0046: conv.u1
IL_0047: stfld System.Byte NetSegment::m_trafficLightState1
IL_004C: Label2
IL_004C: ldarg.s 5
IL_004E: brfalse => Label3
IL_0053: ldarg.1
IL_0054: dup
IL_0055: ldfld Flags NetSegment::m_flags
IL_005A: ldc.i4 4096
IL_005F: or
IL_0060: stfld Flags NetSegment::m_flags
IL_0065: br => Label4
IL_006A: Label3
IL_006A: ldarg.1
IL_006B: dup
IL_006C: ldfld Flags NetSegment::m_flags
IL_0071: ldc.i4 -4097
IL_0076: and
IL_0077: stfld Flags NetSegment::m_flags
IL_007C: Label4
IL_007C: ldarg.s 6
IL_007E: brfalse => Label5
IL_0083: ldarg.1
IL_0084: dup
IL_0085: ldfld Flags NetSegment::m_flags
IL_008A: ldc.i4 16384
IL_008F: or
IL_0090: stfld Flags NetSegment::m_flags
IL_0095: br => Label6
IL_009A: Label5
IL_009A: ldarg.1
IL_009B: dup
IL_009C: ldfld Flags NetSegment::m_flags
IL_00A1: ldc.i4 -16385
IL_00A6: and
IL_00A7: stfld Flags NetSegment::m_flags
IL_00AC: Label6
IL_00AC: br => Label7
IL_00B1: Label0
IL_00B1: ldarg.2
IL_00B2: ldc.i4.8
IL_00B3: shr.un
IL_00B4: ldc.i4.1
IL_00B5: and
IL_00B6: brtrue => Label8
IL_00BB: ldarg.1
IL_00BC: ldarg.1
IL_00BD: ldfld System.Byte NetSegment::m_trafficLightState0
IL_00C2: ldc.i4.s 15
IL_00C4: and
IL_00C5: ldloc.0
IL_00C6: ldc.i4.4
IL_00C7: shl
IL_00C8: or
IL_00C9: conv.u1
IL_00CA: stfld System.Byte NetSegment::m_trafficLightState0
IL_00CF: br => Label9
IL_00D4: Label8
IL_00D4: ldarg.1
IL_00D5: ldarg.1
IL_00D6: ldfld System.Byte NetSegment::m_trafficLightState1
IL_00DB: ldc.i4.s 15
IL_00DD: and
IL_00DE: ldloc.0
IL_00DF: ldc.i4.4
IL_00E0: shl
IL_00E1: or
IL_00E2: conv.u1
IL_00E3: stfld System.Byte NetSegment::m_trafficLightState1
IL_00E8: Label9
IL_00E8: ldarg.s 5
IL_00EA: brfalse => Label10
IL_00EF: ldarg.1
IL_00F0: dup
IL_00F1: ldfld Flags NetSegment::m_flags
IL_00F6: ldc.i4 8192
IL_00FB: or
IL_00FC: stfld Flags NetSegment::m_flags
IL_0101: br => Label11
IL_0106: Label10
IL_0106: ldarg.1
IL_0107: dup
IL_0108: ldfld Flags NetSegment::m_flags
IL_010D: ldc.i4 -8193
IL_0112: and
IL_0113: stfld Flags NetSegment::m_flags
IL_0118: Label11
IL_0118: ldarg.s 6
IL_011A: brfalse => Label12
IL_011F: ldarg.1
IL_0120: dup
IL_0121: ldfld Flags NetSegment::m_flags
IL_0126: ldc.i4 32768
IL_012B: or
IL_012C: stfld Flags NetSegment::m_flags
IL_0131: br => Label13
IL_0136: Label12
IL_0136: ldarg.1
IL_0137: dup
IL_0138: ldfld Flags NetSegment::m_flags
IL_013D: ldc.i4 -32769
IL_0142: and
IL_0143: stfld Flags NetSegment::m_flags
IL_0148: // end original
IL_0148: Label7
IL_0148: Label13
IL_0148: ret
DONE

### Patch: virtual System.Void RoadBaseAI::SimulationStep(System.UInt16 segmentID,


NetSegment& data)
### Replacement: static System.Void RoadBaseAI::SimulationStep_Patch0(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/Problem
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: // start original
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: ldarg.2
IL_0003: call virtual System.Void PlayerNetAI::SimulationStep(System.UInt16
segmentID, NetSegment& data)
IL_0008: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_000D: stloc.0
IL_000E: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0013: stloc.1
IL_0014: ldarg.2
IL_0015: ldfld Problem NetSegment::m_problems
IL_001A: ldc.i4 805306368
IL_001F: conv.i8
IL_0020: call static Problem Notification::RemoveProblems(Problem problems1,
Problem problems2)
IL_0025: stloc.2
IL_0026: ldarg.2
IL_0027: ldfld Flags NetSegment::m_flags
IL_002C: ldc.i4 2048
IL_0031: and
IL_0032: brfalse => Label0
IL_0037: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_003C: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0041: ldc.i4.s 16
IL_0043: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0048: brtrue => Label1
IL_004D: ldarg.2
IL_004E: dup
IL_004F: ldfld Flags NetSegment::m_flags
IL_0054: ldc.i4 -2049
IL_0059: and
IL_005A: stfld Flags NetSegment::m_flags
IL_005F: Label0
IL_005F: Label1
IL_005F: ldc.r4 0
IL_0064: stloc.3
IL_0065: ldarg.2
IL_0066: ldfld System.UInt32 NetSegment::m_lanes
IL_006B: stloc.s 4 (System.UInt32)
IL_006D: ldc.i4.0
IL_006E: stloc.s 5 (System.Int32)
IL_0070: br => Label2
IL_0075: Label6
IL_0075: ldarg.0
IL_0076: ldfld NetInfo NetAI::m_info
IL_007B: ldfld Lane[] NetInfo::m_lanes
IL_0080: ldloc.s 5 (System.Int32)
IL_0082: ldelem.ref
IL_0083: stloc.s 6 (NetInfo+Lane)
IL_0085: ldloc.s 6 (NetInfo+Lane)
IL_0087: ldfld LaneType Lane::m_laneType
IL_008C: ldc.i4.s 33
IL_008E: and
IL_008F: conv.u1
IL_0090: brfalse => Label3
IL_0095: ldloc.s 6 (NetInfo+Lane)
IL_0097: ldfld VehicleType Lane::m_vehicleType
IL_009C: ldc.i4.s -33
IL_009E: and
IL_009F: brfalse => Label4
IL_00A4: ldloc.3
IL_00A5: ldloc.1
IL_00A6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00AB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00B0: ldloc.s 4 (System.UInt32)
IL_00B2: conv.u
IL_00B3: ldelema NetLane
IL_00B8: ldfld System.Single NetLane::m_length
IL_00BD: add
IL_00BE: stloc.3
IL_00BF: Label3
IL_00BF: Label4
IL_00BF: ldloc.1
IL_00C0: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00C5: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00CA: ldloc.s 4 (System.UInt32)
IL_00CC: conv.u
IL_00CD: ldelema NetLane
IL_00D2: ldfld System.UInt32 NetLane::m_nextLane
IL_00D7: stloc.s 4 (System.UInt32)
IL_00D9: ldloc.s 5 (System.Int32)
IL_00DB: ldc.i4.1
IL_00DC: add
IL_00DD: stloc.s 5 (System.Int32)
IL_00DF: Label2
IL_00DF: ldloc.s 5 (System.Int32)
IL_00E1: ldarg.0
IL_00E2: ldfld NetInfo NetAI::m_info
IL_00E7: ldfld Lane[] NetInfo::m_lanes
IL_00EC: ldlen
IL_00ED: conv.i4
IL_00EE: bge => Label5
IL_00F3: ldloc.s 4 (System.UInt32)
IL_00F5: brtrue => Label6
IL_00FA: Label5
IL_00FA: ldc.i4.0
IL_00FB: stloc.s 7 (System.Int32)
IL_00FD: ldc.i4.0
IL_00FE: stloc.s 8 (System.Int32)
IL_0100: ldarg.2
IL_0101: ldfld System.UInt16 NetSegment::m_trafficBuffer
IL_0106: ldc.i4 65535
IL_010B: bne.un => Label7
IL_0110: ldarg.2
IL_0111: ldfld Flags NetSegment::m_flags
IL_0116: ldc.i4 2097152
IL_011B: and
IL_011C: brtrue => Label8
IL_0121: ldarg.2
IL_0122: dup
IL_0123: ldfld Flags NetSegment::m_flags
IL_0128: ldc.i4 2097152
IL_012D: or
IL_012E: stfld Flags NetSegment::m_flags
IL_0133: ldarg.2
IL_0134: ldloc.0
IL_0135: dup
IL_0136: ldfld System.UInt32 SimulationManager::m_currentBuildIndex
IL_013B: dup
IL_013C: stloc.s 9 (System.UInt32)
IL_013E: ldc.i4.1
IL_013F: add
IL_0140: stfld System.UInt32 SimulationManager::m_currentBuildIndex
IL_0145: ldloc.s 9 (System.UInt32)
IL_0147: stfld System.UInt32 NetSegment::m_modifiedIndex
IL_014C: Label8
IL_014C: br => Label9
IL_0151: Label7
IL_0151: ldarg.2
IL_0152: dup
IL_0153: ldfld Flags NetSegment::m_flags
IL_0158: ldc.i4 -2097153
IL_015D: and
IL_015E: stfld Flags NetSegment::m_flags
IL_0163: ldloc.3
IL_0164: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_0169: ldc.i4.4
IL_016A: shl
IL_016B: stloc.s 10 (System.Int32)
IL_016D: ldloc.s 10 (System.Int32)
IL_016F: brfalse => Label10
IL_0174: ldarg.2
IL_0175: ldfld System.UInt16 NetSegment::m_trafficBuffer
IL_017A: ldc.i4.s 100
IL_017C: mul
IL_017D: ldloc.s 10 (System.Int32)
IL_017F: div
IL_0180: ldc.i4.s 100
IL_0182: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0187: conv.u1
IL_0188: stloc.s 7 (System.Int32)
IL_018A: ldarg.2
IL_018B: ldfld System.UInt16 NetSegment::m_noiseBuffer
IL_0190: ldc.i4 250
IL_0195: mul
IL_0196: ldloc.s 10 (System.Int32)
IL_0198: div
IL_0199: ldc.i4.s 100
IL_019B: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01A0: conv.u1
IL_01A1: stloc.s 8 (System.Int32)
IL_01A3: Label9
IL_01A3: Label10
IL_01A3: ldarg.2
IL_01A4: ldc.i4.0
IL_01A5: stfld System.UInt16 NetSegment::m_trafficBuffer
IL_01AA: ldarg.2
IL_01AB: ldc.i4.0
IL_01AC: stfld System.UInt16 NetSegment::m_noiseBuffer
IL_01B1: ldloc.s 7 (System.Int32)
IL_01B3: ldarg.2
IL_01B4: ldfld System.Byte NetSegment::m_trafficDensity
IL_01B9: ble => Label11
IL_01BE: ldarg.2
IL_01BF: ldarg.2
IL_01C0: ldfld System.Byte NetSegment::m_trafficDensity
IL_01C5: ldc.i4.5
IL_01C6: add
IL_01C7: ldloc.s 7 (System.Int32)
IL_01C9: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01CE: conv.u1
IL_01CF: stfld System.Byte NetSegment::m_trafficDensity
IL_01D4: br => Label12
IL_01D9: Label11
IL_01D9: ldloc.s 7 (System.Int32)
IL_01DB: ldarg.2
IL_01DC: ldfld System.Byte NetSegment::m_trafficDensity
IL_01E1: bge => Label13
IL_01E6: ldarg.2
IL_01E7: ldarg.2
IL_01E8: ldfld System.Byte NetSegment::m_trafficDensity
IL_01ED: ldc.i4.5
IL_01EE: sub
IL_01EF: ldloc.s 7 (System.Int32)
IL_01F1: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_01F6: conv.u1
IL_01F7: stfld System.Byte NetSegment::m_trafficDensity
IL_01FC: Label12
IL_01FC: Label13
IL_01FC: ldloc.s 8 (System.Int32)
IL_01FE: ldarg.2
IL_01FF: ldfld System.Byte NetSegment::m_noiseDensity
IL_0204: ble => Label14
IL_0209: ldarg.2
IL_020A: ldarg.2
IL_020B: ldfld System.Byte NetSegment::m_noiseDensity
IL_0210: ldc.i4.2
IL_0211: add
IL_0212: ldloc.s 8 (System.Int32)
IL_0214: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0219: conv.u1
IL_021A: stfld System.Byte NetSegment::m_noiseDensity
IL_021F: br => Label15
IL_0224: Label14
IL_0224: ldloc.s 8 (System.Int32)
IL_0226: ldarg.2
IL_0227: ldfld System.Byte NetSegment::m_noiseDensity
IL_022C: bge => Label16
IL_0231: ldarg.2
IL_0232: ldarg.2
IL_0233: ldfld System.Byte NetSegment::m_noiseDensity
IL_0238: ldc.i4.2
IL_0239: sub
IL_023A: ldloc.s 8 (System.Int32)
IL_023C: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0241: conv.u1
IL_0242: stfld System.Byte NetSegment::m_noiseDensity
IL_0247: Label15
IL_0247: Label16
IL_0247: ldloc.1
IL_0248: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_024D: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0252: ldarg.2
IL_0253: ldfld System.UInt16 NetSegment::m_startNode
IL_0258: ldelema NetNode
IL_025D: ldfld UnityEngine.Vector3 NetNode::m_position
IL_0262: stloc.s 11 (UnityEngine.Vector3)
IL_0264: ldloc.1
IL_0265: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_026A: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_026F: ldarg.2
IL_0270: ldfld System.UInt16 NetSegment::m_endNode
IL_0275: ldelema NetNode
IL_027A: ldfld UnityEngine.Vector3 NetNode::m_position
IL_027F: stloc.s 12 (UnityEngine.Vector3)
IL_0281: ldloc.s 11 (UnityEngine.Vector3)
IL_0283: ldloc.s 12 (UnityEngine.Vector3)
IL_0285: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_028A: ldc.r4 0.5
IL_028F: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_0294: stloc.s 13 (UnityEngine.Vector3)
IL_0296: ldc.i4.0
IL_0297: stloc.s 14 (System.Boolean)
IL_0299: ldarg.0
IL_029A: ldfld NetInfo NetAI::m_info
IL_029F: ldfld Flags NetInfo::m_setVehicleFlags
IL_02A4: ldc.i4 268435456
IL_02A9: and
IL_02AA: brtrue => Label17
IL_02AF: call static TerrainManager
ColossalFramework.Singleton`1<TerrainManager>::get_instance()
IL_02B4: ldloc.s 13 (UnityEngine.Vector3)
IL_02B6: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_02BB: callvirt System.Single TerrainManager::WaterLevel(UnityEngine.Vector2
position)
IL_02C0: stloc.s 15 (System.Single)
IL_02C2: ldloc.s 15 (System.Single)
IL_02C4: ldloca.s 13 (UnityEngine.Vector3)
IL_02C6: ldfld System.Single UnityEngine.Vector3::y
IL_02CB: ldc.r4 1
IL_02D0: add
IL_02D1: ble.un => Label18
IL_02D6: ldloc.s 15 (System.Single)
IL_02D8: ldc.r4 0
IL_02DD: ble.un => Label19
IL_02E2: ldc.i4.1
IL_02E3: stloc.s 14 (System.Boolean)
IL_02E5: ldarg.2
IL_02E6: dup
IL_02E7: ldfld Flags NetSegment::m_flags
IL_02EC: ldc.i4 4194304
IL_02F1: or
IL_02F2: stfld Flags NetSegment::m_flags
IL_02F7: ldloc.2
IL_02F8: ldc.i8 4611686018695823360
IL_0301: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0306: stloc.2
IL_0307: ldarg.2
IL_0308: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_030D: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0312: stloc.s 16 (UnityEngine.Vector3)
IL_0314: ldarg.2
IL_0315: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_031A: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_031F: stloc.s 17 (UnityEngine.Vector3)
IL_0321: ldloca.s 16 (UnityEngine.Vector3)
IL_0323: ldfld System.Single UnityEngine.Vector3::x
IL_0328: ldloca.s 16 (UnityEngine.Vector3)
IL_032A: ldfld System.Single UnityEngine.Vector3::z
IL_032F: ldloca.s 17 (UnityEngine.Vector3)
IL_0331: ldfld System.Single UnityEngine.Vector3::x
IL_0336: ldloca.s 17 (UnityEngine.Vector3)
IL_0338: ldfld System.Single UnityEngine.Vector3::z
IL_033D: call static System.Void RoadBaseAI::FloodParkedCars(System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0342: br => Label20
IL_0347: Label18
IL_0347: Label19
IL_0347: ldarg.2
IL_0348: dup
IL_0349: ldfld Flags NetSegment::m_flags
IL_034E: ldc.i4 -4194305
IL_0353: and
IL_0354: stfld Flags NetSegment::m_flags
IL_0359: ldloc.s 15 (System.Single)
IL_035B: ldloca.s 13 (UnityEngine.Vector3)
IL_035D: ldfld System.Single UnityEngine.Vector3::y
IL_0362: ble.un => Label21
IL_0367: ldloc.s 15 (System.Single)
IL_0369: ldc.r4 0
IL_036E: ble.un => Label22
IL_0373: ldc.i4.1
IL_0374: stloc.s 14 (System.Boolean)
IL_0376: ldloc.2
IL_0377: ldc.i4 268435456
IL_037C: conv.i8
IL_037D: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0382: stloc.2
IL_0383: Label17
IL_0383: Label20
IL_0383: Label21
IL_0383: Label22
IL_0383: call static DistrictManager
ColossalFramework.Singleton`1<DistrictManager>::get_instance()
IL_0388: stloc.s 18 (DistrictManager)
IL_038A: ldloc.s 18 (DistrictManager)
IL_038C: ldloc.s 13 (UnityEngine.Vector3)
IL_038E: callvirt System.Byte DistrictManager::GetDistrict(UnityEngine.Vector3
worldPos)
IL_0393: stloc.s 19 (System.Byte)
IL_0395: ldloc.s 18 (DistrictManager)
IL_0397: ldfld Array8`1<District> DistrictManager::m_districts
IL_039C: ldfld District[] Array8`1<District>::m_buffer
IL_03A1: ldloc.s 19 (System.Byte)
IL_03A3: ldelema District
IL_03A8: ldfld CityPlanning District::m_cityPlanningPolicies
IL_03AD: stloc.s 20 (DistrictPolicies+CityPlanning)
IL_03AF: ldc.i4.s 100
IL_03B1: ldarg.2
IL_03B2: ldfld System.Byte NetSegment::m_noiseDensity
IL_03B7: ldc.i4.s 100
IL_03B9: sub
IL_03BA: ldarg.2
IL_03BB: ldfld System.Byte NetSegment::m_noiseDensity
IL_03C0: ldc.i4.s 100
IL_03C2: sub
IL_03C3: mul
IL_03C4: ldc.i4.s 100
IL_03C6: div
IL_03C7: sub
IL_03C8: stloc.s 21 (System.Int32)
IL_03CA: ldarg.0
IL_03CB: ldfld NetInfo NetAI::m_info
IL_03D0: ldfld VehicleType NetInfo::m_vehicleTypes
IL_03D5: ldc.i4.1
IL_03D6: and
IL_03D7: brfalse => Label23
IL_03DC: ldarg.0
IL_03DD: ldfld NetInfo NetAI::m_info
IL_03E2: ldfld Flags NetInfo::m_setVehicleFlags
IL_03E7: ldc.i4 268435456
IL_03EC: and
IL_03ED: brtrue => Label24
IL_03F2: ldloc.s 14 (System.Boolean)
IL_03F4: brfalse => Label25
IL_03F9: ldarg.2
IL_03FA: ldfld Flags NetSegment::m_flags
IL_03FF: ldc.i4 2099200
IL_0404: and
IL_0405: brtrue => Label26
IL_040A: ldloc.0
IL_040B: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0410: ldc.i4.s 10
IL_0412: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0417: brtrue => Label27
IL_041C: ldloca.s 22 (TransferManager+TransferOffer)
IL_041E: initobj TransferManager+TransferOffer
IL_0424: ldloca.s 22 (TransferManager+TransferOffer)
IL_0426: ldc.i4.4
IL_0427: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_042C: ldloca.s 22 (TransferManager+TransferOffer)
IL_042E: ldarg.1
IL_042F: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_0434: ldloca.s 22 (TransferManager+TransferOffer)
IL_0436: ldloc.s 13 (UnityEngine.Vector3)
IL_0438: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_043D: ldloca.s 22 (TransferManager+TransferOffer)
IL_043F: ldc.i4.1
IL_0440: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_0445: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_044A: ldc.i4.s 73
IL_044C: ldloc.s 22 (TransferManager+TransferOffer)
IL_044E: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason
material, TransferOffer offer)
IL_0453: Label25
IL_0453: Label26
IL_0453: Label27
IL_0453: ldarg.2
IL_0454: ldfld System.Byte NetSegment::m_wetness
IL_0459: stloc.s 23 (System.Int32)
IL_045B: ldloc.1
IL_045C: ldfld System.Boolean NetManager::m_treatWetAsSnow
IL_0461: brtrue => Label28
IL_0466: ldloc.s 14 (System.Boolean)
IL_0468: brfalse => Label29
IL_046D: ldc.i4 255
IL_0472: stloc.s 23 (System.Int32)
IL_0474: br => Label30
IL_0479: Label29
IL_0479: ldloc.s 23 (System.Int32)
IL_047B: ldc.i4.s 63
IL_047D: add
IL_047E: ldc.i4.5
IL_047F: shr
IL_0480: neg
IL_0481: stloc.s 24 (System.Int32)
IL_0483: call static WeatherManager
ColossalFramework.Singleton`1<WeatherManager>::get_instance()
IL_0488: ldloc.s 13 (UnityEngine.Vector3)
IL_048A: ldc.i4.0
IL_048B: callvirt System.Single
WeatherManager::SampleRainIntensity(UnityEngine.Vector3 pos, System.Boolean
ignoreWeather)
IL_0490: stloc.s 25 (System.Single)
IL_0492: ldloc.s 25 (System.Single)
IL_0494: ldc.r4 0
IL_0499: beq => Label31
IL_049E: ldloc.s 25 (System.Single)
IL_04A0: ldc.r4 4000
IL_04A5: mul
IL_04A6: ldc.r4 1000
IL_04AB: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_04B0: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_04B5: stloc.s 26 (System.Int32)
IL_04B7: ldloc.s 24 (System.Int32)
IL_04B9: ldloc.0
IL_04BA: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_04BF: ldloc.s 26 (System.Int32)
IL_04C1: ldloc.s 26 (System.Int32)
IL_04C3: ldc.i4.s 99
IL_04C5: add
IL_04C6: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_04CB: ldc.i4.s 100
IL_04CD: div
IL_04CE: add
IL_04CF: stloc.s 24 (System.Int32)
IL_04D1: Label31
IL_04D1: ldloc.s 23 (System.Int32)
IL_04D3: ldloc.s 24 (System.Int32)
IL_04D5: add
IL_04D6: ldc.i4.0
IL_04D7: ldc.i4 255
IL_04DC: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_04E1: stloc.s 23 (System.Int32)
IL_04E3: Label30
IL_04E3: br => Label32
IL_04E8: Label28
IL_04E8: ldarg.0
IL_04E9: ldfld System.Boolean RoadBaseAI::m_accumulateSnow
IL_04EE: brfalse => Label33
IL_04F3: ldloc.s 14 (System.Boolean)
IL_04F5: brfalse => Label34
IL_04FA: ldc.i4 128
IL_04FF: stloc.s 23 (System.Int32)
IL_0501: br => Label35
IL_0506: Label34
IL_0506: call static WeatherManager
ColossalFramework.Singleton`1<WeatherManager>::get_instance()
IL_050B: ldloc.s 13 (UnityEngine.Vector3)
IL_050D: ldc.i4.0
IL_050E: callvirt System.Single
WeatherManager::SampleRainIntensity(UnityEngine.Vector3 pos, System.Boolean
ignoreWeather)
IL_0513: stloc.s 27 (System.Single)
IL_0515: ldloc.s 27 (System.Single)
IL_0517: ldc.r4 0
IL_051C: beq => Label36
IL_0521: ldloc.s 27 (System.Single)
IL_0523: ldc.r4 400
IL_0528: mul
IL_0529: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_052E: stloc.s 28 (System.Int32)
IL_0530: ldloc.0
IL_0531: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0536: ldloc.s 28 (System.Int32)
IL_0538: ldloc.s 28 (System.Int32)
IL_053A: ldc.i4.s 99
IL_053C: add
IL_053D: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_0542: ldc.i4.s 100
IL_0544: div
IL_0545: stloc.s 29 (System.Int32)
IL_0547: call static UnlockManager
ColossalFramework.Singleton`1<UnlockManager>::get_instance()
IL_054C: ldc.i4.s 24
IL_054E: callvirt System.Boolean UnlockManager::Unlocked(Feature feature)
IL_0553: brfalse => Label37
IL_0558: ldloc.s 23 (System.Int32)
IL_055A: ldloc.s 29 (System.Int32)
IL_055C: add
IL_055D: ldc.i4 255
IL_0562: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0567: stloc.s 23 (System.Int32)
IL_0569: br => Label38
IL_056E: Label37
IL_056E: ldloc.s 23 (System.Int32)
IL_0570: ldloc.s 29 (System.Int32)
IL_0572: add
IL_0573: ldc.i4 128
IL_0578: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_057D: stloc.s 23 (System.Int32)
IL_057F: Label38
IL_057F: br => Label39
IL_0584: Label36
IL_0584: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0589: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_058E: ldc.i4.4
IL_058F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0594: brtrue => Label40
IL_0599: ldloc.s 23 (System.Int32)
IL_059B: ldc.i4.1
IL_059C: sub
IL_059D: ldc.i4.0
IL_059E: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_05A3: stloc.s 23 (System.Int32)
IL_05A5: Label39
IL_05A5: Label40
IL_05A5: ldloc.s 23 (System.Int32)
IL_05A7: ldc.i4.s 64
IL_05A9: blt => Label41
IL_05AE: ldarg.2
IL_05AF: ldfld Flags NetSegment::m_flags
IL_05B4: ldc.i4 6293504
IL_05B9: and
IL_05BA: brtrue => Label42
IL_05BF: ldloc.0
IL_05C0: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_05C5: ldc.i4.s 10
IL_05C7: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_05CC: brtrue => Label43
IL_05D1: ldloca.s 30 (TransferManager+TransferOffer)
IL_05D3: initobj TransferManager+TransferOffer
IL_05D9: ldloca.s 30 (TransferManager+TransferOffer)
IL_05DB: ldloc.s 23 (System.Int32)
IL_05DD: ldc.i4.s 50
IL_05DF: div
IL_05E0: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_05E5: ldloca.s 30 (TransferManager+TransferOffer)
IL_05E7: ldarg.1
IL_05E8: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_05ED: ldloca.s 30 (TransferManager+TransferOffer)
IL_05EF: ldloc.s 13 (UnityEngine.Vector3)
IL_05F1: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_05F6: ldloca.s 30 (TransferManager+TransferOffer)
IL_05F8: ldc.i4.1
IL_05F9: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_05FE: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_0603: ldc.i4.s 64
IL_0605: ldloc.s 30 (TransferManager+TransferOffer)
IL_0607: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason
material, TransferOffer offer)
IL_060C: Label41
IL_060C: Label42
IL_060C: Label43
IL_060C: ldloc.s 23 (System.Int32)
IL_060E: ldc.i4 192
IL_0613: blt => Label44
IL_0618: ldloc.2
IL_0619: ldc.i4 536870912
IL_061E: conv.i8
IL_061F: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0624: stloc.2
IL_0625: Label44
IL_0625: ldloc.s 18 (DistrictManager)
IL_0627: ldfld Array8`1<District> DistrictManager::m_districts
IL_062C: ldfld District[] Array8`1<District>::m_buffer
IL_0631: ldloc.s 19 (System.Byte)
IL_0633: ldelema District
IL_0638: ldflda DistrictProductionData District::m_productionData
IL_063D: dup
IL_063E: ldfld System.UInt32 DistrictProductionData::m_tempSnowCover
IL_0643: ldloc.s 23 (System.Int32)
IL_0645: add
IL_0646: stfld System.UInt32 DistrictProductionData::m_tempSnowCover
IL_064B: Label32
IL_064B: Label33
IL_064B: Label35
IL_064B: ldloc.s 23 (System.Int32)
IL_064D: ldarg.2
IL_064E: ldfld System.Byte NetSegment::m_wetness
IL_0653: beq => Label45
IL_0658: ldarg.2
IL_0659: ldfld System.Byte NetSegment::m_wetness
IL_065E: ldloc.s 23 (System.Int32)
IL_0660: sub
IL_0661: call static System.Int32 UnityEngine.Mathf::Abs(System.Int32 value)
IL_0666: ldc.i4.s 10
IL_0668: ble => Label46
IL_066D: ldarg.2
IL_066E: ldloc.s 23 (System.Int32)
IL_0670: conv.u1
IL_0671: stfld System.Byte NetSegment::m_wetness
IL_0676: ldsfld InstanceID InstanceID::Empty
IL_067B: stloc.s 31 (InstanceID)
IL_067D: ldloca.s 31 (InstanceID)
IL_067F: ldarg.1
IL_0680: call System.Void InstanceID::set_NetSegment(System.UInt16 value)
IL_0685: ldloc.1
IL_0686: ldloc.s 31 (InstanceID)
IL_0688: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_068D: ldloca.s 31 (InstanceID)
IL_068F: ldarg.2
IL_0690: ldfld System.UInt16 NetSegment::m_startNode
IL_0695: call System.Void InstanceID::set_NetNode(System.UInt16 value)
IL_069A: ldloc.1
IL_069B: ldloc.s 31 (InstanceID)
IL_069D: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06A2: ldloca.s 31 (InstanceID)
IL_06A4: ldarg.2
IL_06A5: ldfld System.UInt16 NetSegment::m_endNode
IL_06AA: call System.Void InstanceID::set_NetNode(System.UInt16 value)
IL_06AF: ldloc.1
IL_06B0: ldloc.s 31 (InstanceID)
IL_06B2: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06B7: br => Label47
IL_06BC: Label46
IL_06BC: ldarg.2
IL_06BD: ldloc.s 23 (System.Int32)
IL_06BF: conv.u1
IL_06C0: stfld System.Byte NetSegment::m_wetness
IL_06C5: ldloc.1
IL_06C6: ldc.i4 256
IL_06CB: stfld System.Int32 NetManager::m_wetnessChanged
IL_06D0: Label24
IL_06D0: Label45
IL_06D0: Label47
IL_06D0: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_06D2: ldc.i4 1024
IL_06D7: and
IL_06D8: brfalse => Label48
IL_06DD: ldloc.s 21 (System.Int32)
IL_06DF: ldc.i4.3
IL_06E0: mul
IL_06E1: ldc.i4.1
IL_06E2: add
IL_06E3: ldc.i4.1
IL_06E4: shr
IL_06E5: stloc.s 21 (System.Int32)
IL_06E7: ldc.i4 700
IL_06EC: ldc.i4.s 50
IL_06EE: ldarg.2
IL_06EF: ldfld System.Byte NetSegment::m_trafficDensity
IL_06F4: ldc.i4.6
IL_06F5: mul
IL_06F6: add
IL_06F7: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_06FC: stloc.s 32 (System.Int32)
IL_06FE: br => Label49
IL_0703: Label48
IL_0703: ldc.i4 500
IL_0708: ldc.i4.s 50
IL_070A: ldarg.2
IL_070B: ldfld System.Byte NetSegment::m_trafficDensity
IL_0710: ldc.i4.4
IL_0711: mul
IL_0712: add
IL_0713: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0718: stloc.s 32 (System.Int32)
IL_071A: Label49
IL_071A: ldarg.0
IL_071B: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_0720: brtrue => Label50
IL_0725: ldloc.0
IL_0726: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_072B: ldloc.s 32 (System.Int32)
IL_072D: ldloc.s 32 (System.Int32)
IL_072F: ldc.i4.s 99
IL_0731: add
IL_0732: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_0737: ldc.i4.s 100
IL_0739: div
IL_073A: stloc.s 33 (System.Int32)
IL_073C: ldarg.2
IL_073D: ldarg.2
IL_073E: ldfld System.Byte NetSegment::m_condition
IL_0743: ldloc.s 33 (System.Int32)
IL_0745: sub
IL_0746: ldc.i4.0
IL_0747: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_074C: conv.u1
IL_074D: stfld System.Byte NetSegment::m_condition
IL_0752: ldarg.2
IL_0753: ldfld System.Byte NetSegment::m_condition
IL_0758: ldc.i4 192
IL_075D: bge => Label51
IL_0762: ldarg.2
IL_0763: ldfld Flags NetSegment::m_flags
IL_0768: ldc.i4 6293504
IL_076D: and
IL_076E: brtrue => Label52
IL_0773: ldloc.0
IL_0774: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0779: ldc.i4.s 20
IL_077B: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0780: brtrue => Label53
IL_0785: ldloca.s 34 (TransferManager+TransferOffer)
IL_0787: initobj TransferManager+TransferOffer
IL_078D: ldloca.s 34 (TransferManager+TransferOffer)
IL_078F: ldc.i4 255
IL_0794: ldarg.2
IL_0795: ldfld System.Byte NetSegment::m_condition
IL_079A: sub
IL_079B: ldc.i4.s 50
IL_079D: div
IL_079E: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_07A3: ldloca.s 34 (TransferManager+TransferOffer)
IL_07A5: ldarg.1
IL_07A6: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_07AB: ldloca.s 34 (TransferManager+TransferOffer)
IL_07AD: ldloc.s 13 (UnityEngine.Vector3)
IL_07AF: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_07B4: ldloca.s 34 (TransferManager+TransferOffer)
IL_07B6: ldc.i4.1
IL_07B7: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_07BC: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_07C1: ldc.i4.s 66
IL_07C3: ldloc.s 34 (TransferManager+TransferOffer)
IL_07C5: callvirt System.Void TransferManager::AddIncomingOffer(TransferReason
material, TransferOffer offer)
IL_07CA: Label23
IL_07CA: Label50
IL_07CA: Label51
IL_07CA: Label52
IL_07CA: Label53
IL_07CA: ldarg.0
IL_07CB: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_07D0: brtrue => Label54
IL_07D5: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_07D7: ldc.i4.s 32
IL_07D9: and
IL_07DA: brfalse => Label55
IL_07DF: ldarg.2
IL_07E0: dup
IL_07E1: ldfld Flags NetSegment::m_flags
IL_07E6: ldc.i4 1048576
IL_07EB: or
IL_07EC: stfld Flags NetSegment::m_flags
IL_07F1: br => Label56
IL_07F6: Label55
IL_07F6: ldarg.2
IL_07F7: dup
IL_07F8: ldfld Flags NetSegment::m_flags
IL_07FD: ldc.i4 -1048577
IL_0802: and
IL_0803: stfld Flags NetSegment::m_flags
IL_0808: Label56
IL_0808: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_080A: ldc.i4 128
IL_080F: and
IL_0810: brfalse => Label57
IL_0815: ldarg.2
IL_0816: dup
IL_0817: ldfld Flags NetSegment::m_flags
IL_081C: ldc.i4 8388608
IL_0821: or
IL_0822: stfld Flags NetSegment::m_flags
IL_0827: br => Label58
IL_082C: Label57
IL_082C: ldarg.2
IL_082D: dup
IL_082E: ldfld Flags NetSegment::m_flags
IL_0833: ldc.i4 -8388609
IL_0838: and
IL_0839: stfld Flags NetSegment::m_flags
IL_083E: Label58
IL_083E: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_0840: ldc.i4 512
IL_0845: and
IL_0846: brfalse => Label59
IL_084B: ldarg.2
IL_084C: dup
IL_084D: ldfld Flags NetSegment::m_flags
IL_0852: ldc.i4 16777216
IL_0857: or
IL_0858: stfld Flags NetSegment::m_flags
IL_085D: br => Label60
IL_0862: Label59
IL_0862: ldarg.2
IL_0863: dup
IL_0864: ldfld Flags NetSegment::m_flags
IL_0869: ldc.i4 -16777217
IL_086E: and
IL_086F: stfld Flags NetSegment::m_flags
IL_0874: Label60
IL_0874: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_0876: ldc.i4 65536
IL_087B: and
IL_087C: brfalse => Label61
IL_0881: ldarg.2
IL_0882: dup
IL_0883: ldfld Flags NetSegment::m_flags
IL_0888: ldc.i4 256
IL_088D: or
IL_088E: stfld Flags NetSegment::m_flags
IL_0893: br => Label62
IL_0898: Label61
IL_0898: ldarg.2
IL_0899: dup
IL_089A: ldfld Flags NetSegment::m_flags
IL_089F: ldc.i4 -257
IL_08A4: and
IL_08A5: stfld Flags NetSegment::m_flags
IL_08AA: Label54
IL_08AA: Label62
IL_08AA: ldarg.0
IL_08AB: ldfld System.Int32 RoadBaseAI::m_noiseAccumulation
IL_08B0: ldloc.s 21 (System.Int32)
IL_08B2: mul
IL_08B3: ldc.i4.s 100
IL_08B5: div
IL_08B6: stloc.s 35 (System.Int32)
IL_08B8: ldloc.s 35 (System.Int32)
IL_08BA: brfalse => Label63
IL_08BF: ldloc.s 11 (UnityEngine.Vector3)
IL_08C1: ldloc.s 12 (UnityEngine.Vector3)
IL_08C3: call static System.Single
UnityEngine.Vector3::Distance(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_08C8: stloc.s 36 (System.Single)
IL_08CA: ldloc.s 36 (System.Single)
IL_08CC: ldarg.0
IL_08CD: ldfld System.Single RoadBaseAI::m_noiseRadius
IL_08D2: div
IL_08D3: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single
f)
IL_08D8: stloc.s 37 (System.Int32)
IL_08DA: ldc.i4.0
IL_08DB: stloc.s 38 (System.Int32)
IL_08DD: br => Label64
IL_08E2: Label65
IL_08E2: ldloc.s 11 (UnityEngine.Vector3)
IL_08E4: ldloc.s 12 (UnityEngine.Vector3)
IL_08E6: ldloc.s 38 (System.Int32)
IL_08E8: ldc.i4.1
IL_08E9: add
IL_08EA: conv.r4
IL_08EB: ldloc.s 37 (System.Int32)
IL_08ED: ldc.i4.1
IL_08EE: add
IL_08EF: conv.r4
IL_08F0: div
IL_08F1: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_08F6: stloc.s 39 (UnityEngine.Vector3)
IL_08F8: call static ImmaterialResourceManager
ColossalFramework.Singleton`1<ImmaterialResourceManager>::get_instance()
IL_08FD: ldc.i4.8
IL_08FE: ldloc.s 35 (System.Int32)
IL_0900: ldloc.s 39 (UnityEngine.Vector3)
IL_0902: ldarg.0
IL_0903: ldfld System.Single RoadBaseAI::m_noiseRadius
IL_0908: callvirt System.Int32 ImmaterialResourceManager::AddResource(Resource
resource, System.Int32 rate, UnityEngine.Vector3 position, System.Single radius)
IL_090D: pop
IL_090E: ldloc.s 38 (System.Int32)
IL_0910: ldc.i4.1
IL_0911: add
IL_0912: stloc.s 38 (System.Int32)
IL_0914: Label64
IL_0914: ldloc.s 38 (System.Int32)
IL_0916: ldloc.s 37 (System.Int32)
IL_0918: blt => Label65
IL_091D: Label63
IL_091D: ldarg.2
IL_091E: ldfld System.Byte NetSegment::m_trafficDensity
IL_0923: ldc.i4.s 50
IL_0925: blt => Label66
IL_092A: ldarg.2
IL_092B: ldfld System.Single NetSegment::m_averageLength
IL_0930: ldc.r4 25
IL_0935: bge.un => Label67
IL_093A: ldloc.1
IL_093B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0940: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0945: ldarg.2
IL_0946: ldfld System.UInt16 NetSegment::m_startNode
IL_094B: ldelema NetNode
IL_0950: ldfld Flags NetNode::m_flags
IL_0955: ldc.i4 10485760
IL_095A: and
IL_095B: ldc.i4 8388608
IL_0960: bne.un => Label68
IL_0965: ldloc.1
IL_0966: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_096B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0970: ldarg.2
IL_0971: ldfld System.UInt16 NetSegment::m_endNode
IL_0976: ldelema NetNode
IL_097B: ldfld Flags NetNode::m_flags
IL_0980: ldc.i4 10485760
IL_0985: and
IL_0986: ldc.i4 8388608
IL_098B: bne.un => Label69
IL_0990: call static GuideManager
ColossalFramework.Singleton`1<GuideManager>::get_instance()
IL_0995: ldfld GuideController SimulationManagerBase`2<GuideManager,
GuideController>::m_properties
IL_099A: stloc.s 40 (GuideController)
IL_099C: ldloc.s 40 (GuideController)
IL_099E: brfalse => Label70
IL_09A3: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_09A8: ldfld NetSegmentInstanceGuide NetManager::m_shortRoadTraffic
IL_09AD: ldloc.s 40 (GuideController)
IL_09AF: ldfld GuideInfo GuideController::m_shortRoadTraffic
IL_09B4: ldarg.1
IL_09B5: ldc.i4.0
IL_09B6: callvirt System.Void NetSegmentInstanceGuide::Activate(GuideInfo
guideInfo, System.UInt16 segmentID, System.Boolean ignoreID)
IL_09BB: Label66
IL_09BB: Label67
IL_09BB: Label68
IL_09BB: Label69
IL_09BB: Label70
IL_09BB: ldarg.2
IL_09BC: ldfld Flags NetSegment::m_flags
IL_09C1: ldc.i4.8
IL_09C2: and
IL_09C3: brfalse => Label71
IL_09C8: call static GuideManager
ColossalFramework.Singleton`1<GuideManager>::get_instance()
IL_09CD: ldfld GuideController SimulationManagerBase`2<GuideManager,
GuideController>::m_properties
IL_09D2: stloc.s 41 (GuideController)
IL_09D4: ldloc.s 41 (GuideController)
IL_09D6: brfalse => Label72
IL_09DB: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_09E0: ldfld NetSegmentInstanceGuide NetManager::m_roadDestroyed
IL_09E5: ldloc.s 41 (GuideController)
IL_09E7: ldfld GuideInfo GuideController::m_roadDestroyed
IL_09EC: ldarg.1
IL_09ED: ldc.i4.0
IL_09EE: callvirt System.Void NetSegmentInstanceGuide::Activate(GuideInfo
guideInfo, System.UInt16 segmentID, System.Boolean ignoreID)
IL_09F3: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_09F8: ldfld ServiceTypeGuide NetManager::m_roadDestroyed2
IL_09FD: ldloc.s 41 (GuideController)
IL_09FF: ldfld GuideInfo GuideController::m_roadDestroyed2
IL_0A04: ldarg.0
IL_0A05: ldfld NetInfo NetAI::m_info
IL_0A0A: ldfld ItemClass NetInfo::m_class
IL_0A0F: ldfld Service ItemClass::m_service
IL_0A14: callvirt System.Void ServiceTypeGuide::Activate(GuideInfo guideInfo,
Service service)
IL_0A19: Label72
IL_0A19: ldloc.0
IL_0A1A: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0A1F: ldc.i4.8
IL_0A20: shr.un
IL_0A21: ldc.i4.s 15
IL_0A23: and
IL_0A24: conv.u8
IL_0A25: ldarg.1
IL_0A26: ldc.i4.s 15
IL_0A28: and
IL_0A29: conv.i8
IL_0A2A: bne.un => Label73
IL_0A2F: ldarg.2
IL_0A30: ldfld System.Single NetSegment::m_averageLength
IL_0A35: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_0A3A: stloc.s 42 (System.Int32)
IL_0A3C: call static StatisticsManager
ColossalFramework.Singleton`1<StatisticsManager>::get_instance()
IL_0A41: ldc.i4.s 53
IL_0A43: callvirt StatisticBase StatisticsManager::Acquire(StatisticType type)
IL_0A48: stloc.s 43 (StatisticBase)
IL_0A4A: ldloc.s 43 (StatisticBase)
IL_0A4C: ldloc.s 42 (System.Int32)
IL_0A4E: callvirt abstract virtual System.Void StatisticBase::Add(System.Int32
delta)
IL_0A53: Label71
IL_0A53: Label73
IL_0A53: ldarg.2
IL_0A54: ldloc.2
IL_0A55: stfld Problem NetSegment::m_problems
IL_0A5A: // end original
IL_0A5A: ret
DONE

### Patch: static System.Void


TrainTrackBaseAI::LevelCrossingSimulationStep(System.UInt16 nodeID, NetNode& data)
### Replacement: static System.Void
TrainTrackBaseAI::LevelCrossingSimulationStep_Patch0(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: // start original
IL_0000: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0005: stloc.0
IL_0006: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_000B: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldc.i4.0
IL_0014: stloc.3
IL_0015: ldc.i4.0
IL_0016: stloc.s 4 (System.Int32)
IL_0018: br => Label0
IL_001D: Label12
IL_001D: ldarg.1
IL_001E: ldloc.s 4 (System.Int32)
IL_0020: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0025: stloc.s 5 (System.UInt16)
IL_0027: ldloc.s 5 (System.UInt16)
IL_0029: brfalse => Label1
IL_002E: ldloc.0
IL_002F: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0034: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0039: ldloc.s 5 (System.UInt16)
IL_003B: ldelema NetSegment
IL_0040: call NetInfo NetSegment::get_Info()
IL_0045: stloc.s 6 (NetInfo)
IL_0047: ldloc.s 6 (NetInfo)
IL_0049: ldfld ItemClass NetInfo::m_class
IL_004E: ldfld Service ItemClass::m_service
IL_0053: ldc.i4.s 9
IL_0055: beq => Label2
IL_005A: ldloc.s 6 (NetInfo)
IL_005C: ldfld Lane[] NetInfo::m_lanes
IL_0061: brfalse => Label3
IL_0066: ldloc.0
IL_0067: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_006C: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0071: ldloc.s 5 (System.UInt16)
IL_0073: ldelema NetSegment
IL_0078: ldfld System.UInt16 NetSegment::m_startNode
IL_007D: ldarg.0
IL_007E: ceq
IL_0080: stloc.s 7 (System.Boolean)
IL_0082: ldloc.0
IL_0083: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0088: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_008D: ldloc.s 5 (System.UInt16)
IL_008F: ldelema NetSegment
IL_0094: ldfld System.UInt32 NetSegment::m_lanes
IL_0099: stloc.s 8 (System.UInt32)
IL_009B: ldc.i4.0
IL_009C: stloc.s 9 (System.Int32)
IL_009E: br => Label4
IL_00A3: Label10
IL_00A3: ldloc.s 6 (NetInfo)
IL_00A5: ldfld Lane[] NetInfo::m_lanes
IL_00AA: ldloc.s 9 (System.Int32)
IL_00AC: ldelem.ref
IL_00AD: ldfld LaneType Lane::m_laneType
IL_00B2: ldc.i4.1
IL_00B3: bne.un => Label5
IL_00B8: ldloc.0
IL_00B9: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00BE: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00C3: ldloc.s 8 (System.UInt32)
IL_00C5: conv.u
IL_00C6: ldelema NetLane
IL_00CB: ldloc.s 7 (System.Boolean)
IL_00CD: brfalse => Label6
IL_00D2: ldc.r4 0
IL_00D7: br => Label7
IL_00DC: Label6
IL_00DC: ldc.r4 1
IL_00E1: Label7
IL_00E1: call UnityEngine.Vector3 NetLane::CalculatePosition(System.Single
laneOffset)
IL_00E6: stloc.s 10 (UnityEngine.Vector3)
IL_00E8: ldloc.s 10 (UnityEngine.Vector3)
IL_00EA: call static System.Boolean
TrainTrackBaseAI::CheckOverlap(UnityEngine.Vector3 pos)
IL_00EF: brfalse => Label8
IL_00F4: ldc.i4.1
IL_00F5: stloc.2
IL_00F6: Label5
IL_00F6: Label8
IL_00F6: ldloc.0
IL_00F7: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00FC: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0101: ldloc.s 8 (System.UInt32)
IL_0103: conv.u
IL_0104: ldelema NetLane
IL_0109: ldfld System.UInt32 NetLane::m_nextLane
IL_010E: stloc.s 8 (System.UInt32)
IL_0110: ldloc.s 9 (System.Int32)
IL_0112: ldc.i4.1
IL_0113: add
IL_0114: stloc.s 9 (System.Int32)
IL_0116: Label4
IL_0116: ldloc.s 9 (System.Int32)
IL_0118: ldloc.s 6 (NetInfo)
IL_011A: ldfld Lane[] NetInfo::m_lanes
IL_011F: ldlen
IL_0120: conv.i4
IL_0121: bge => Label9
IL_0126: ldloc.s 8 (System.UInt32)
IL_0128: brtrue => Label10
IL_012D: Label3
IL_012D: Label9
IL_012D: ldarg.0
IL_012E: ldloc.0
IL_012F: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0134: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0139: ldloc.s 5 (System.UInt16)
IL_013B: ldelema NetSegment
IL_0140: ldloc.1
IL_0141: ldc.i4 256
IL_0146: sub
IL_0147: ldloca.s 11 (RoadBaseAI+TrafficLightState)
IL_0149: ldloca.s 12 (RoadBaseAI+TrafficLightState)
IL_014B: ldloca.s 13 (System.Boolean)
IL_014D: ldloca.s 14 (System.Boolean)
IL_014F: 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_0154: ldloc.s 13 (System.Boolean)
IL_0156: brfalse => Label11
IL_015B: ldc.i4.1
IL_015C: stloc.2
IL_015D: Label1
IL_015D: Label2
IL_015D: Label11
IL_015D: ldloc.s 4 (System.Int32)
IL_015F: ldc.i4.1
IL_0160: add
IL_0161: stloc.s 4 (System.Int32)
IL_0163: Label0
IL_0163: ldloc.s 4 (System.Int32)
IL_0165: ldc.i4.8
IL_0166: blt => Label12
IL_016B: ldloc.2
IL_016C: stloc.3
IL_016D: ldc.i4.0
IL_016E: stloc.s 15 (System.Int32)
IL_0170: br => Label13
IL_0175: Label27
IL_0175: ldarg.1
IL_0176: ldloc.s 15 (System.Int32)
IL_0178: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_017D: stloc.s 16 (System.UInt16)
IL_017F: ldloc.s 16 (System.UInt16)
IL_0181: brfalse => Label14
IL_0186: ldloc.0
IL_0187: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_018C: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0191: ldloc.s 16 (System.UInt16)
IL_0193: ldelema NetSegment
IL_0198: call NetInfo NetSegment::get_Info()
IL_019D: stloc.s 17 (NetInfo)
IL_019F: ldarg.0
IL_01A0: ldloc.0
IL_01A1: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01A6: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01AB: ldloc.s 16 (System.UInt16)
IL_01AD: ldelema NetSegment
IL_01B2: ldloc.1
IL_01B3: ldc.i4 256
IL_01B8: sub
IL_01B9: ldloca.s 18 (RoadBaseAI+TrafficLightState)
IL_01BB: ldloca.s 19 (RoadBaseAI+TrafficLightState)
IL_01BD: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_01C2: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01C4: ldc.i4.s -2
IL_01C6: and
IL_01C7: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01C9: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_01CB: ldc.i4.s -2
IL_01CD: and
IL_01CE: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_01D0: ldloc.s 17 (NetInfo)
IL_01D2: ldfld ItemClass NetInfo::m_class
IL_01D7: ldfld Service ItemClass::m_service
IL_01DC: ldc.i4.s 9
IL_01DE: bne.un => Label15
IL_01E3: ldloc.3
IL_01E4: brfalse => Label16
IL_01E9: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01EB: ldc.i4.2
IL_01EC: and
IL_01ED: brtrue => Label17
IL_01F2: ldc.i4.3
IL_01F3: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01F5: Label17
IL_01F5: br => Label18
IL_01FA: Label16
IL_01FA: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01FC: ldc.i4.2
IL_01FD: and
IL_01FE: brfalse => Label19
IL_0203: ldc.i4.1
IL_0204: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0206: Label18
IL_0206: Label19
IL_0206: ldc.i4.0
IL_0207: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0209: br => Label20
IL_020E: Label15
IL_020E: ldloc.3
IL_020F: brfalse => Label21
IL_0214: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0216: ldc.i4.2
IL_0217: and
IL_0218: brfalse => Label22
IL_021D: ldc.i4.1
IL_021E: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0220: Label22
IL_0220: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0222: ldc.i4.2
IL_0223: and
IL_0224: brtrue => Label23
IL_0229: ldc.i4.3
IL_022A: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_022C: Label23
IL_022C: br => Label24
IL_0231: Label21
IL_0231: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0233: ldc.i4.2
IL_0234: and
IL_0235: brtrue => Label25
IL_023A: ldc.i4.3
IL_023B: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_023D: Label25
IL_023D: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_023F: ldc.i4.2
IL_0240: and
IL_0241: brfalse => Label26
IL_0246: ldc.i4.1
IL_0247: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0249: Label20
IL_0249: Label24
IL_0249: Label26
IL_0249: ldarg.0
IL_024A: ldloc.0
IL_024B: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0250: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0255: ldloc.s 16 (System.UInt16)
IL_0257: ldelema NetSegment
IL_025C: ldloc.1
IL_025D: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_025F: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0261: ldc.i4.0
IL_0262: ldc.i4.0
IL_0263: 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_0268: Label14
IL_0268: ldloc.s 15 (System.Int32)
IL_026A: ldc.i4.1
IL_026B: add
IL_026C: stloc.s 15 (System.Int32)
IL_026E: Label13
IL_026E: ldloc.s 15 (System.Int32)
IL_0270: ldc.i4.8
IL_0271: blt => Label27
IL_0276: // end original
IL_0276: ret
DONE

### Patch: virtual System.Void HumanAI::ArriveAtDestination(System.UInt16


instanceID, CitizenInstance& citizenData, System.Boolean success)
### Replacement: static System.Void HumanAI::ArriveAtDestination_Patch0(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: // start original
IL_0000: ldarg.2
IL_0001: ldfld System.UInt32 CitizenInstance::m_citizen
IL_0006: stloc.0
IL_0007: ldloc.0
IL_0008: brfalse => Label0
IL_000D: call static CitizenManager
ColossalFramework.Singleton`1<CitizenManager>::get_instance()
IL_0012: stloc.1
IL_0013: ldloc.1
IL_0014: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0019: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_001E: ldloc.0
IL_001F: conv.u
IL_0020: ldelema Citizen
IL_0025: ldloc.0
IL_0026: ldc.i4.0
IL_0027: ldc.i4.0
IL_0028: call System.Void Citizen::SetVehicle(System.UInt32 citizenID,
System.UInt16 vehicleID, System.UInt32 unitID)
IL_002D: ldarg.2
IL_002E: ldfld Flags CitizenInstance::m_flags
IL_0033: ldc.i4 134217728
IL_0038: and
IL_0039: brfalse => Label1
IL_003E: ldarg.3
IL_003F: brfalse => Label2
IL_0044: ldarg.2
IL_0045: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_004A: stloc.2
IL_004B: ldloc.2
IL_004C: brfalse => Label3
IL_0051: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0056: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_005B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0060: ldloc.2
IL_0061: ldelema NetNode
IL_0066: ldfld System.UInt16 NetNode::m_transportLine
IL_006B: stloc.3
IL_006C: ldloc.3
IL_006D: brfalse => Label4
IL_0072: call static TransportManager
ColossalFramework.Singleton`1<TransportManager>::get_instance()
IL_0077: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_007C: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_0081: ldloc.3
IL_0082: ldelema TransportLine
IL_0087: call TransportInfo TransportLine::get_Info()
IL_008C: stloc.s 4 (TransportInfo)
IL_008E: ldloc.s 4 (TransportInfo)
IL_0090: ldfld VehicleType TransportInfo::m_vehicleType
IL_0095: brtrue => Label5
IL_009A: ldarg.1
IL_009B: ldc.i4.1
IL_009C: and
IL_009D: brtrue => Label6
IL_00A2: ldloc.2
IL_00A3: call static System.UInt16 TransportLine::GetNextStop(System.UInt16
stop)
IL_00A8: stloc.2
IL_00A9: br => Label7
IL_00AE: Label6
IL_00AE: ldloc.2
IL_00AF: call static System.UInt16 TransportLine::GetPrevStop(System.UInt16
stop)
IL_00B4: stloc.2
IL_00B5: Label7
IL_00B5: ldloc.2
IL_00B6: brfalse => Label8
IL_00BB: ldarg.2
IL_00BC: dup
IL_00BD: ldfld Flags CitizenInstance::m_flags
IL_00C2: ldc.i4 268435456
IL_00C7: or
IL_00C8: stfld Flags CitizenInstance::m_flags
IL_00CD: ldarg.0
IL_00CE: ldarg.1
IL_00CF: ldarg.2
IL_00D0: ldloc.2
IL_00D1: ldc.i4.1
IL_00D2: callvirt virtual System.Void CitizenAI::SetTarget(System.UInt16
instanceID, CitizenInstance& data, System.UInt16 targetIndex, System.Boolean
targetIsNode)
IL_00D7: br => Label16
IL_00DC: Label8
IL_00DC: br => Label9
IL_00E1: Label5
IL_00E1: ldarg.2
IL_00E2: dup
IL_00E3: ldfld Flags CitizenInstance::m_flags
IL_00E8: ldc.i4 268435456
IL_00ED: or
IL_00EE: stfld Flags CitizenInstance::m_flags
IL_00F3: ldarg.0
IL_00F4: ldarg.1
IL_00F5: ldarg.2
IL_00F6: ldloc.2
IL_00F7: call System.Void HumanAI::WaitTouristVehicle(System.UInt16
instanceID, CitizenInstance& citizenData, System.UInt16 stop)
IL_00FC: br => Label17
IL_0101: Label2
IL_0101: Label3
IL_0101: Label4
IL_0101: Label9
IL_0101: br => Label10
IL_0106: Label1
IL_0106: ldarg.3
IL_0107: brfalse => Label11
IL_010C: ldloc.1
IL_010D: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0112: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0117: ldloc.0
IL_0118: conv.u
IL_0119: ldelema Citizen
IL_011E: ldloc.0
IL_011F: ldarg.2
IL_0120: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_0125: call System.Void Citizen::SetLocationByBuilding(System.UInt32
citizenID, System.UInt16 buildingID)
IL_012A: Label11
IL_012A: ldarg.2
IL_012B: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_0130: brfalse => Label12
IL_0135: ldloc.1
IL_0136: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_013B: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0140: ldloc.0
IL_0141: conv.u
IL_0142: ldelema Citizen
IL_0147: call Location Citizen::get_CurrentLocation()
IL_014C: ldc.i4.2
IL_014D: bne.un => Label13
IL_0152: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0157: stloc.s 5 (BuildingManager)
IL_0159: ldloc.s 5 (BuildingManager)
IL_015B: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0160: ldfld Building[] Array16`1<Building>::m_buffer
IL_0165: ldarg.2
IL_0166: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_016B: ldelema Building
IL_0170: call BuildingInfo Building::get_Info()
IL_0175: stloc.s 6 (BuildingInfo)
IL_0177: ldloc.s 6 (BuildingInfo)
IL_0179: ldfld BuildingAI BuildingInfo::m_buildingAI
IL_017E: ldarg.2
IL_017F: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_0184: ldloc.s 5 (BuildingManager)
IL_0186: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_018B: ldfld Building[] Array16`1<Building>::m_buffer
IL_0190: ldarg.2
IL_0191: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_0196: ldelema Building
IL_019B: ldloc.0
IL_019C: callvirt virtual System.Void BuildingAI::VisitorEnter(System.UInt16
buildingID, Building& data, System.UInt32 citizen)
IL_01A1: Label0
IL_01A1: Label10
IL_01A1: Label12
IL_01A1: Label13
IL_01A1: ldarg.2
IL_01A2: ldfld Flags CitizenInstance::m_flags
IL_01A7: ldc.i4.s 64
IL_01A9: and
IL_01AA: brfalse => Label14
IL_01AF: ldarg.3
IL_01B0: brtrue => Label15
IL_01B5: Label14
IL_01B5: ldarg.0
IL_01B6: ldarg.1
IL_01B7: ldarg.2
IL_01B8: ldc.i4.0
IL_01B9: callvirt virtual System.Void CitizenAI::SetSource(System.UInt16
instanceID, CitizenInstance& data, System.UInt16 sourceBuilding)
IL_01BE: ldarg.0
IL_01BF: ldarg.1
IL_01C0: ldarg.2
IL_01C1: ldc.i4.0
IL_01C2: call System.Void CitizenAI::SetTarget(System.UInt16 instanceID,
CitizenInstance& data, System.UInt16 targetBuilding)
IL_01C7: ldarg.2
IL_01C8: ldarg.1
IL_01C9: call System.Void CitizenInstance::Unspawn(System.UInt16 instanceID)
IL_01CE: // end original
IL_01CE: Label15
IL_01CE: Label16
IL_01CE: Label17
IL_01CE: ret
DONE

### Patch: virtual System.Void CommonBuildingAI::SimulationStep(System.UInt16


buildingID, Building& data)
### Replacement: static System.Void
CommonBuildingAI::SimulationStep_Patch0(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: // start original
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: ldarg.2
IL_0003: call virtual System.Void BuildingAI::SimulationStep(System.UInt16
buildingID, Building& data)
IL_0008: ldarg.2
IL_0009: ldfld Flags Building::m_flags
IL_000E: ldc.i4 524288
IL_0013: and
IL_0014: brfalse => Label0
IL_0019: ldarg.1
IL_001A: ldc.i4.8
IL_001B: shl
IL_001C: ldc.i4 49152
IL_0021: div.un
IL_0022: stloc.0
IL_0023: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0028: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_002D: ldloc.0
IL_002E: sub
IL_002F: stloc.1
IL_0030: ldarg.2
IL_0031: ldfld Flags Building::m_flags
IL_0036: ldc.i4 4194304
IL_003B: and
IL_003C: brfalse => Label1
IL_0041: ldarg.2
IL_0042: ldloc.1
IL_0043: ldc.i4 256
IL_0048: sub
IL_0049: call Frame Building::GetFrameData(System.UInt32 simulationFrame)
IL_004E: stloc.2
IL_004F: ldloca.s 2 (Building+Frame)
IL_0051: ldfld System.Byte Frame::m_constructState
IL_0056: brtrue => Label2
IL_005B: Label1
IL_005B: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0060: ldarg.1
IL_0061: callvirt System.Void BuildingManager::ReleaseBuilding(System.UInt16
building)
IL_0066: // end original
IL_0066: Label0
IL_0066: Label2
IL_0066: ret
DONE

### Patch: System.Void RoadWorldInfoPanel::OnAdjustRoadButton()


### Replacement: static System.Void
RoadWorldInfoPanel::OnAdjustRoadButton_Patch0(RoadWorldInfoPanel this)
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: ldc.i4.s 30
IL_0007: ldc.i4.2
IL_0008: callvirt System.Void InfoManager::SetCurrentMode(InfoMode mode,
SubInfoMode subMode)
IL_000D: ldarg.0
IL_000E: call System.Void WorldInfoPanel::Hide()
IL_0013: // end original
IL_0013: ret
DONE

### Patch: System.Void NetSegment::CalculateSegment(System.UInt16 segmentID)


### Replacement: static System.Void NetSegment::CalculateSegment_Patch0(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<NetManager>::get_instance()
IL_0036: stloc.0
IL_0037: ldloc.0
IL_0038: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0074: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16>
NetManager::m_updateNameVisibility
IL_00CF: ldarg.1
IL_00D0: callvirt System.Boolean
System.Collections.Generic.HashSet`1<System.UInt16>::Add(System.UInt16 item)
IL_00D5: pop
IL_00D6: // end original
IL_00D6: Label0
IL_00D6: ret
DONE

### Patch: System.Void LoadAssetPanel::OnLoad()


### Replacement: static System.Void LoadAssetPanel::OnLoad_Patch0(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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<CustomAssetMetaData>::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<CustomAssetMetaData>::GetListingMetaData(System.Int32 index)
IL_0037: stloc.0
IL_0038: ldarg.0
IL_0039: ldloc.0
IL_003A: call System.Void
LoadSavePanelBase`1<CustomAssetMetaData>::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<CustomAssetMetaData>::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<SimulationManager>::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<SimulationManager>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_010B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<VehicleInfo>::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<VehicleInfo>::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<VehicleInfo>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_023B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<BuildingInfo>::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<BuildingInfo>::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<BuildingInfo>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_036B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<BuildingInfo>::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<BuildingInfo>::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<BuildingInfo>::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<BuildingManager>::get_instance()
IL_0482: callvirt virtual System.Void SimulationManagerBase`2<BuildingManager,
BuildingProperties>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_04A5: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<BuildingInfo>::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<CitizenInfo>::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<VehicleInfo>::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<PropInfo>::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<TreeInfo>::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<NetInfo>::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: ret
DONE

### Patch: System.Void InfoManager::SetMode(InfoMode mode, SubInfoMode subMode)


### Replacement: static System.Void InfoManager::SetMode_Patch0(InfoManager this,
InfoMode mode, SubInfoMode subMode)
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: stfld InfoMode InfoManager::m_currentMode
IL_0007: ldarg.0
IL_0008: ldarg.2
IL_0009: stfld SubInfoMode InfoManager::m_currentSubMode
IL_000E: ldarg.1
IL_000F: ldc.i4.1
IL_0010: sub
IL_0011: 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
IL_00AA: br => Label37
IL_00AF: Label0
IL_00AF: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00B4: ldc.i4.0
IL_00B5: ldc.i4.0
IL_00B6: ldc.i4.m1
IL_00B7: ldc.r4 300
IL_00BC: ldc.i4.0
IL_00BD: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_00C2: br => Label38
IL_00C7: Label1
IL_00C7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00CC: ldc.i4.0
IL_00CD: ldc.i4.0
IL_00CE: ldc.i4.m1
IL_00CF: ldc.r4 300
IL_00D4: ldc.i4.0
IL_00D5: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_00DA: br => Label39
IL_00DF: Label2
IL_00DF: ldarg.2
IL_00E0: brtrue => Label40
IL_00E5: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00EA: ldc.i4.s 15
IL_00EC: ldc.i4.0
IL_00ED: ldc.i4.0
IL_00EE: ldc.r4 500
IL_00F3: ldc.i4.0
IL_00F4: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_00F9: br => Label41
IL_00FE: Label40
IL_00FE: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0103: ldc.i4.0
IL_0104: ldc.i4.0
IL_0105: ldc.i4.m1
IL_0106: ldc.r4 300
IL_010B: ldc.i4.0
IL_010C: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0111: Label41
IL_0111: br => Label42
IL_0116: Label3
IL_0116: ldarg.2
IL_0117: ldc.i4.1
IL_0118: bne.un => Label43
IL_011D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0122: ldc.i4.s 14
IL_0124: ldc.i4.0
IL_0125: ldc.i4.1
IL_0126: ldc.r4 500
IL_012B: ldc.i4.0
IL_012C: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0131: br => Label44
IL_0136: Label43
IL_0136: ldarg.2
IL_0137: ldc.i4.3
IL_0138: bne.un => Label45
IL_013D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0142: ldc.i4.s 14
IL_0144: ldc.i4.0
IL_0145: ldc.i4.4
IL_0146: ldc.r4 500
IL_014B: ldc.i4.0
IL_014C: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0151: br => Label46
IL_0156: Label45
IL_0156: ldarg.2
IL_0157: ldc.i4.2
IL_0158: bne.un => Label47
IL_015D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0162: ldc.i4.s 14
IL_0164: ldc.i4.0
IL_0165: ldc.i4.3
IL_0166: ldc.r4 500
IL_016B: ldc.i4.0
IL_016C: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0171: br => Label48
IL_0176: Label47
IL_0176: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_017B: ldc.i4.s 14
IL_017D: ldc.i4.0
IL_017E: ldc.i4.0
IL_017F: ldc.r4 500
IL_0184: ldc.i4.0
IL_0185: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_018A: Label44
IL_018A: Label46
IL_018A: Label48
IL_018A: br => Label49
IL_018F: Label12
IL_018F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0194: ldc.i4.0
IL_0195: ldc.i4.0
IL_0196: ldc.i4.m1
IL_0197: ldc.r4 300
IL_019C: ldc.i4.0
IL_019D: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01A2: br => Label50
IL_01A7: Label4
IL_01A7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01AC: ldc.i4.0
IL_01AD: ldc.i4.0
IL_01AE: ldc.i4.m1
IL_01AF: ldc.r4 300
IL_01B4: ldc.i4.0
IL_01B5: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01BA: br => Label51
IL_01BF: Label5
IL_01BF: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01C4: ldc.i4.0
IL_01C5: ldc.i4.0
IL_01C6: ldc.i4.m1
IL_01C7: ldc.r4 300
IL_01CC: ldc.i4.0
IL_01CD: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01D2: br => Label52
IL_01D7: Label8
IL_01D7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01DC: ldc.i4.0
IL_01DD: ldc.i4.0
IL_01DE: ldc.i4.m1
IL_01DF: ldc.r4 300
IL_01E4: ldc.i4.0
IL_01E5: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01EA: br => Label53
IL_01EF: Label6
IL_01EF: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01F4: ldc.i4.0
IL_01F5: ldc.i4.0
IL_01F6: ldc.i4.m1
IL_01F7: ldc.r4 300
IL_01FC: ldc.i4.0
IL_01FD: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0202: br => Label54
IL_0207: Label7
IL_0207: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_020C: ldc.i4.0
IL_020D: ldc.i4.0
IL_020E: ldc.i4.m1
IL_020F: ldc.r4 300
IL_0214: ldc.i4.0
IL_0215: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_021A: br => Label55
IL_021F: Label9
IL_021F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0224: ldc.i4.0
IL_0225: ldc.i4.0
IL_0226: ldc.i4.m1
IL_0227: ldc.r4 300
IL_022C: ldc.i4.0
IL_022D: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0232: br => Label56
IL_0237: Label10
IL_0237: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_023C: ldc.i4.0
IL_023D: ldc.i4.0
IL_023E: ldc.i4.m1
IL_023F: ldc.r4 300
IL_0244: ldc.i4.0
IL_0245: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_024A: br => Label57
IL_024F: Label11
IL_024F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0254: ldc.i4.0
IL_0255: ldc.i4.0
IL_0256: ldc.i4.m1
IL_0257: ldc.r4 300
IL_025C: ldc.i4.0
IL_025D: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0262: br => Label58
IL_0267: Label14
IL_0267: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_026C: ldc.i4.0
IL_026D: ldc.i4.0
IL_026E: ldc.i4.m1
IL_026F: ldc.r4 300
IL_0274: ldc.i4.0
IL_0275: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_027A: br => Label59
IL_027F: Label17
IL_027F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0284: ldc.i4.s 18
IL_0286: ldc.i4.0
IL_0287: ldc.i4.0
IL_0288: ldc.r4 500
IL_028D: ldc.i4.0
IL_028E: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0293: br => Label60
IL_0298: Label19
IL_0298: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_029D: ldc.i4.0
IL_029E: ldc.i4.0
IL_029F: ldc.i4.m1
IL_02A0: ldc.r4 300
IL_02A5: ldc.i4.1
IL_02A6: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02AB: br => Label61
IL_02B0: Label18
IL_02B0: ldarg.2
IL_02B1: ldc.i4.1
IL_02B2: bne.un => Label62
IL_02B7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02BC: ldc.i4.s 16
IL_02BE: ldc.i4.0
IL_02BF: ldc.i4.1
IL_02C0: ldc.r4 500
IL_02C5: ldc.i4.1
IL_02C6: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02CB: br => Label63
IL_02D0: Label62
IL_02D0: ldarg.2
IL_02D1: ldc.i4.2
IL_02D2: bne.un => Label64
IL_02D7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02DC: ldc.i4.s 16
IL_02DE: ldc.i4.0
IL_02DF: ldc.i4.2
IL_02E0: ldc.r4 500
IL_02E5: ldc.i4.1
IL_02E6: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02EB: br => Label65
IL_02F0: Label64
IL_02F0: ldarg.2
IL_02F1: brtrue => Label66
IL_02F6: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02FB: ldc.i4.s 16
IL_02FD: ldc.i4.0
IL_02FE: ldc.i4.0
IL_02FF: ldc.r4 500
IL_0304: ldc.i4.1
IL_0305: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_030A: br => Label67
IL_030F: Label66
IL_030F: ldarg.2
IL_0310: ldc.i4.4
IL_0311: bne.un => Label68
IL_0316: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_031B: ldc.i4.s 16
IL_031D: ldc.i4.0
IL_031E: ldc.i4.3
IL_031F: ldc.r4 500
IL_0324: ldc.i4.1
IL_0325: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_032A: br => Label69
IL_032F: Label68
IL_032F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0334: ldc.i4.s 16
IL_0336: ldc.i4.0
IL_0337: ldc.i4.2
IL_0338: ldc.r4 500
IL_033D: ldc.i4.1
IL_033E: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0343: Label63
IL_0343: Label65
IL_0343: Label67
IL_0343: Label69
IL_0343: br => Label70
IL_0348: Label16
IL_0348: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_034D: ldc.i4.0
IL_034E: ldc.i4.0
IL_034F: ldc.i4.m1
IL_0350: ldc.r4 300
IL_0355: ldc.i4.0
IL_0356: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_035B: br => Label71
IL_0360: Label13
IL_0360: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0365: ldc.i4.0
IL_0366: ldc.i4.0
IL_0367: ldc.i4.m1
IL_0368: ldc.r4 300
IL_036D: ldc.i4.0
IL_036E: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0373: br => Label72
IL_0378: Label15
IL_0378: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_037D: ldc.i4.s 13
IL_037F: ldc.i4.0
IL_0380: ldc.i4.m1
IL_0381: ldc.r4 2000
IL_0386: ldc.i4.0
IL_0387: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_038C: br => Label73
IL_0391: Label20
IL_0391: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0396: ldc.i4.0
IL_0397: ldc.i4.0
IL_0398: ldc.i4.m1
IL_0399: ldc.r4 300
IL_039E: ldc.i4.0
IL_039F: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03A4: br => Label74
IL_03A9: Label21
IL_03A9: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03AE: ldc.i4.0
IL_03AF: ldc.i4.0
IL_03B0: ldc.i4.m1
IL_03B1: ldc.r4 300
IL_03B6: ldc.i4.0
IL_03B7: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03BC: br => Label75
IL_03C1: Label22
IL_03C1: ldarg.2
IL_03C2: brtrue => Label76
IL_03C7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03CC: ldc.i4.s 9
IL_03CE: ldc.i4.0
IL_03CF: ldc.i4.1
IL_03D0: ldc.r4 2000
IL_03D5: ldc.i4.0
IL_03D6: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03DB: br => Label77
IL_03E0: Label76
IL_03E0: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03E5: ldc.i4.0
IL_03E6: ldc.i4.0
IL_03E7: ldc.i4.m1
IL_03E8: ldc.r4 300
IL_03ED: ldc.i4.0
IL_03EE: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03F3: Label77
IL_03F3: br => Label78
IL_03F8: Label23
IL_03F8: ldarg.2
IL_03F9: brtrue => Label79
IL_03FE: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0403: ldc.i4.s 9
IL_0405: ldc.i4.0
IL_0406: ldc.i4.3
IL_0407: ldc.r4 2000
IL_040C: ldc.i4.0
IL_040D: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0412: br => Label80
IL_0417: Label79
IL_0417: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_041C: ldc.i4.0
IL_041D: ldc.i4.0
IL_041E: ldc.i4.m1
IL_041F: ldc.r4 300
IL_0424: ldc.i4.0
IL_0425: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_042A: Label80
IL_042A: br => Label81
IL_042F: Label24
IL_042F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0434: ldc.i4.s 20
IL_0436: ldc.i4.0
IL_0437: ldc.i4.3
IL_0438: ldc.r4 500
IL_043D: ldc.i4.1
IL_043E: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0443: br => Label82
IL_0448: Label25
IL_0448: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_044D: ldc.i4.0
IL_044E: ldc.i4.0
IL_044F: ldc.i4.m1
IL_0450: ldc.r4 300
IL_0455: ldc.i4.0
IL_0456: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_045B: br => Label83
IL_0460: Label26
IL_0460: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0465: ldc.i4.s 20
IL_0467: ldc.i4.0
IL_0468: ldc.i4.1
IL_0469: ldc.r4 2000
IL_046E: ldc.i4.0
IL_046F: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0474: br => Label84
IL_0479: Label27
IL_0479: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_047E: ldc.i4.0
IL_047F: ldc.i4.0
IL_0480: ldc.i4.m1
IL_0481: ldc.r4 300
IL_0486: ldc.i4.0
IL_0487: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_048C: br => Label85
IL_0491: Label28
IL_0491: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0496: ldc.i4.0
IL_0497: ldc.i4.0
IL_0498: ldc.i4.m1
IL_0499: ldc.r4 300
IL_049E: ldc.i4.0
IL_049F: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04A4: br => Label86
IL_04A9: Label29
IL_04A9: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04AE: ldc.i4.0
IL_04AF: ldc.i4.0
IL_04B0: ldc.i4.m1
IL_04B1: ldc.r4 300
IL_04B6: ldc.i4.0
IL_04B7: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04BC: br => Label87
IL_04C1: Label30
IL_04C1: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04C6: ldc.i4.0
IL_04C7: ldc.i4.0
IL_04C8: ldc.i4.m1
IL_04C9: ldc.r4 300
IL_04CE: ldc.i4.0
IL_04CF: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04D4: br => Label88
IL_04D9: Label31
IL_04D9: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04DE: ldc.i4.0
IL_04DF: ldc.i4.0
IL_04E0: ldc.i4.m1
IL_04E1: ldc.r4 300
IL_04E6: ldc.i4.0
IL_04E7: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04EC: br => Label89
IL_04F1: Label32
IL_04F1: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04F6: ldc.i4.s 12
IL_04F8: ldc.i4.s 17
IL_04FA: ldc.i4.1
IL_04FB: ldc.r4 2000
IL_0500: ldc.i4.0
IL_0501: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0506: br => Label90
IL_050B: Label33
IL_050B: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0510: ldc.i4.0
IL_0511: ldc.i4.0
IL_0512: ldc.i4.m1
IL_0513: ldc.r4 300
IL_0518: ldc.i4.0
IL_0519: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_051E: br => Label91
IL_0523: Label34
IL_0523: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0528: ldc.i4.s 19
IL_052A: ldc.i4.s 28
IL_052C: ldc.i4.1
IL_052D: ldc.r4 500
IL_0532: ldc.i4.0
IL_0533: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0538: br => Label92
IL_053D: Label35
IL_053D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0542: ldc.i4.0
IL_0543: ldc.i4.0
IL_0544: ldc.i4.m1
IL_0545: ldc.r4 300
IL_054A: ldc.i4.0
IL_054B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0550: br => Label93
IL_0555: Label36
IL_0555: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_055A: ldc.i4.0
IL_055B: ldc.i4.0
IL_055C: ldc.i4.m1
IL_055D: ldc.r4 300
IL_0562: ldc.i4.0
IL_0563: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0568: br => Label94
IL_056D: Label37
IL_056D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0572: ldc.i4.0
IL_0573: ldc.i4.0
IL_0574: ldc.i4.m1
IL_0575: ldc.r4 300
IL_057A: ldc.i4.0
IL_057B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0580: br => Label95
IL_0585: // end original
IL_0585: Label38
IL_0585: Label39
IL_0585: Label42
IL_0585: Label49
IL_0585: Label50
IL_0585: Label51
IL_0585: Label52
IL_0585: Label53
IL_0585: Label54
IL_0585: Label55
IL_0585: Label56
IL_0585: Label57
IL_0585: Label58
IL_0585: Label59
IL_0585: Label60
IL_0585: Label61
IL_0585: Label70
IL_0585: Label71
IL_0585: Label72
IL_0585: Label73
IL_0585: Label74
IL_0585: Label75
IL_0585: Label78
IL_0585: Label81
IL_0585: Label82
IL_0585: Label83
IL_0585: Label84
IL_0585: Label85
IL_0585: Label86
IL_0585: Label87
IL_0585: Label88
IL_0585: Label89
IL_0585: Label90
IL_0585: Label91
IL_0585: Label92
IL_0585: Label93
IL_0585: Label94
IL_0585: Label95
IL_0585: ret
DONE

### Patch: virtual System.Void DefaultTool::OnToolGUI(UnityEngine.Event e)


### Replacement: static System.Void DefaultTool::OnToolGUI_Patch0(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<SimulationManager>::get_instance()
IL_0046: ldarg.0
IL_0047: ldftn System.Void DefaultTool::<OnToolGUI>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<InstanceManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<BuildingManager>::get_instance()
IL_017E: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0183: ldfld Building[] Array16`1<Building>::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<SimulationManager>::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<SimulationManager>::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::<OnToolGUI>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<SimulationManager>::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::<OnToolGUI>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<LogChannel>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<BuildingManager>::get_instance()
IL_04D2: stloc.s 13 (BuildingManager)
IL_04D4: ldloc.s 13 (BuildingManager)
IL_04D6: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_04DB: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_04FA: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0555: ldfld Building[] Array16`1<Building>::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<VehicleManager>::get_instance()
IL_0590: stloc.s 16 (VehicleManager)
IL_0592: ldloc.s 16 (VehicleManager)
IL_0594: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0599: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_05B8: ldfld Vehicle[] Array16`1<Vehicle>::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})"
IL_05DD: ldc.i4.2
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: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_0601: stloc.s 12 (System.String)
IL_0603: ldloc.s 17 (VehicleInfo)
IL_0605: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_060A: ldloc.s 8 (System.UInt16)
IL_060C: ldloc.s 16 (VehicleManager)
IL_060E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0613: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0618: ldloc.s 8 (System.UInt16)
IL_061A: ldelema Vehicle
IL_061F: callvirt virtual System.String VehicleAI::GetDebugString(System.UInt16
vehicleID, Vehicle& data)
IL_0624: stloc.s 18 (System.String)
IL_0626: ldloc.s 18 (System.String)
IL_0628: brfalse => Label68
IL_062D: ldloc.s 12 (System.String)
IL_062F: ldstr "\n"
IL_0634: ldloc.s 18 (System.String)
IL_0636: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_063B: stloc.s 12 (System.String)
IL_063D: Label66
IL_063D: Label67
IL_063D: Label68
IL_063D: br => Label69
IL_0642: Label65
IL_0642: ldloc.s 9 (System.UInt16)
IL_0644: brfalse => Label70
IL_0649: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_064E: stloc.s 19 (VehicleManager)
IL_0650: ldloc.s 19 (VehicleManager)
IL_0652: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_0657: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_065C: ldloc.s 9 (System.UInt16)
IL_065E: ldelema VehicleParked
IL_0663: ldfld System.UInt16 VehicleParked::m_flags
IL_0668: ldc.i4.1
IL_0669: and
IL_066A: brfalse => Label71
IL_066F: ldloc.s 19 (VehicleManager)
IL_0671: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_0676: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_067B: ldloc.s 9 (System.UInt16)
IL_067D: ldelema VehicleParked
IL_0682: call VehicleInfo VehicleParked::get_Info()
IL_0687: stloc.s 20 (VehicleInfo)
IL_0689: ldloc.s 20 (VehicleInfo)
IL_068B: ldnull
IL_068C: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0691: brfalse => Label72
IL_0696: ldstr "{0} ({1})"
IL_069B: ldc.i4.2
IL_069C: newarr System.Object
IL_06A1: dup
IL_06A2: ldc.i4.0
IL_06A3: ldloc.s 20 (VehicleInfo)
IL_06A5: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_06AA: callvirt System.String UnityEngine.Object::get_name()
IL_06AF: stelem.ref
IL_06B0: dup
IL_06B1: ldc.i4.1
IL_06B2: ldloc.s 9 (System.UInt16)
IL_06B4: box System.UInt16
IL_06B9: stelem.ref
IL_06BA: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_06BF: stloc.s 12 (System.String)
IL_06C1: ldloc.s 20 (VehicleInfo)
IL_06C3: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_06C8: ldloc.s 9 (System.UInt16)
IL_06CA: ldloc.s 19 (VehicleManager)
IL_06CC: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_06D1: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_06D6: ldloc.s 9 (System.UInt16)
IL_06D8: ldelema VehicleParked
IL_06DD: callvirt virtual System.String VehicleAI::GetDebugString(System.UInt16
parkedVehicleID, VehicleParked& data)
IL_06E2: stloc.s 21 (System.String)
IL_06E4: ldloc.s 21 (System.String)
IL_06E6: brfalse => Label73
IL_06EB: ldloc.s 12 (System.String)
IL_06ED: ldstr "\n"
IL_06F2: ldloc.s 21 (System.String)
IL_06F4: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_06F9: stloc.s 12 (System.String)
IL_06FB: Label71
IL_06FB: Label72
IL_06FB: Label73
IL_06FB: br => Label74
IL_0700: Label70
IL_0700: ldloc.s 10 (System.UInt16)
IL_0702: brfalse => Label75
IL_0707: call static CitizenManager
ColossalFramework.Singleton`1<CitizenManager>::get_instance()
IL_070C: stloc.s 22 (CitizenManager)
IL_070E: ldloc.s 22 (CitizenManager)
IL_0710: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0715: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_071A: ldloc.s 10 (System.UInt16)
IL_071C: ldelema CitizenInstance
IL_0721: ldfld Flags CitizenInstance::m_flags
IL_0726: ldc.i4.1
IL_0727: and
IL_0728: brfalse => Label76
IL_072D: ldloc.s 22 (CitizenManager)
IL_072F: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0734: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0739: ldloc.s 10 (System.UInt16)
IL_073B: ldelema CitizenInstance
IL_0740: call CitizenInfo CitizenInstance::get_Info()
IL_0745: stloc.s 23 (CitizenInfo)
IL_0747: ldloc.s 23 (CitizenInfo)
IL_0749: ldnull
IL_074A: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_074F: brfalse => Label77
IL_0754: ldstr "{0} ({1})"
IL_0759: ldc.i4.2
IL_075A: newarr System.Object
IL_075F: dup
IL_0760: ldc.i4.0
IL_0761: ldloc.s 23 (CitizenInfo)
IL_0763: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_0768: callvirt System.String UnityEngine.Object::get_name()
IL_076D: stelem.ref
IL_076E: dup
IL_076F: ldc.i4.1
IL_0770: ldloc.s 10 (System.UInt16)
IL_0772: box System.UInt16
IL_0777: stelem.ref
IL_0778: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_077D: stloc.s 12 (System.String)
IL_077F: ldloc.s 23 (CitizenInfo)
IL_0781: ldfld CitizenAI CitizenInfo::m_citizenAI
IL_0786: ldloc.s 10 (System.UInt16)
IL_0788: ldloc.s 22 (CitizenManager)
IL_078A: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_078F: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0794: ldloc.s 10 (System.UInt16)
IL_0796: ldelema CitizenInstance
IL_079B: callvirt virtual System.String CitizenAI::GetDebugString(System.UInt16
instanceID, CitizenInstance& data)
IL_07A0: stloc.s 24 (System.String)
IL_07A2: ldloc.s 24 (System.String)
IL_07A4: brfalse => Label78
IL_07A9: ldloc.s 12 (System.String)
IL_07AB: ldstr "\n"
IL_07B0: ldloc.s 24 (System.String)
IL_07B2: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_07B7: stloc.s 12 (System.String)
IL_07B9: Label76
IL_07B9: Label77
IL_07B9: Label78
IL_07B9: br => Label79
IL_07BE: Label75
IL_07BE: ldloc.s 11 (System.UInt16)
IL_07C0: brfalse => Label80
IL_07C5: call static TransportManager
ColossalFramework.Singleton`1<TransportManager>::get_instance()
IL_07CA: stloc.s 25 (TransportManager)
IL_07CC: ldloc.s 25 (TransportManager)
IL_07CE: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_07D3: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_07D8: ldloc.s 11 (System.UInt16)
IL_07DA: ldelema TransportLine
IL_07DF: ldfld Flags TransportLine::m_flags
IL_07E4: ldc.i4.1
IL_07E5: and
IL_07E6: brfalse => Label81
IL_07EB: ldloc.s 25 (TransportManager)
IL_07ED: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_07F2: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_07F7: ldloc.s 11 (System.UInt16)
IL_07F9: ldelema TransportLine
IL_07FE: call TransportInfo TransportLine::get_Info()
IL_0803: stloc.s 26 (TransportInfo)
IL_0805: ldloc.s 26 (TransportInfo)
IL_0807: ldnull
IL_0808: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_080D: brfalse => Label82
IL_0812: ldstr "{0} ({1})"
IL_0817: ldc.i4.2
IL_0818: newarr System.Object
IL_081D: dup
IL_081E: ldc.i4.0
IL_081F: ldloc.s 26 (TransportInfo)
IL_0821: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_0826: callvirt System.String UnityEngine.Object::get_name()
IL_082B: stelem.ref
IL_082C: dup
IL_082D: ldc.i4.1
IL_082E: ldloc.s 11 (System.UInt16)
IL_0830: box System.UInt16
IL_0835: stelem.ref
IL_0836: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_083B: stloc.s 12 (System.String)
IL_083D: ldloc.s 25 (TransportManager)
IL_083F: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_0844: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_0849: ldloc.s 11 (System.UInt16)
IL_084B: ldelema TransportLine
IL_0850: ldloc.s 11 (System.UInt16)
IL_0852: call System.String TransportLine::GetDebugString(System.UInt16
lineID)
IL_0857: stloc.s 27 (System.String)
IL_0859: ldloc.s 27 (System.String)
IL_085B: brfalse => Label83
IL_0860: ldloc.s 12 (System.String)
IL_0862: ldstr "\n"
IL_0867: ldloc.s 27 (System.String)
IL_0869: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_086E: stloc.s 12 (System.String)
IL_0870: Label64
IL_0870: Label69
IL_0870: Label74
IL_0870: Label79
IL_0870: Label80
IL_0870: Label81
IL_0870: Label82
IL_0870: Label83
IL_0870: ldloc.s 12 (System.String)
IL_0872: brfalse => Label84
IL_0877: ldloc.s 6 (InstanceID)
IL_0879: ldloca.s 28 (UnityEngine.Vector3)
IL_087B: ldloca.s 29 (UnityEngine.Quaternion)
IL_087D: ldloca.s 30 (UnityEngine.Vector3)
IL_087F: call static System.Boolean InstanceManager::GetPosition(InstanceID
id, UnityEngine.Vector3& position, UnityEngine.Quaternion& rotation,
UnityEngine.Vector3& size)
IL_0884: brtrue => Label85
IL_0889: ldarg.0
IL_088A: ldfld UnityEngine.Vector3 DefaultTool::m_mousePosition
IL_088F: stloc.s 28 (UnityEngine.Vector3)
IL_0891: Label85
IL_0891: call static UnityEngine.Camera UnityEngine.Camera::get_main()
IL_0896: ldloc.s 28 (UnityEngine.Vector3)
IL_0898: callvirt UnityEngine.Vector3
UnityEngine.Camera::WorldToScreenPoint(UnityEngine.Vector3 position)
IL_089D: stloc.s 31 (UnityEngine.Vector3)
IL_089F: ldloca.s 31 (UnityEngine.Vector3)
IL_08A1: call static System.Int32 UnityEngine.Screen::get_height()
IL_08A6: conv.r4
IL_08A7: ldloca.s 31 (UnityEngine.Vector3)
IL_08A9: ldfld System.Single UnityEngine.Vector3::y
IL_08AE: sub
IL_08AF: stfld System.Single UnityEngine.Vector3::y
IL_08B4: call static UnityEngine.Color UnityEngine.GUI::get_color()
IL_08B9: stloc.s 32 (UnityEngine.Color)
IL_08BB: call static UnityEngine.Color UnityEngine.Color::get_cyan()
IL_08C0: call static System.Void UnityEngine.GUI::set_color(UnityEngine.Color
value)
IL_08C5: ldloca.s 31 (UnityEngine.Vector3)
IL_08C7: ldfld System.Single UnityEngine.Vector3::x
IL_08CC: ldloca.s 31 (UnityEngine.Vector3)
IL_08CE: ldfld System.Single UnityEngine.Vector3::y
IL_08D3: ldc.r4 500
IL_08D8: ldc.r4 500
IL_08DD: newobj System.Void UnityEngine.Rect::.ctor(System.Single x,
System.Single y, System.Single width, System.Single height)
IL_08E2: ldloc.s 12 (System.String)
IL_08E4: call static UnityEngine.Color UnityEngine.Color::get_black()
IL_08E9: call static UnityEngine.Color UnityEngine.Color::get_cyan()
IL_08EE: call static UnityEngine.GUISkin UnityEngine.GUI::get_skin()
IL_08F3: callvirt UnityEngine.GUIStyle UnityEngine.GUISkin::get_label()
IL_08F8: ldc.r4 2
IL_08FD: 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_0902: ldloc.s 32 (UnityEngine.Color)
IL_0904: call static System.Void UnityEngine.GUI::set_color(UnityEngine.Color
value)
IL_0909: // end original
IL_0909: Label57
IL_0909: Label58
IL_0909: Label59
IL_0909: Label84
IL_0909: ret
DONE

### Patch: virtual System.Void DefaultTool::RenderOverlay(CameraInfo cameraInfo)


### Replacement: static System.Void DefaultTool::RenderOverlay_Patch0(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<PropManager>::get_instance()
IL_0079: ldfld Array16`1<PropInstance> PropManager::m_props
IL_007E: ldfld PropInstance[] Array16`1<PropInstance>::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<TreeManager>::get_instance()
IL_012C: ldfld Array32`1<TreeInstance> TreeManager::m_trees
IL_0131: ldfld TreeInstance[] Array32`1<TreeInstance>::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<BuildingManager>::get_instance()
IL_01E6: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01EB: ldfld Building[] Array16`1<Building>::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<DisasterManager>::get_instance()
IL_03A3: ldfld FastList`1<DisasterData> DisasterManager::m_disasters
IL_03A8: ldfld DisasterData[] FastList`1<DisasterData>::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<NetManager>::get_instance()
IL_04A6: stloc.s 24 (NetManager)
IL_04A8: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_04AD: stloc.s 25 (BuildingManager)
IL_04AF: ldloc.s 25 (BuildingManager)
IL_04B1: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_04B6: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_04F6: ldfld Building[] Array16`1<Building>::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<NetNode> NetManager::m_nodes
IL_0520: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_0543: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0562: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0582: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_05AA: ldfld NetNode[] Array16`1<NetNode>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_05F6: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0618: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0637: ldfld Building[] Array16`1<Building>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_0693: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06AD: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06C7: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06F2: ldfld Building[] Array16`1<Building>::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<NetNode> NetManager::m_nodes
IL_071C: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_073F: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_075E: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_077F: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_07A9: ldfld NetNode[] Array16`1<NetNode>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_07F5: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0817: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0831: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_084B: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0865: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0890: ldfld Building[] Array16`1<Building>::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<LogChannel>::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<NetManager>::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<RenderManager>::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<NetSegment> NetManager::m_segments
IL_09A8: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_09CC: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_09D1: ldloc.s 45 (NetManager)
IL_09D3: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_09D8: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_0A01: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A06: ldloc.s 45 (NetManager)
IL_0A08: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0A0D: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0A73: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0A92: ldfld NetSegment[] Array16`1<NetSegment>::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<ToolManager>::get_instance()
IL_0C1C: ldflda DrawCallData SimulationManagerBase`2<ToolManager,
ToolController>::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<RenderManager>::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<NetSegment> NetManager::m_segments
IL_0C75: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0C96: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0CF4: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0D18: ldfld NetSegment[] Array16`1<NetSegment>::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<TreeManager>::get_instance()
IL_0D40: stloc.s 67 (TreeManager)
IL_0D42: ldloc.s 67 (TreeManager)
IL_0D44: ldfld Array32`1<TreeInstance> TreeManager::m_trees
IL_0D49: ldfld TreeInstance[] Array32`1<TreeInstance>::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<TreeInstance> TreeManager::m_trees
IL_0D64: ldfld TreeInstance[] Array32`1<TreeInstance>::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<PropManager>::get_instance()
IL_0E07: stloc.s 75 (PropManager)
IL_0E09: ldloc.s 75 (PropManager)
IL_0E0B: ldfld Array16`1<PropInstance> PropManager::m_props
IL_0E10: ldfld PropInstance[] Array16`1<PropInstance>::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<PropInstance> PropManager::m_props
IL_0E2A: ldfld PropInstance[] Array16`1<PropInstance>::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<PropInstance> PropManager::m_props
IL_0E44: ldfld PropInstance[] Array16`1<PropInstance>::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<VehicleManager>::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<Vehicle> VehicleManager::m_vehicles
IL_0F0E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0F38: ldfld Vehicle[] Array16`1<Vehicle>::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<VehicleManager>::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<VehicleParked> VehicleManager::m_parkedVehicles
IL_0F87: ldfld VehicleParked[] Array16`1<VehicleParked>::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<VehicleParked> VehicleManager::m_parkedVehicles
IL_0FB1: ldfld VehicleParked[] Array16`1<VehicleParked>::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<CitizenManager>::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<CitizenInstance> CitizenManager::m_instances
IL_1000: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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<CitizenInstance> CitizenManager::m_instances
IL_102A: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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<InfoManager>::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<DistrictManager>::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<InfoManager>::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<DistrictManager>::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<DisasterManager>::get_instance()
IL_1129: stloc.s 104 (DisasterManager)
IL_112B: ldloc.s 104 (DisasterManager)
IL_112D: ldfld FastList`1<DisasterData> DisasterManager::m_disasters
IL_1132: ldfld DisasterData[] FastList`1<DisasterData>::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<DisasterData> DisasterManager::m_disasters
IL_114C: ldfld DisasterData[] FastList`1<DisasterData>::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<DisasterData> DisasterManager::m_disasters
IL_1166: ldfld DisasterData[] FastList`1<DisasterData>::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: ret
DONE

### Patch: System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen)


### Replacement: static System.Void
CitizenManager::ReleaseCitizen_Patch0(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<Citizen> CitizenManager::m_citizens
IL_0008: ldfld Citizen[] Array32`1<Citizen>::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: ret
DONE

### Patch: System.Void CitizenManager::ReleaseCitizenInstance(System.UInt16


instance)
### Replacement: static System.Void
CitizenManager::ReleaseCitizenInstance_Patch0(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<CitizenInstance> CitizenManager::m_instances
IL_0008: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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: ret
DONE

### Patch: static System.Void BuildingDecoration::LoadPaths(BuildingInfo info,


System.UInt16 buildingID, Building& data, System.Single elevation)
### Replacement: static System.Void
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<NetManager>::get_instance()
IL_0010: stloc.0
IL_0011: ldloc.0
IL_0012: ldfld FastList`1<System.UInt16> NetManager::m_tempNodeBuffer
IL_0017: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_001C: ldloc.0
IL_001D: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_0022: callvirt System.Void FastList`1<System.UInt16>::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<System.UInt16> 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<System.UInt16> 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<System.UInt16> 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<System.UInt16>::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<NodePosition> 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<NodePosition> 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<System.UInt16> NetManager::m_tempNodeBuffer
IL_022C: ldloc.s 9 (System.UInt16)
IL_022E: callvirt System.Void FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_0268: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_02AC: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16> 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<System.UInt16> 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<NodePosition> 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<NodePosition> 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<System.UInt16> NetManager::m_tempNodeBuffer
IL_056B: ldloc.s 20 (System.UInt16)
IL_056D: callvirt System.Void FastList`1<System.UInt16>::Add(System.UInt16 item)
IL_0572: ldloc.0
IL_0573: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_0578: ldloc.s 21 (System.UInt16)
IL_057A: callvirt System.Void FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_05B6: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_05FC: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_0646: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_067B: ldfld NetSegment[] Array16`1<NetSegment>::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<System.UInt16> NetManager::m_tempNodeBuffer
IL_06D4: ldfld System.UInt16[] FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_06E4: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_071D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_073E: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_075D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0788: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16> NetManager::m_tempNodeBuffer
IL_07C2: ldfld System.Int32 FastList`1<System.UInt16>::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<System.UInt16> NetManager::m_tempSegmentBuffer
IL_07DA: ldfld System.UInt16[] FastList`1<System.UInt16>::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<NetSegment> NetManager::m_segments
IL_07EA: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_080F: ldfld NetSegment[] Array16`1<NetSegment>::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<ToolManager>::get_instance()
IL_083B: ldfld ToolController SimulationManagerBase`2<ToolManager,
ToolController>::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<NetSegment> NetManager::m_segments
IL_0852: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0879: ldfld NetSegment[] Array16`1<NetSegment>::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<System.UInt16> NetManager::m_tempSegmentBuffer
IL_08A9: ldfld System.Int32 FastList`1<System.UInt16>::m_size
IL_08AE: blt => Label60
IL_08B3: ldloc.0
IL_08B4: ldfld FastList`1<System.UInt16> NetManager::m_tempNodeBuffer
IL_08B9: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_08BE: ldloc.0
IL_08BF: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_08C4: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_08C9: // end original
IL_08C9: Label0
IL_08C9: ret
DONE

### Harmony id=cgameworld.instantreturntodesktop, version=2.0.0.9, location=E:\


Games\data-0000000015990080
### Started from static HarmonyLib.Harmony
CitiesHarmony.Harmony1201SelfPatcher::CreateHarmony(System.Object
oldHarmonyInstance), location E:\Games\data-000000001475B980
### At 2022-11-05 01.33.22
### Patch: UnityEngine.Coroutine LoadingManager::QuitApplication()
### Replacement: static UnityEngine.Coroutine
LoadingManager::QuitApplication_Patch2(LoadingManager this)
IL_0000: Local var 0: UnityEngine.Coroutine
IL_0000: Local var 1: System.Boolean
IL_0000: ldnull
IL_0001: stloc 0 (UnityEngine.Coroutine)
IL_0005: ldc.i4 0
IL_000A: stloc 1 (System.Boolean)
IL_000E: ldc.i4.1
IL_000F: stloc 1 (System.Boolean)
IL_0013: ldloc 1 (System.Boolean)
IL_0017: brfalse.s => Label1
IL_0019: call static System.Boolean InstantReturnToDesktop.Patch::Prefix()
IL_001E: stloc 1 (System.Boolean)
IL_0022: nop
IL_0023: ldloc 1 (System.Boolean)
IL_0027: brfalse.s => Label2
IL_0029: call static System.Boolean InstantReturnToDesktop.Patch::Prefix()
IL_002E: stloc 1 (System.Boolean)
IL_0032: nop
IL_0033: ldloc 1 (System.Boolean)
IL_0037: brfalse => Label0
IL_003C: // start original
IL_003C: ldarg.0
IL_003D: volatile.
IL_003F: ldfld System.Boolean LoadingManager::m_applicationQuitting
IL_0044: brtrue => Label3
IL_0049: ldarg.0
IL_004A: ldfld LoadingWrapper LoadingManager::m_LoadingWrapper
IL_004F: brfalse => Label4
IL_0054: ldarg.0
IL_0055: ldfld LoadingWrapper LoadingManager::m_LoadingWrapper
IL_005A: callvirt System.Void LoadingWrapper::OnLevelUnloading()
IL_005F: Label4
IL_005F: ldarg.0
IL_0060: ldfld LoadingAnimation LoadingManager::m_loadingAnimation
IL_0065: ldc.i4.1
IL_0066: callvirt System.Void UnityEngine.Behaviour::set_enabled(System.Boolean
value)
IL_006B: ldarg.0
IL_006C: ldc.i4.1
IL_006D: volatile.
IL_006F: stfld System.Boolean LoadingManager::m_applicationQuitting
IL_0074: ldarg.0
IL_0075: ldarg.0
IL_0076: call System.Collections.IEnumerator
LoadingManager::QuitApplicationCoroutine()
IL_007B: call UnityEngine.Coroutine
UnityEngine.MonoBehaviour::StartCoroutine(System.Collections.IEnumerator routine)
IL_0080: br => Label5
IL_0085: Label3
IL_0085: ldnull
IL_0086: // end original
IL_0086: Label5
IL_0086: stloc 0 (UnityEngine.Coroutine)
IL_008A: Label0
IL_008A: ldloc 0 (UnityEngine.Coroutine)
IL_008E: ret
DONE

### Harmony id=de.viathinksoft.tmpe, version=2.0.1.0, location=E:\Games\data-


0000000016F5EE20, env/clr=2.0.50727.1433, platform=Win32NT,
ptrsize:runtime/env=8/Bits64, Windows
AccessTools.Method: Could not find method for type System.Exception and name
PrepForRemoting and parameters
### Started from System.Void TrafficManager.Patcher::Install(), location E:\Games\
data-0000000017B22040
### At 2022-11-05 01.41.09
### 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<Vehicle> VehicleManager::m_vehicles
IL_0042: ldloca.s 0 (System.UInt16)
IL_0044: ldarg.2
IL_0045: callvirt System.Boolean Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0066: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_007E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_009D: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_00C4: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_00E4: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_00FC: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0114: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_012C: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0144: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_015C: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0178: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0194: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_01B0: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_01CC: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_01E4: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_01FC: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0216: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_022E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0246: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_025E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0276: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_028E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_02A6: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_02BE: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_02D6: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_02EE: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0306: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_031E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0336: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_034E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0366: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_037E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0396: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_03AE: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_03C6: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_03DE: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_03F6: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_040E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_042E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_044D: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0452: ldarg.1
IL_0453: ldind.u2
IL_0454: ldelema Vehicle
IL_0459: ldarg.0
IL_045A: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_045F: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_047C: callvirt System.UInt32 Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0012: ldfld Vehicle[] Array16`1<Vehicle>::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<NetSegment> NetManager::m_segments
IL_0030: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0047: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_0006: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0021: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_00CD: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_00F3: ldfld NetSegment[] Array16`1<NetSegment>::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<LogChannel>::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 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.Int32
IL_0000: Local var 38: System.UInt16
IL_0000: Local var 39: RoadBaseAI/TrafficLightState
IL_0000: Local var 40: RoadBaseAI/TrafficLightState
IL_0000: Local var 41: UnityEngine.Vector3
IL_0000: Local var 42: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 42 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 42 (System.Boolean)
IL_000E: ldloc 42 (System.Boolean)
IL_0012: brfalse => Label1
IL_0017: ldnull
IL_0018: ldarg 0
IL_001C: ldarg 1
IL_0020: call static System.Boolean
TrafficManager.Patch._TrainTrackBase.LevelCrossingSimulationStepPatch::Prefix(Train
TrackBaseAI __instance, System.UInt16 nodeID, NetNode& data)
IL_0025: stloc 42 (System.Boolean)
IL_0029: Label1
IL_0029: nop
IL_002A: ldloc 42 (System.Boolean)
IL_002E: brfalse => Label0
IL_0033: // start original
IL_0033: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0038: stloc.0
IL_0039: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_003E: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0043: stloc.1
IL_0044: ldarg.1
IL_0045: ldfld System.Byte NetNode::m_maxWaitTime
IL_004A: ldc.i4.3
IL_004B: and
IL_004C: stloc.2
IL_004D: ldarg.1
IL_004E: ldfld System.Byte NetNode::m_maxWaitTime
IL_0053: ldc.i4.2
IL_0054: shr
IL_0055: ldc.i4.7
IL_0056: and
IL_0057: stloc.3
IL_0058: ldarg.1
IL_0059: ldfld System.Byte NetNode::m_maxWaitTime
IL_005E: ldc.i4.5
IL_005F: shr
IL_0060: stloc.s 4 (System.Int32)
IL_0062: ldc.i4.m1
IL_0063: stloc.s 5 (System.Int32)
IL_0065: ldc.i4.m1
IL_0066: stloc.s 6 (System.Int32)
IL_0068: ldc.i4.m1
IL_0069: stloc.s 7 (System.Int32)
IL_006B: ldc.i4.m1
IL_006C: stloc.s 8 (System.Int32)
IL_006E: ldc.i4.m1
IL_006F: stloc.s 9 (System.Int32)
IL_0071: ldc.i4.m1
IL_0072: stloc.s 10 (System.Int32)
IL_0074: ldc.i4.0
IL_0075: stloc.s 11 (System.Int32)
IL_0077: ldc.i4.0
IL_0078: stloc.s 12 (System.Int32)
IL_007A: ldc.i4.0
IL_007B: stloc.s 13 (System.Int32)
IL_007D: ldc.i4.0
IL_007E: stloc.s 14 (System.Int32)
IL_0080: ldc.i4.0
IL_0081: stloc.s 15 (System.Int32)
IL_0083: ldc.i4.0
IL_0084: stloc.s 16 (System.Int32)
IL_0086: br => Label2
IL_008B: Label24
IL_008B: ldarg.1
IL_008C: ldloc.s 16 (System.Int32)
IL_008E: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0093: stloc.s 17 (System.UInt16)
IL_0095: ldloc.s 17 (System.UInt16)
IL_0097: brfalse => Label3
IL_009C: ldc.i4.0
IL_009D: stloc.s 18 (System.Int32)
IL_009F: ldc.i4.0
IL_00A0: stloc.s 19 (System.Int32)
IL_00A2: ldloc.0
IL_00A3: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_00A8: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00AD: ldloc.s 17 (System.UInt16)
IL_00AF: ldelema NetSegment
IL_00B4: ldloc.s 17 (System.UInt16)
IL_00B6: ldc.i4.s 33
IL_00B8: ldc.i4 65601
IL_00BD: ldloca.s 18 (System.Int32)
IL_00BF: ldloca.s 19 (System.Int32)
IL_00C1: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_00C6: ldloc.0
IL_00C7: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_00CC: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00D1: ldloc.s 17 (System.UInt16)
IL_00D3: ldelema NetSegment
IL_00D8: ldfld System.UInt16 NetSegment::m_startNode
IL_00DD: ldarg.0
IL_00DE: ceq
IL_00E0: stloc.s 20 (System.Boolean)
IL_00E2: ldloc.s 20 (System.Boolean)
IL_00E4: brfalse => Label4
IL_00E9: ldloc.s 19 (System.Int32)
IL_00EB: ldc.i4.0
IL_00EC: ceq
IL_00EE: ldc.i4.0
IL_00EF: ceq
IL_00F1: br => Label5
IL_00F6: Label4
IL_00F6: ldloc.s 18 (System.Int32)
IL_00F8: ldc.i4.0
IL_00F9: ceq
IL_00FB: ldc.i4.0
IL_00FC: ceq
IL_00FE: Label5
IL_00FE: stloc.s 21 (System.Boolean)
IL_0100: ldloc.s 20 (System.Boolean)
IL_0102: brfalse => Label6
IL_0107: ldloc.s 18 (System.Int32)
IL_0109: ldc.i4.0
IL_010A: ceq
IL_010C: ldc.i4.0
IL_010D: ceq
IL_010F: br => Label7
IL_0114: Label6
IL_0114: ldloc.s 19 (System.Int32)
IL_0116: ldc.i4.0
IL_0117: ceq
IL_0119: ldc.i4.0
IL_011A: ceq
IL_011C: Label7
IL_011C: stloc.s 22 (System.Boolean)
IL_011E: ldloc.s 21 (System.Boolean)
IL_0120: brfalse => Label8
IL_0125: ldloc.s 11 (System.Int32)
IL_0127: ldc.i4.1
IL_0128: ldloc.s 16 (System.Int32)
IL_012A: ldc.i4.s 31
IL_012C: and
IL_012D: shl
IL_012E: or
IL_012F: stloc.s 11 (System.Int32)
IL_0131: Label8
IL_0131: ldloc.s 22 (System.Boolean)
IL_0133: brfalse => Label9
IL_0138: ldloc.s 12 (System.Int32)
IL_013A: ldc.i4.1
IL_013B: ldloc.s 16 (System.Int32)
IL_013D: ldc.i4.s 31
IL_013F: and
IL_0140: shl
IL_0141: or
IL_0142: stloc.s 12 (System.Int32)
IL_0144: ldloc.s 14 (System.Int32)
IL_0146: ldc.i4.1
IL_0147: add
IL_0148: stloc.s 14 (System.Int32)
IL_014A: Label9
IL_014A: ldarg.0
IL_014B: ldloc.0
IL_014C: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0151: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0156: ldloc.s 17 (System.UInt16)
IL_0158: ldelema NetSegment
IL_015D: ldloc.1
IL_015E: ldc.i4 256
IL_0163: sub
IL_0164: ldloca.s 23 (RoadBaseAI+TrafficLightState)
IL_0166: ldloca.s 24 (RoadBaseAI+TrafficLightState)
IL_0168: ldloca.s 25 (System.Boolean)
IL_016A: ldloca.s 26 (System.Boolean)
IL_016C: 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_0171: ldloc.s 24 (RoadBaseAI+TrafficLightState)
IL_0173: ldc.i4.2
IL_0174: and
IL_0175: brfalse => Label10
IL_017A: ldloc.s 26 (System.Boolean)
IL_017C: brfalse => Label11
IL_0181: ldloc.s 8 (System.Int32)
IL_0183: ldc.i4.m1
IL_0184: bne.un => Label12
IL_0189: ldloc.s 16 (System.Int32)
IL_018B: stloc.s 8 (System.Int32)
IL_018D: Label12
IL_018D: ldloc.s 10 (System.Int32)
IL_018F: ldc.i4.m1
IL_0190: bne.un => Label13
IL_0195: ldloc.s 15 (System.Int32)
IL_0197: ldloc.s 4 (System.Int32)
IL_0199: blt => Label14
IL_019E: ldloc.s 16 (System.Int32)
IL_01A0: stloc.s 10 (System.Int32)
IL_01A2: Label10
IL_01A2: Label11
IL_01A2: Label13
IL_01A2: Label14
IL_01A2: ldloc.s 15 (System.Int32)
IL_01A4: ldc.i4.1
IL_01A5: add
IL_01A6: stloc.s 15 (System.Int32)
IL_01A8: ldloc.s 21 (System.Boolean)
IL_01AA: brtrue => Label15
IL_01AF: ldloc.s 25 (System.Boolean)
IL_01B1: brfalse => Label16
IL_01B6: Label15
IL_01B6: ldloc.s 23 (RoadBaseAI+TrafficLightState)
IL_01B8: ldc.i4.2
IL_01B9: and
IL_01BA: brtrue => Label17
IL_01BF: ldloc.s 16 (System.Int32)
IL_01C1: stloc.s 6 (System.Int32)
IL_01C3: ldloc.s 25 (System.Boolean)
IL_01C5: brfalse => Label18
IL_01CA: ldloc.s 16 (System.Int32)
IL_01CC: stloc.s 5 (System.Int32)
IL_01CE: Label18
IL_01CE: br => Label19
IL_01D3: Label17
IL_01D3: ldloc.s 25 (System.Boolean)
IL_01D5: brfalse => Label20
IL_01DA: ldloc.s 7 (System.Int32)
IL_01DC: ldc.i4.m1
IL_01DD: bne.un => Label21
IL_01E2: ldloc.s 16 (System.Int32)
IL_01E4: stloc.s 7 (System.Int32)
IL_01E6: Label21
IL_01E6: ldloc.s 9 (System.Int32)
IL_01E8: ldc.i4.m1
IL_01E9: bne.un => Label22
IL_01EE: ldloc.s 13 (System.Int32)
IL_01F0: ldloc.3
IL_01F1: blt => Label23
IL_01F6: ldloc.s 16 (System.Int32)
IL_01F8: stloc.s 9 (System.Int32)
IL_01FA: Label19
IL_01FA: Label20
IL_01FA: Label22
IL_01FA: Label23
IL_01FA: ldloc.s 13 (System.Int32)
IL_01FC: ldc.i4.1
IL_01FD: add
IL_01FE: stloc.s 13 (System.Int32)
IL_0200: Label3
IL_0200: Label16
IL_0200: ldloc.s 16 (System.Int32)
IL_0202: ldc.i4.1
IL_0203: add
IL_0204: stloc.s 16 (System.Int32)
IL_0206: Label2
IL_0206: ldloc.s 16 (System.Int32)
IL_0208: ldc.i4.8
IL_0209: blt => Label24
IL_020E: ldloc.s 9 (System.Int32)
IL_0210: ldc.i4.m1
IL_0211: bne.un => Label25
IL_0216: ldloc.s 7 (System.Int32)
IL_0218: stloc.s 9 (System.Int32)
IL_021A: Label25
IL_021A: ldloc.s 10 (System.Int32)
IL_021C: ldc.i4.m1
IL_021D: bne.un => Label26
IL_0222: ldloc.s 8 (System.Int32)
IL_0224: stloc.s 10 (System.Int32)
IL_0226: Label26
IL_0226: ldloc.s 6 (System.Int32)
IL_0228: ldc.i4.m1
IL_0229: beq => Label27
IL_022E: ldloc.s 5 (System.Int32)
IL_0230: ldc.i4.m1
IL_0231: beq => Label28
IL_0236: ldloc.2
IL_0237: ldc.i4.1
IL_0238: bgt => Label29
IL_023D: ldc.i4.m1
IL_023E: stloc.s 9 (System.Int32)
IL_0240: ldc.i4.m1
IL_0241: stloc.s 10 (System.Int32)
IL_0243: ldloc.2
IL_0244: ldc.i4.1
IL_0245: add
IL_0246: stloc.2
IL_0247: Label27
IL_0247: Label28
IL_0247: Label29
IL_0247: ldloc.s 10 (System.Int32)
IL_0249: ldc.i4.m1
IL_024A: beq => Label30
IL_024F: ldloc.s 9 (System.Int32)
IL_0251: ldc.i4.m1
IL_0252: beq => Label31
IL_0257: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_025C: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0261: ldc.i4.3
IL_0262: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0267: brfalse => Label32
IL_026C: ldc.i4.m1
IL_026D: stloc.s 10 (System.Int32)
IL_026F: Label30
IL_026F: Label31
IL_026F: Label32
IL_026F: ldloc.s 9 (System.Int32)
IL_0271: ldc.i4.m1
IL_0272: beq => Label33
IL_0277: ldloc.s 9 (System.Int32)
IL_0279: stloc.s 6 (System.Int32)
IL_027B: Label33
IL_027B: ldloc.s 10 (System.Int32)
IL_027D: ldloc.s 6 (System.Int32)
IL_027F: bne.un => Label34
IL_0284: ldc.i4.m1
IL_0285: stloc.s 6 (System.Int32)
IL_0287: Label34
IL_0287: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_028C: stloc.s 27 (UnityEngine.Vector3)
IL_028E: ldloc.s 10 (System.Int32)
IL_0290: ldc.i4.m1
IL_0291: beq => Label35
IL_0296: ldarg.1
IL_0297: ldloc.s 10 (System.Int32)
IL_0299: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_029E: stloc.s 28 (System.UInt16)
IL_02A0: ldloc.0
IL_02A1: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02A6: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02AB: ldloc.s 28 (System.UInt16)
IL_02AD: ldelema NetSegment
IL_02B2: ldarg.0
IL_02B3: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_02B8: stloc.s 27 (UnityEngine.Vector3)
IL_02BA: ldloc.s 6 (System.Int32)
IL_02BC: ldc.i4.m1
IL_02BD: beq => Label36
IL_02C2: ldarg.1
IL_02C3: ldloc.s 6 (System.Int32)
IL_02C5: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_02CA: stloc.s 28 (System.UInt16)
IL_02CC: ldloc.0
IL_02CD: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02D2: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02D7: ldloc.s 28 (System.UInt16)
IL_02D9: ldelema NetSegment
IL_02DE: ldarg.0
IL_02DF: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_02E4: stloc.s 29 (UnityEngine.Vector3)
IL_02E6: ldloca.s 29 (UnityEngine.Vector3)
IL_02E8: ldfld System.Single UnityEngine.Vector3::x
IL_02ED: ldloca.s 27 (UnityEngine.Vector3)
IL_02EF: ldfld System.Single UnityEngine.Vector3::x
IL_02F4: mul
IL_02F5: ldloca.s 29 (UnityEngine.Vector3)
IL_02F7: ldfld System.Single UnityEngine.Vector3::z
IL_02FC: ldloca.s 27 (UnityEngine.Vector3)
IL_02FE: ldfld System.Single UnityEngine.Vector3::z
IL_0303: mul
IL_0304: add
IL_0305: ldc.r4 -0.5
IL_030A: bge.un => Label37
IL_030F: ldc.i4.m1
IL_0310: stloc.s 6 (System.Int32)
IL_0312: Label36
IL_0312: Label37
IL_0312: ldloc.s 6 (System.Int32)
IL_0314: ldc.i4.m1
IL_0315: bne.un => Label38
IL_031A: ldc.i4.0
IL_031B: stloc.s 30 (System.Int32)
IL_031D: br => Label39
IL_0322: Label45
IL_0322: ldloc.s 30 (System.Int32)
IL_0324: ldloc.s 10 (System.Int32)
IL_0326: beq => Label40
IL_032B: ldloc.s 11 (System.Int32)
IL_032D: ldc.i4.1
IL_032E: ldloc.s 30 (System.Int32)
IL_0330: ldc.i4.s 31
IL_0332: and
IL_0333: shl
IL_0334: and
IL_0335: brfalse => Label41
IL_033A: ldarg.1
IL_033B: ldloc.s 30 (System.Int32)
IL_033D: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0342: stloc.s 28 (System.UInt16)
IL_0344: ldloc.s 28 (System.UInt16)
IL_0346: brfalse => Label42
IL_034B: ldloc.0
IL_034C: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0351: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0356: ldloc.s 28 (System.UInt16)
IL_0358: ldelema NetSegment
IL_035D: ldarg.0
IL_035E: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0363: stloc.s 31 (UnityEngine.Vector3)
IL_0365: ldloca.s 31 (UnityEngine.Vector3)
IL_0367: ldfld System.Single UnityEngine.Vector3::x
IL_036C: ldloca.s 27 (UnityEngine.Vector3)
IL_036E: ldfld System.Single UnityEngine.Vector3::x
IL_0373: mul
IL_0374: ldloca.s 31 (UnityEngine.Vector3)
IL_0376: ldfld System.Single UnityEngine.Vector3::z
IL_037B: ldloca.s 27 (UnityEngine.Vector3)
IL_037D: ldfld System.Single UnityEngine.Vector3::z
IL_0382: mul
IL_0383: add
IL_0384: ldc.r4 -0.5
IL_0389: blt.un => Label43
IL_038E: ldloc.s 30 (System.Int32)
IL_0390: stloc.s 6 (System.Int32)
IL_0392: br => Label44
IL_0397: Label40
IL_0397: Label41
IL_0397: Label42
IL_0397: Label43
IL_0397: ldloc.s 30 (System.Int32)
IL_0399: ldc.i4.1
IL_039A: add
IL_039B: stloc.s 30 (System.Int32)
IL_039D: Label39
IL_039D: ldloc.s 30 (System.Int32)
IL_039F: ldc.i4.8
IL_03A0: blt => Label45
IL_03A5: Label35
IL_03A5: Label38
IL_03A5: Label44
IL_03A5: ldc.i4.m1
IL_03A6: stloc.s 32 (System.Int32)
IL_03A8: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_03AD: stloc.s 33 (UnityEngine.Vector3)
IL_03AF: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_03B4: stloc.s 34 (UnityEngine.Vector3)
IL_03B6: ldloc.s 6 (System.Int32)
IL_03B8: ldc.i4.m1
IL_03B9: beq => Label46
IL_03BE: ldarg.1
IL_03BF: ldloc.s 6 (System.Int32)
IL_03C1: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_03C6: stloc.s 35 (System.UInt16)
IL_03C8: ldloc.0
IL_03C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_03CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_03D3: ldloc.s 35 (System.UInt16)
IL_03D5: ldelema NetSegment
IL_03DA: ldarg.0
IL_03DB: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_03E0: stloc.s 33 (UnityEngine.Vector3)
IL_03E2: ldloc.s 11 (System.Int32)
IL_03E4: ldloc.s 12 (System.Int32)
IL_03E6: and
IL_03E7: ldc.i4.1
IL_03E8: ldloc.s 6 (System.Int32)
IL_03EA: ldc.i4.s 31
IL_03EC: and
IL_03ED: shl
IL_03EE: and
IL_03EF: brfalse => Label47
IL_03F4: ldc.i4.0
IL_03F5: stloc.s 36 (System.Int32)
IL_03F7: br => Label48
IL_03FC: Label59
IL_03FC: ldloc.s 36 (System.Int32)
IL_03FE: ldloc.s 6 (System.Int32)
IL_0400: beq => Label49
IL_0405: ldloc.s 36 (System.Int32)
IL_0407: ldloc.s 10 (System.Int32)
IL_0409: beq => Label50
IL_040E: ldloc.s 11 (System.Int32)
IL_0410: ldloc.s 12 (System.Int32)
IL_0412: and
IL_0413: ldc.i4.1
IL_0414: ldloc.s 36 (System.Int32)
IL_0416: ldc.i4.s 31
IL_0418: and
IL_0419: shl
IL_041A: and
IL_041B: brfalse => Label51
IL_0420: ldarg.1
IL_0421: ldloc.s 36 (System.Int32)
IL_0423: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0428: stloc.s 35 (System.UInt16)
IL_042A: ldloc.s 35 (System.UInt16)
IL_042C: brfalse => Label52
IL_0431: ldloc.0
IL_0432: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0437: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_043C: ldloc.s 35 (System.UInt16)
IL_043E: ldelema NetSegment
IL_0443: ldarg.0
IL_0444: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0449: stloc.s 34 (UnityEngine.Vector3)
IL_044B: ldloc.s 10 (System.Int32)
IL_044D: ldc.i4.m1
IL_044E: beq => Label53
IL_0453: ldloca.s 34 (UnityEngine.Vector3)
IL_0455: ldfld System.Single UnityEngine.Vector3::x
IL_045A: ldloca.s 27 (UnityEngine.Vector3)
IL_045C: ldfld System.Single UnityEngine.Vector3::x
IL_0461: mul
IL_0462: ldloca.s 34 (UnityEngine.Vector3)
IL_0464: ldfld System.Single UnityEngine.Vector3::z
IL_0469: ldloca.s 27 (UnityEngine.Vector3)
IL_046B: ldfld System.Single UnityEngine.Vector3::z
IL_0470: mul
IL_0471: add
IL_0472: ldc.r4 -0.5
IL_0477: blt.un => Label54
IL_047C: Label53
IL_047C: ldloc.s 14 (System.Int32)
IL_047E: ldc.i4.2
IL_047F: bne.un => Label55
IL_0484: ldloc.s 36 (System.Int32)
IL_0486: stloc.s 32 (System.Int32)
IL_0488: br => Label56
IL_048D: Label55
IL_048D: ldloca.s 34 (UnityEngine.Vector3)
IL_048F: ldfld System.Single UnityEngine.Vector3::x
IL_0494: ldloca.s 33 (UnityEngine.Vector3)
IL_0496: ldfld System.Single UnityEngine.Vector3::x
IL_049B: mul
IL_049C: ldloca.s 34 (UnityEngine.Vector3)
IL_049E: ldfld System.Single UnityEngine.Vector3::z
IL_04A3: ldloca.s 33 (UnityEngine.Vector3)
IL_04A5: ldfld System.Single UnityEngine.Vector3::z
IL_04AA: mul
IL_04AB: add
IL_04AC: ldc.r4 -0.9396926
IL_04B1: bge.un => Label57
IL_04B6: ldloc.s 36 (System.Int32)
IL_04B8: stloc.s 32 (System.Int32)
IL_04BA: br => Label58
IL_04BF: Label49
IL_04BF: Label50
IL_04BF: Label51
IL_04BF: Label52
IL_04BF: Label54
IL_04BF: Label57
IL_04BF: ldloc.s 36 (System.Int32)
IL_04C1: ldc.i4.1
IL_04C2: add
IL_04C3: stloc.s 36 (System.Int32)
IL_04C5: Label48
IL_04C5: ldloc.s 36 (System.Int32)
IL_04C7: ldc.i4.8
IL_04C8: blt => Label59
IL_04CD: Label46
IL_04CD: Label47
IL_04CD: Label56
IL_04CD: Label58
IL_04CD: ldc.i4.0
IL_04CE: stloc.s 37 (System.Int32)
IL_04D0: br => Label60
IL_04D5: Label79
IL_04D5: ldarg.1
IL_04D6: ldloc.s 37 (System.Int32)
IL_04D8: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_04DD: stloc.s 38 (System.UInt16)
IL_04DF: ldloc.s 38 (System.UInt16)
IL_04E1: brfalse => Label61
IL_04E6: ldarg.0
IL_04E7: ldloc.0
IL_04E8: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_04ED: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_04F2: ldloc.s 38 (System.UInt16)
IL_04F4: ldelema NetSegment
IL_04F9: ldloc.1
IL_04FA: ldc.i4 256
IL_04FF: sub
IL_0500: ldloca.s 39 (RoadBaseAI+TrafficLightState)
IL_0502: ldloca.s 40 (RoadBaseAI+TrafficLightState)
IL_0504: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_0509: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_050B: ldc.i4.s -2
IL_050D: and
IL_050E: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0510: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0512: ldc.i4.s -2
IL_0514: and
IL_0515: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0517: ldloc.s 6 (System.Int32)
IL_0519: ldloc.s 37 (System.Int32)
IL_051B: beq => Label62
IL_0520: ldloc.s 32 (System.Int32)
IL_0522: ldloc.s 37 (System.Int32)
IL_0524: bne.un => Label63
IL_0529: Label62
IL_0529: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_052B: ldc.i4.2
IL_052C: and
IL_052D: brfalse => Label64
IL_0532: ldc.i4.1
IL_0533: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0535: ldc.i4.0
IL_0536: stloc.2
IL_0537: ldloc.3
IL_0538: ldc.i4.1
IL_0539: add
IL_053A: dup
IL_053B: stloc.3
IL_053C: ldloc.s 13 (System.Int32)
IL_053E: blt => Label65
IL_0543: ldc.i4.0
IL_0544: stloc.3
IL_0545: Label64
IL_0545: Label65
IL_0545: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0547: ldc.i4.2
IL_0548: and
IL_0549: brtrue => Label66
IL_054E: ldc.i4.3
IL_054F: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0551: Label66
IL_0551: br => Label67
IL_0556: Label63
IL_0556: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0558: ldc.i4.2
IL_0559: and
IL_055A: brtrue => Label68
IL_055F: ldc.i4.3
IL_0560: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0562: Label68
IL_0562: ldloc.0
IL_0563: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0568: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_056D: ldloc.s 38 (System.UInt16)
IL_056F: ldelema NetSegment
IL_0574: ldarg.0
IL_0575: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_057A: stloc.s 41 (UnityEngine.Vector3)
IL_057C: ldloc.s 12 (System.Int32)
IL_057E: ldc.i4.1
IL_057F: ldloc.s 37 (System.Int32)
IL_0581: ldc.i4.s 31
IL_0583: and
IL_0584: shl
IL_0585: and
IL_0586: brfalse => Label69
IL_058B: ldloc.s 10 (System.Int32)
IL_058D: ldloc.s 37 (System.Int32)
IL_058F: beq => Label70
IL_0594: ldloc.s 6 (System.Int32)
IL_0596: ldc.i4.m1
IL_0597: beq => Label71
IL_059C: ldloca.s 41 (UnityEngine.Vector3)
IL_059E: ldfld System.Single UnityEngine.Vector3::x
IL_05A3: ldloca.s 33 (UnityEngine.Vector3)
IL_05A5: ldfld System.Single UnityEngine.Vector3::x
IL_05AA: mul
IL_05AB: ldloca.s 41 (UnityEngine.Vector3)
IL_05AD: ldfld System.Single UnityEngine.Vector3::z
IL_05B2: ldloca.s 33 (UnityEngine.Vector3)
IL_05B4: ldfld System.Single UnityEngine.Vector3::z
IL_05B9: mul
IL_05BA: add
IL_05BB: ldc.r4 -0.5
IL_05C0: blt => Label72
IL_05C5: Label71
IL_05C5: ldloc.s 32 (System.Int32)
IL_05C7: ldc.i4.m1
IL_05C8: beq => Label73
IL_05CD: ldloca.s 41 (UnityEngine.Vector3)
IL_05CF: ldfld System.Single UnityEngine.Vector3::x
IL_05D4: ldloca.s 34 (UnityEngine.Vector3)
IL_05D6: ldfld System.Single UnityEngine.Vector3::x
IL_05DB: mul
IL_05DC: ldloca.s 41 (UnityEngine.Vector3)
IL_05DE: ldfld System.Single UnityEngine.Vector3::z
IL_05E3: ldloca.s 34 (UnityEngine.Vector3)
IL_05E5: ldfld System.Single UnityEngine.Vector3::z
IL_05EA: mul
IL_05EB: add
IL_05EC: ldc.r4 -0.5
IL_05F1: bge.un => Label74
IL_05F6: Label72
IL_05F6: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05F8: ldc.i4.2
IL_05F9: and
IL_05FA: brtrue => Label75
IL_05FF: ldc.i4.3
IL_0600: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0602: Label75
IL_0602: br => Label76
IL_0607: Label69
IL_0607: Label70
IL_0607: Label73
IL_0607: Label74
IL_0607: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0609: ldc.i4.2
IL_060A: and
IL_060B: brfalse => Label77
IL_0610: ldc.i4.1
IL_0611: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0613: ldloc.s 4 (System.Int32)
IL_0615: ldc.i4.1
IL_0616: add
IL_0617: dup
IL_0618: stloc.s 4 (System.Int32)
IL_061A: ldloc.s 15 (System.Int32)
IL_061C: blt => Label78
IL_0621: ldc.i4.0
IL_0622: stloc.s 4 (System.Int32)
IL_0624: Label67
IL_0624: Label76
IL_0624: Label77
IL_0624: Label78
IL_0624: ldarg.0
IL_0625: ldloc.0
IL_0626: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_062B: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0630: ldloc.s 38 (System.UInt16)
IL_0632: ldelema NetSegment
IL_0637: ldloc.1
IL_0638: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_063A: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_063C: ldc.i4.0
IL_063D: ldc.i4.0
IL_063E: 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_0643: Label61
IL_0643: ldloc.s 37 (System.Int32)
IL_0645: ldc.i4.1
IL_0646: add
IL_0647: stloc.s 37 (System.Int32)
IL_0649: Label60
IL_0649: ldloc.s 37 (System.Int32)
IL_064B: ldc.i4.8
IL_064C: blt => Label79
IL_0651: ldarg.1
IL_0652: ldloc.s 4 (System.Int32)
IL_0654: ldc.i4.5
IL_0655: shl
IL_0656: ldloc.3
IL_0657: ldc.i4.2
IL_0658: shl
IL_0659: or
IL_065A: ldloc.2
IL_065B: or
IL_065C: conv.u1
IL_065D: stfld System.Byte NetNode::m_maxWaitTime
IL_0662: // end original
IL_0662: Label0
IL_0662: ret
DONE

### Patch: static System.Void RoadBaseAI::GetTrafficLightNodeState(System.UInt16


nodeID, NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData, Flags&
flags, UnityEngine.Color& color)
### Replacement: static System.Void
RoadBaseAI::RoadBaseAI.GetTrafficLightNodeState_Patch1(System.UInt16 nodeID,
NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData, Flags& 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.UInt1
6 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<SimulationManager>::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/Problem
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 Problem NetNode::m_problems
IL_000E: ldc.i8 72057602627866624
IL_0017: call static Problem Notification::RemoveProblems(Problem problems1,
Problem problems2)
IL_001C: stloc.0
IL_001D: ldc.i4.0
IL_001E: stloc.1
IL_001F: ldc.i4.0
IL_0020: stloc.2
IL_0021: ldarg.2
IL_0022: ldarg.1
IL_0023: ldc.i4.0
IL_0024: ldc.i4.s 33
IL_0026: ldc.i4.1
IL_0027: ldc.i4.1
IL_0028: ldloca.s 1 (System.Int32)
IL_002A: ldloca.s 2 (System.Int32)
IL_002C: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, LaneType laneTypes, VehicleType vehicleTypes,
System.Boolean onePerSegment, System.Int32& forward, System.Int32& backward)
IL_0031: ldarg.2
IL_0032: ldfld Flags NetNode::m_flags
IL_0037: ldc.i4 1024
IL_003C: and
IL_003D: brfalse => Label0
IL_0042: ldarg.2
IL_0043: ldfld System.UInt16 NetNode::m_building
IL_0048: brfalse => Label1
IL_004D: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0052: stloc.3
IL_0053: ldloc.1
IL_0054: brfalse => Label2
IL_0059: ldloc.3
IL_005A: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_005F: ldfld Building[] Array16`1<Building>::m_buffer
IL_0064: ldarg.2
IL_0065: ldfld System.UInt16 NetNode::m_building
IL_006A: ldelema Building
IL_006F: dup
IL_0070: ldfld Flags Building::m_flags
IL_0075: ldc.i4 128
IL_007A: or
IL_007B: stfld Flags Building::m_flags
IL_0080: br => Label3
IL_0085: Label2
IL_0085: ldloc.3
IL_0086: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008B: ldfld Building[] Array16`1<Building>::m_buffer
IL_0090: ldarg.2
IL_0091: ldfld System.UInt16 NetNode::m_building
IL_0096: ldelema Building
IL_009B: dup
IL_009C: ldfld Flags Building::m_flags
IL_00A1: ldc.i4 -129
IL_00A6: and
IL_00A7: stfld Flags Building::m_flags
IL_00AC: Label3
IL_00AC: ldloc.2
IL_00AD: brfalse => Label4
IL_00B2: ldloc.3
IL_00B3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00B8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00BD: ldarg.2
IL_00BE: ldfld System.UInt16 NetNode::m_building
IL_00C3: ldelema Building
IL_00C8: dup
IL_00C9: ldfld Flags Building::m_flags
IL_00CE: ldc.i4.s 64
IL_00D0: or
IL_00D1: stfld Flags Building::m_flags
IL_00D6: br => Label5
IL_00DB: Label4
IL_00DB: ldloc.3
IL_00DC: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00E1: ldfld Building[] Array16`1<Building>::m_buffer
IL_00E6: ldarg.2
IL_00E7: ldfld System.UInt16 NetNode::m_building
IL_00EC: ldelema Building
IL_00F1: dup
IL_00F2: ldfld Flags Building::m_flags
IL_00F7: ldc.i4.s -65
IL_00F9: and
IL_00FA: stfld Flags Building::m_flags
IL_00FF: Label5
IL_00FF: br => Label6
IL_0104: Label0
IL_0104: Label1
IL_0104: ldloc.1
IL_0105: brfalse => Label7
IL_010A: ldloc.2
IL_010B: brfalse => Label8
IL_0110: Label7
IL_0110: ldloc.1
IL_0111: brtrue => Label9
IL_0116: ldloc.2
IL_0117: brfalse => Label10
IL_011C: Label8
IL_011C: ldloc.0
IL_011D: ldc.i4 4096
IL_0122: conv.i8
IL_0123: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0128: stloc.0
IL_0129: Label6
IL_0129: Label9
IL_0129: Label10
IL_0129: ldloc.1
IL_012A: ldc.i4.1
IL_012B: bne.un => Label11
IL_0130: ldarg.2
IL_0131: dup
IL_0132: ldfld Flags NetNode::m_flags
IL_0137: ldc.i4 4194304
IL_013C: or
IL_013D: stfld Flags NetNode::m_flags
IL_0142: br => Label12
IL_0147: Label11
IL_0147: ldarg.2
IL_0148: dup
IL_0149: ldfld Flags NetNode::m_flags
IL_014E: ldc.i4 -4194305
IL_0153: and
IL_0154: stfld Flags NetNode::m_flags
IL_0159: Label12
IL_0159: ldloc.2
IL_015A: ldc.i4.1
IL_015B: bne.un => Label13
IL_0160: ldarg.2
IL_0161: dup
IL_0162: ldfld Flags NetNode::m_flags
IL_0167: ldc.i4 16777216
IL_016C: or
IL_016D: stfld Flags NetNode::m_flags
IL_0172: br => Label14
IL_0177: Label13
IL_0177: ldarg.2
IL_0178: dup
IL_0179: ldfld Flags NetNode::m_flags
IL_017E: ldc.i4 -16777217
IL_0183: and
IL_0184: stfld Flags NetNode::m_flags
IL_0189: Label14
IL_0189: ldarg.2
IL_018A: ldfld Flags NetNode::m_flags
IL_018F: ldc.i4 262144
IL_0194: and
IL_0195: brtrue => Label15
IL_019A: ldc.i4.0
IL_019B: stloc.s 4 (System.Int32)
IL_019D: ldc.i4.0
IL_019E: stloc.1
IL_019F: ldc.i4.0
IL_01A0: stloc.2
IL_01A1: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_01A6: stloc.s 5 (NetManager)
IL_01A8: ldc.i4.0
IL_01A9: stloc.s 6 (System.Int32)
IL_01AB: br => Label16
IL_01B0: Label24
IL_01B0: ldarg.2
IL_01B1: ldloc.s 6 (System.Int32)
IL_01B3: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_01B8: stloc.s 7 (System.UInt16)
IL_01BA: ldloc.s 7 (System.UInt16)
IL_01BC: brfalse => Label17
IL_01C1: ldc.i4.0
IL_01C2: stloc.s 8 (System.Int32)
IL_01C4: ldc.i4.0
IL_01C5: stloc.s 9 (System.Int32)
IL_01C7: ldloc.s 5 (NetManager)
IL_01C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01D3: ldloc.s 7 (System.UInt16)
IL_01D5: ldelema NetSegment
IL_01DA: ldloc.s 7 (System.UInt16)
IL_01DC: ldc.i4.s 33
IL_01DE: ldc.i4.s 64
IL_01E0: ldloca.s 8 (System.Int32)
IL_01E2: ldloca.s 9 (System.Int32)
IL_01E4: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_01E9: ldloc.s 8 (System.Int32)
IL_01EB: brtrue => Label18
IL_01F0: ldloc.s 9 (System.Int32)
IL_01F2: brfalse => Label19
IL_01F7: Label18
IL_01F7: ldloc.s 4 (System.Int32)
IL_01F9: ldc.i4.1
IL_01FA: add
IL_01FB: stloc.s 4 (System.Int32)
IL_01FD: ldloc.s 8 (System.Int32)
IL_01FF: brfalse => Label20
IL_0204: ldc.i4.1
IL_0205: stloc.s 8 (System.Int32)
IL_0207: Label20
IL_0207: ldloc.s 9 (System.Int32)
IL_0209: brfalse => Label21
IL_020E: ldc.i4.1
IL_020F: stloc.s 9 (System.Int32)
IL_0211: Label21
IL_0211: ldloc.s 5 (NetManager)
IL_0213: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0218: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_021D: ldloc.s 7 (System.UInt16)
IL_021F: ldelema NetSegment
IL_0224: ldfld System.UInt16 NetSegment::m_endNode
IL_0229: ldarg.1
IL_022A: bne.un => Label22
IL_022F: ldloc.1
IL_0230: ldloc.s 9 (System.Int32)
IL_0232: add
IL_0233: stloc.1
IL_0234: ldloc.2
IL_0235: ldloc.s 8 (System.Int32)
IL_0237: add
IL_0238: stloc.2
IL_0239: br => Label23
IL_023E: Label22
IL_023E: ldloc.1
IL_023F: ldloc.s 8 (System.Int32)
IL_0241: add
IL_0242: stloc.1
IL_0243: ldloc.2
IL_0244: ldloc.s 9 (System.Int32)
IL_0246: add
IL_0247: stloc.2
IL_0248: Label17
IL_0248: Label19
IL_0248: Label23
IL_0248: ldloc.s 6 (System.Int32)
IL_024A: ldc.i4.1
IL_024B: add
IL_024C: stloc.s 6 (System.Int32)
IL_024E: Label16
IL_024E: ldloc.s 6 (System.Int32)
IL_0250: ldc.i4.8
IL_0251: blt => Label24
IL_0256: ldloc.1
IL_0257: brfalse => Label25
IL_025C: ldloc.2
IL_025D: brfalse => Label26
IL_0262: Label25
IL_0262: ldloc.1
IL_0263: brtrue => Label27
IL_0268: ldloc.2
IL_0269: brtrue => Label28
IL_026E: Label27
IL_026E: ldloc.s 4 (System.Int32)
IL_0270: ldc.i4.1
IL_0271: bne.un => Label29
IL_0276: Label26
IL_0276: Label28
IL_0276: ldloc.0
IL_0277: ldc.i8 8589934592
IL_0280: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0285: stloc.0
IL_0286: Label29
IL_0286: ldc.i4.0
IL_0287: stloc.s 4 (System.Int32)
IL_0289: ldc.i4.0
IL_028A: stloc.1
IL_028B: ldc.i4.0
IL_028C: stloc.2
IL_028D: ldc.i4.0
IL_028E: stloc.s 10 (System.Int32)
IL_0290: br => Label30
IL_0295: Label38
IL_0295: ldarg.2
IL_0296: ldloc.s 10 (System.Int32)
IL_0298: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_029D: stloc.s 11 (System.UInt16)
IL_029F: ldloc.s 11 (System.UInt16)
IL_02A1: brfalse => Label31
IL_02A6: ldc.i4.0
IL_02A7: stloc.s 12 (System.Int32)
IL_02A9: ldc.i4.0
IL_02AA: stloc.s 13 (System.Int32)
IL_02AC: ldloc.s 5 (NetManager)
IL_02AE: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02B3: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02B8: ldloc.s 11 (System.UInt16)
IL_02BA: ldelema NetSegment
IL_02BF: ldloc.s 11 (System.UInt16)
IL_02C1: ldc.i4.s 33
IL_02C3: ldc.i4 65536
IL_02C8: ldloca.s 12 (System.Int32)
IL_02CA: ldloca.s 13 (System.Int32)
IL_02CC: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_02D1: ldloc.s 12 (System.Int32)
IL_02D3: brtrue => Label32
IL_02D8: ldloc.s 13 (System.Int32)
IL_02DA: brfalse => Label33
IL_02DF: Label32
IL_02DF: ldloc.s 4 (System.Int32)
IL_02E1: ldc.i4.1
IL_02E2: add
IL_02E3: stloc.s 4 (System.Int32)
IL_02E5: ldloc.s 12 (System.Int32)
IL_02E7: brfalse => Label34
IL_02EC: ldc.i4.1
IL_02ED: stloc.s 12 (System.Int32)
IL_02EF: Label34
IL_02EF: ldloc.s 13 (System.Int32)
IL_02F1: brfalse => Label35
IL_02F6: ldc.i4.1
IL_02F7: stloc.s 13 (System.Int32)
IL_02F9: Label35
IL_02F9: ldloc.s 5 (NetManager)
IL_02FB: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0300: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0305: ldloc.s 11 (System.UInt16)
IL_0307: ldelema NetSegment
IL_030C: ldfld System.UInt16 NetSegment::m_endNode
IL_0311: ldarg.1
IL_0312: bne.un => Label36
IL_0317: ldloc.1
IL_0318: ldloc.s 13 (System.Int32)
IL_031A: add
IL_031B: stloc.1
IL_031C: ldloc.2
IL_031D: ldloc.s 12 (System.Int32)
IL_031F: add
IL_0320: stloc.2
IL_0321: br => Label37
IL_0326: Label36
IL_0326: ldloc.1
IL_0327: ldloc.s 12 (System.Int32)
IL_0329: add
IL_032A: stloc.1
IL_032B: ldloc.2
IL_032C: ldloc.s 13 (System.Int32)
IL_032E: add
IL_032F: stloc.2
IL_0330: Label31
IL_0330: Label33
IL_0330: Label37
IL_0330: ldloc.s 10 (System.Int32)
IL_0332: ldc.i4.1
IL_0333: add
IL_0334: stloc.s 10 (System.Int32)
IL_0336: Label30
IL_0336: ldloc.s 10 (System.Int32)
IL_0338: ldc.i4.8
IL_0339: blt => Label38
IL_033E: ldloc.1
IL_033F: brfalse => Label39
IL_0344: ldloc.2
IL_0345: brfalse => Label40
IL_034A: Label39
IL_034A: ldloc.1
IL_034B: brtrue => Label41
IL_0350: ldloc.2
IL_0351: brtrue => Label42
IL_0356: Label41
IL_0356: ldloc.s 4 (System.Int32)
IL_0358: ldc.i4.1
IL_0359: bne.un => Label43
IL_035E: Label40
IL_035E: Label42
IL_035E: ldloc.0
IL_035F: ldc.i8 72057594037927936
IL_0368: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_036D: stloc.0
IL_036E: Label15
IL_036E: Label43
IL_036E: ldarg.2
IL_036F: ldloc.0
IL_0370: stfld Problem NetNode::m_problems
IL_0375: // end original
IL_0375: ldarg 1
IL_0379: ldarg 2
IL_037D: call static System.Void
TrafficManager.Patch._RoadBaseAI.UpdateNodePatch::Postfix(System.UInt16 nodeID,
NetNode& data)
IL_0382: 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<NetManager>::get_instance()
IL_0005: stloc.0
IL_0006: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::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<NetNode> NetManager::m_nodes
IL_0176: ldfld NetNode[] Array16`1<NetNode>::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: ldarg.2
IL_0192: ldfld UnityEngine.Vector3 NetSegment::m_endDirection
IL_0197: call static UnityEngine.Vector3
UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a)
IL_019C: ldloca.s 12 (System.Int32)
IL_019E: ldloca.s 13 (System.Int32)
IL_01A0: ldloca.s 14 (System.Int32)
IL_01A2: ldloca.s 15 (System.Int32)
IL_01A4: ldloca.s 16 (System.Int32)
IL_01A6: ldloca.s 17 (System.Int32)
IL_01A8: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, Direction directions, LaneType laneTypes, VehicleType
vehicleTypes, UnityEngine.Vector3 direction, System.Int32& left, System.Int32&
forward, System.Int32& right, System.Int32& left2, System.Int32& forward2,
System.Int32& right2)
IL_01AD: ldloc.0
IL_01AE: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_01B3: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_01B8: ldarg.2
IL_01B9: ldfld System.UInt16 NetSegment::m_endNode
IL_01BE: ldelema NetNode
IL_01C3: ldfld Flags NetNode::m_flags
IL_01C8: ldc.i4 1136
IL_01CD: and
IL_01CE: brfalse => Label2
IL_01D3: ldloc.s 12 (System.Int32)
IL_01D5: ldloc.s 13 (System.Int32)
IL_01D7: add
IL_01D8: ldloc.s 14 (System.Int32)
IL_01DA: add
IL_01DB: brtrue => Label3
IL_01E0: ldc.i4.1
IL_01E1: stloc.s 19 (System.Boolean)
IL_01E3: br => Label4
IL_01E8: Label3
IL_01E8: ldc.i4.1
IL_01E9: stloc.s 18 (System.Boolean)
IL_01EB: Label2
IL_01EB: Label4
IL_01EB: ldc.i4.0
IL_01EC: stloc.s 20 (System.Int32)
IL_01EE: ldc.i4.0
IL_01EF: stloc.s 21 (System.Int32)
IL_01F1: ldc.i4.0
IL_01F2: stloc.s 22 (System.Int32)
IL_01F4: ldc.i4.0
IL_01F5: stloc.s 23 (System.Int32)
IL_01F7: ldc.i4.0
IL_01F8: stloc.s 24 (System.Int32)
IL_01FA: ldc.i4.0
IL_01FB: stloc.s 25 (System.Int32)
IL_01FD: ldc.i4.0
IL_01FE: stloc.s 26 (System.Boolean)
IL_0200: ldc.i4.0
IL_0201: stloc.s 27 (System.Boolean)
IL_0203: ldloc.0
IL_0204: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0209: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_020E: ldarg.2
IL_020F: ldfld System.UInt16 NetSegment::m_startNode
IL_0214: ldelema NetNode
IL_0219: ldarg.2
IL_021A: ldfld System.UInt16 NetSegment::m_startNode
IL_021F: ldarg.1
IL_0220: ldc.i4.1
IL_0221: ldc.i4.s 33
IL_0223: ldc.i4.1
IL_0224: ldarg.2
IL_0225: ldfld UnityEngine.Vector3 NetSegment::m_startDirection
IL_022A: call static UnityEngine.Vector3
UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a)
IL_022F: ldloca.s 20 (System.Int32)
IL_0231: ldloca.s 21 (System.Int32)
IL_0233: ldloca.s 22 (System.Int32)
IL_0235: ldloca.s 23 (System.Int32)
IL_0237: ldloca.s 24 (System.Int32)
IL_0239: ldloca.s 25 (System.Int32)
IL_023B: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, Direction directions, LaneType laneTypes, VehicleType
vehicleTypes, UnityEngine.Vector3 direction, System.Int32& left, System.Int32&
forward, System.Int32& right, System.Int32& left2, System.Int32& forward2,
System.Int32& right2)
IL_0240: ldloc.0
IL_0241: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0246: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_024B: ldarg.2
IL_024C: ldfld System.UInt16 NetSegment::m_startNode
IL_0251: ldelema NetNode
IL_0256: ldfld Flags NetNode::m_flags
IL_025B: ldc.i4 1136
IL_0260: and
IL_0261: brfalse => Label5
IL_0266: ldloc.s 20 (System.Int32)
IL_0268: ldloc.s 21 (System.Int32)
IL_026A: add
IL_026B: ldloc.s 22 (System.Int32)
IL_026D: add
IL_026E: brtrue => Label6
IL_0273: ldc.i4.1
IL_0274: stloc.s 27 (System.Boolean)
IL_0276: br => Label7
IL_027B: Label6
IL_027B: ldc.i4.1
IL_027C: stloc.s 26 (System.Boolean)
IL_027E: Label5
IL_027E: Label7
IL_027E: ldc.i4.0
IL_027F: stloc.s 28 (NetLane+Flags)
IL_0281: ldloc.s 15 (System.Int32)
IL_0283: brfalse => Label8
IL_0288: ldloc.s 12 (System.Int32)
IL_028A: brtrue => Label9
IL_028F: ldloc.s 28 (NetLane+Flags)
IL_0291: ldarg.2
IL_0292: ldfld Flags NetSegment::m_flags
IL_0297: ldc.i4.s 16
IL_0299: and
IL_029A: brfalse => Label10
IL_029F: ldc.i4 4096
IL_02A4: br => Label11
IL_02A9: Label10
IL_02A9: ldc.i4 16384
IL_02AE: Label11
IL_02AE: or
IL_02AF: stloc.s 28 (NetLane+Flags)
IL_02B1: Label8
IL_02B1: Label9
IL_02B1: ldloc.s 17 (System.Int32)
IL_02B3: brfalse => Label12
IL_02B8: ldloc.s 14 (System.Int32)
IL_02BA: brtrue => Label13
IL_02BF: ldloc.s 28 (NetLane+Flags)
IL_02C1: ldarg.2
IL_02C2: ldfld Flags NetSegment::m_flags
IL_02C7: ldc.i4.s 16
IL_02C9: and
IL_02CA: brfalse => Label14
IL_02CF: ldc.i4 8192
IL_02D4: br => Label15
IL_02D9: Label14
IL_02D9: ldc.i4 32768
IL_02DE: Label15
IL_02DE: or
IL_02DF: stloc.s 28 (NetLane+Flags)
IL_02E1: Label12
IL_02E1: Label13
IL_02E1: ldloc.s 23 (System.Int32)
IL_02E3: brfalse => Label16
IL_02E8: ldloc.s 20 (System.Int32)
IL_02EA: brtrue => Label17
IL_02EF: ldloc.s 28 (NetLane+Flags)
IL_02F1: ldarg.2
IL_02F2: ldfld Flags NetSegment::m_flags
IL_02F7: ldc.i4.s 16
IL_02F9: and
IL_02FA: brfalse => Label18
IL_02FF: ldc.i4 16384
IL_0304: br => Label19
IL_0309: Label18
IL_0309: ldc.i4 4096
IL_030E: Label19
IL_030E: or
IL_030F: stloc.s 28 (NetLane+Flags)
IL_0311: Label16
IL_0311: Label17
IL_0311: ldloc.s 25 (System.Int32)
IL_0313: brfalse => Label20
IL_0318: ldloc.s 22 (System.Int32)
IL_031A: brtrue => Label21
IL_031F: ldloc.s 28 (NetLane+Flags)
IL_0321: ldarg.2
IL_0322: ldfld Flags NetSegment::m_flags
IL_0327: ldc.i4.s 16
IL_0329: and
IL_032A: brfalse => Label22
IL_032F: ldc.i4 32768
IL_0334: br => Label23
IL_0339: Label22
IL_0339: ldc.i4 8192
IL_033E: Label23
IL_033E: or
IL_033F: stloc.s 28 (NetLane+Flags)
IL_0341: Label20
IL_0341: Label21
IL_0341: ldarg.2
IL_0342: ldfld Flags NetSegment::m_flags
IL_0347: ldc.i4 1073741824
IL_034C: and
IL_034D: brfalse => Label24
IL_0352: ldloc.s 28 (NetLane+Flags)
IL_0354: ldarg.2
IL_0355: ldfld Flags NetSegment::m_flags
IL_035A: ldc.i4.s 16
IL_035C: and
IL_035D: brfalse => Label25
IL_0362: ldc.i4 2048
IL_0367: br => Label26
IL_036C: Label25
IL_036C: ldc.i4 1024
IL_0371: Label26
IL_0371: or
IL_0372: stloc.s 28 (NetLane+Flags)
IL_0374: Label24
IL_0374: ldarg.2
IL_0375: ldfld Flags NetSegment::m_flags
IL_037A: ldc.i4 -2147483648
IL_037F: and
IL_0380: brfalse => Label27
IL_0385: ldloc.s 28 (NetLane+Flags)
IL_0387: ldarg.2
IL_0388: ldfld Flags NetSegment::m_flags
IL_038D: ldc.i4.s 16
IL_038F: and
IL_0390: brfalse => Label28
IL_0395: ldc.i4 1024
IL_039A: br => Label29
IL_039F: Label28
IL_039F: ldc.i4 2048
IL_03A4: Label29
IL_03A4: or
IL_03A5: stloc.s 28 (NetLane+Flags)
IL_03A7: Label27
IL_03A7: ldc.r4 0
IL_03AC: stloc.s 29 (System.Single)
IL_03AE: ldc.r4 0
IL_03B3: stloc.s 30 (System.Single)
IL_03B5: ldc.i4.0
IL_03B6: stloc.s 31 (System.UInt32)
IL_03B8: ldarg.2
IL_03B9: ldfld System.UInt32 NetSegment::m_lanes
IL_03BE: stloc.s 32 (System.UInt32)
IL_03C0: ldc.i4.0
IL_03C1: stloc.s 33 (System.Int32)
IL_03C3: br => Label30
IL_03C8: Label89
IL_03C8: ldloc.s 32 (System.UInt32)
IL_03CA: brtrue => Label31
IL_03CF: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_03D4: ldloca.s 32 (System.UInt32)
IL_03D6: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_03DB: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_03E0: ldarg.1
IL_03E1: ldc.i4.1
IL_03E2: callvirt System.Boolean NetManager::CreateLanes(System.UInt32&
firstLane, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segment,
System.Int32 count)
IL_03E7: brfalse => Label32
IL_03EC: ldloc.s 31 (System.UInt32)
IL_03EE: brfalse => Label33
IL_03F3: ldloc.0
IL_03F4: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_03F9: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_03FE: ldloc.s 31 (System.UInt32)
IL_0400: conv.u
IL_0401: ldelema NetLane
IL_0406: ldloc.s 32 (System.UInt32)
IL_0408: stfld System.UInt32 NetLane::m_nextLane
IL_040D: br => Label34
IL_0412: Label33
IL_0412: ldarg.2
IL_0413: ldloc.s 32 (System.UInt32)
IL_0415: stfld System.UInt32 NetSegment::m_lanes
IL_041A: Label34
IL_041A: br => Label35
IL_041F: Label32
IL_041F: br => Label36
IL_0424: Label31
IL_0424: Label35
IL_0424: ldarg.0
IL_0425: ldfld NetInfo NetAI::m_info
IL_042A: ldfld Lane[] NetInfo::m_lanes
IL_042F: ldloc.s 33 (System.Int32)
IL_0431: ldelem.ref
IL_0432: stloc.s 34 (NetInfo+Lane)
IL_0434: ldloc.s 34 (NetInfo+Lane)
IL_0436: ldfld System.Single Lane::m_position
IL_043B: ldarg.0
IL_043C: ldfld NetInfo NetAI::m_info
IL_0441: ldfld System.Single NetInfo::m_halfWidth
IL_0446: ldc.r4 2
IL_044B: mul
IL_044C: div
IL_044D: ldc.r4 0.5
IL_0452: add
IL_0453: stloc.s 35 (System.Single)
IL_0455: ldarg.2
IL_0456: ldfld Flags NetSegment::m_flags
IL_045B: ldc.i4.s 16
IL_045D: and
IL_045E: brfalse => Label37
IL_0463: ldc.r4 1
IL_0468: ldloc.s 35 (System.Single)
IL_046A: sub
IL_046B: stloc.s 35 (System.Single)
IL_046D: Label37
IL_046D: ldloc.2
IL_046E: ldloc.3
IL_046F: ldloc.2
IL_0470: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0475: ldloc.s 35 (System.Single)
IL_0477: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_047C: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0481: stloc.s 36 (UnityEngine.Vector3)
IL_0483: ldloc.s 6 (UnityEngine.Vector3)
IL_0485: ldloc.s 7 (UnityEngine.Vector3)
IL_0487: ldloc.s 35 (System.Single)
IL_0489: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_048E: stloc.s 37 (UnityEngine.Vector3)
IL_0490: ldloc.s 4 (UnityEngine.Vector3)
IL_0492: ldloc.s 5 (UnityEngine.Vector3)
IL_0494: ldloc.s 4 (UnityEngine.Vector3)
IL_0496: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_049B: ldloc.s 35 (System.Single)
IL_049D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_04A2: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_04A7: stloc.s 38 (UnityEngine.Vector3)
IL_04A9: ldloc.s 8 (UnityEngine.Vector3)
IL_04AB: ldloc.s 9 (UnityEngine.Vector3)
IL_04AD: ldloc.s 35 (System.Single)
IL_04AF: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_04B4: stloc.s 39 (UnityEngine.Vector3)
IL_04B6: ldloca.s 36 (UnityEngine.Vector3)
IL_04B8: dup
IL_04B9: ldfld System.Single UnityEngine.Vector3::y
IL_04BE: ldloc.s 34 (NetInfo+Lane)
IL_04C0: ldfld System.Single Lane::m_verticalOffset
IL_04C5: add
IL_04C6: stfld System.Single UnityEngine.Vector3::y
IL_04CB: ldloca.s 38 (UnityEngine.Vector3)
IL_04CD: dup
IL_04CE: ldfld System.Single UnityEngine.Vector3::y
IL_04D3: ldloc.s 34 (NetInfo+Lane)
IL_04D5: ldfld System.Single Lane::m_verticalOffset
IL_04DA: add
IL_04DB: stfld System.Single UnityEngine.Vector3::y
IL_04E0: ldloc.s 36 (UnityEngine.Vector3)
IL_04E2: ldloc.s 37 (UnityEngine.Vector3)
IL_04E4: ldloc.s 38 (UnityEngine.Vector3)
IL_04E6: ldloc.s 39 (UnityEngine.Vector3)
IL_04E8: ldloc.s 10 (System.Boolean)
IL_04EA: ldloc.s 11 (System.Boolean)
IL_04EC: ldloca.s 40 (UnityEngine.Vector3)
IL_04EE: ldloca.s 41 (UnityEngine.Vector3)
IL_04F0: 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_04F5: ldloc.0
IL_04F6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_04FB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0500: ldloc.s 32 (System.UInt32)
IL_0502: conv.u
IL_0503: ldelema NetLane
IL_0508: ldfld System.UInt16 NetLane::m_flags
IL_050D: stloc.s 42 (NetLane+Flags)
IL_050F: ldloc.s 28 (NetLane+Flags)
IL_0511: stloc.s 43 (NetLane+Flags)
IL_0513: ldloc.s 42 (NetLane+Flags)
IL_0515: ldc.i4 -64753
IL_051A: and
IL_051B: stloc.s 42 (NetLane+Flags)
IL_051D: ldloc.s 34 (NetInfo+Lane)
IL_051F: ldfld Direction Lane::m_finalDirection
IL_0524: ldc.i4.3
IL_0525: and
IL_0526: conv.u1
IL_0527: ldc.i4.2
IL_0528: bne.un => Label38
IL_052D: ldloc.s 43 (NetLane+Flags)
IL_052F: ldc.i4 -2049
IL_0534: and
IL_0535: stloc.s 43 (NetLane+Flags)
IL_0537: Label38
IL_0537: ldloc.s 34 (NetInfo+Lane)
IL_0539: ldfld Direction Lane::m_finalDirection
IL_053E: ldc.i4.3
IL_053F: and
IL_0540: conv.u1
IL_0541: ldc.i4.1
IL_0542: bne.un => Label39
IL_0547: ldloc.s 43 (NetLane+Flags)
IL_0549: ldc.i4 -1025
IL_054E: and
IL_054F: stloc.s 43 (NetLane+Flags)
IL_0551: Label39
IL_0551: ldloc.s 34 (NetInfo+Lane)
IL_0553: ldfld VehicleType Lane::m_vehicleType
IL_0558: ldc.i4 2048
IL_055D: and
IL_055E: brfalse => Label40
IL_0563: ldloc.s 43 (NetLane+Flags)
IL_0565: ldc.i4 -3073
IL_056A: and
IL_056B: stloc.s 43 (NetLane+Flags)
IL_056D: Label40
IL_056D: ldloc.s 42 (NetLane+Flags)
IL_056F: ldloc.s 43 (NetLane+Flags)
IL_0571: or
IL_0572: stloc.s 42 (NetLane+Flags)
IL_0574: ldloc.1
IL_0575: brfalse => Label41
IL_057A: ldloc.s 42 (NetLane+Flags)
IL_057C: ldc.i4.4
IL_057D: or
IL_057E: stloc.s 42 (NetLane+Flags)
IL_0580: br => Label42
IL_0585: Label41
IL_0585: ldloc.s 42 (NetLane+Flags)
IL_0587: ldc.i4.s -5
IL_0589: and
IL_058A: stloc.s 42 (NetLane+Flags)
IL_058C: Label42
IL_058C: ldc.i4.0
IL_058D: stloc.s 44 (System.Int32)
IL_058F: ldc.i4 255
IL_0594: stloc.s 45 (System.Int32)
IL_0596: ldloc.s 34 (NetInfo+Lane)
IL_0598: ldfld LaneType Lane::m_laneType
IL_059D: ldc.i4.s 33
IL_059F: and
IL_05A0: conv.u1
IL_05A1: brfalse => Label43
IL_05A6: ldloc.s 34 (NetInfo+Lane)
IL_05A8: ldfld Direction Lane::m_finalDirection
IL_05AD: ldc.i4.1
IL_05AE: and
IL_05AF: conv.u1
IL_05B0: ldc.i4.0
IL_05B1: ceq
IL_05B3: ldc.i4.0
IL_05B4: ceq
IL_05B6: ldarg.2
IL_05B7: ldfld Flags NetSegment::m_flags
IL_05BC: ldc.i4.s 16
IL_05BE: and
IL_05BF: ldc.i4.0
IL_05C0: ceq
IL_05C2: ceq
IL_05C4: stloc.s 46 (System.Boolean)
IL_05C6: ldloc.s 46 (System.Boolean)
IL_05C8: brfalse => Label44
IL_05CD: ldloc.s 12 (System.Int32)
IL_05CF: stloc.s 47 (System.Int32)
IL_05D1: ldloc.s 13 (System.Int32)
IL_05D3: stloc.s 48 (System.Int32)
IL_05D5: ldloc.s 14 (System.Int32)
IL_05D7: stloc.s 49 (System.Int32)
IL_05D9: br => Label45
IL_05DE: Label44
IL_05DE: ldloc.s 20 (System.Int32)
IL_05E0: stloc.s 47 (System.Int32)
IL_05E2: ldloc.s 21 (System.Int32)
IL_05E4: stloc.s 48 (System.Int32)
IL_05E6: ldloc.s 22 (System.Int32)
IL_05E8: stloc.s 49 (System.Int32)
IL_05EA: Label45
IL_05EA: ldloc.s 34 (NetInfo+Lane)
IL_05EC: ldfld Direction Lane::m_finalDirection
IL_05F1: ldc.i4.1
IL_05F2: and
IL_05F3: conv.u1
IL_05F4: brfalse => Label46
IL_05F9: ldloc.s 34 (NetInfo+Lane)
IL_05FB: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0600: stloc.s 50 (System.Int32)
IL_0602: ldloc.s 34 (NetInfo+Lane)
IL_0604: ldfld System.Int32 Lane::m_similarLaneCount
IL_0609: ldloc.s 34 (NetInfo+Lane)
IL_060B: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0610: sub
IL_0611: ldc.i4.1
IL_0612: sub
IL_0613: stloc.s 51 (System.Int32)
IL_0615: br => Label47
IL_061A: Label46
IL_061A: ldloc.s 34 (NetInfo+Lane)
IL_061C: ldfld System.Int32 Lane::m_similarLaneCount
IL_0621: ldloc.s 34 (NetInfo+Lane)
IL_0623: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0628: sub
IL_0629: ldc.i4.1
IL_062A: sub
IL_062B: stloc.s 50 (System.Int32)
IL_062D: ldloc.s 34 (NetInfo+Lane)
IL_062F: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0634: stloc.s 51 (System.Int32)
IL_0636: Label47
IL_0636: ldloc.s 47 (System.Int32)
IL_0638: ldloc.s 48 (System.Int32)
IL_063A: add
IL_063B: ldloc.s 49 (System.Int32)
IL_063D: add
IL_063E: stloc.s 52 (System.Int32)
IL_0640: ldc.i4 255
IL_0645: stloc.s 44 (System.Int32)
IL_0647: ldc.i4.0
IL_0648: stloc.s 45 (System.Int32)
IL_064A: ldloc.s 52 (System.Int32)
IL_064C: brfalse => Label48
IL_0651: ldloc.s 34 (NetInfo+Lane)
IL_0653: ldfld System.Int32 Lane::m_similarLaneCount
IL_0658: ldloc.s 52 (System.Int32)
IL_065A: ble => Label49
IL_065F: ldloc.s 52 (System.Int32)
IL_0661: ldc.i4.0
IL_0662: ble => Label50
IL_0667: ldloc.s 52 (System.Int32)
IL_0669: ldloc.s 50 (System.Int32)
IL_066B: mul
IL_066C: ldloc.s 34 (NetInfo+Lane)
IL_066E: ldfld System.Int32 Lane::m_similarLaneCount
IL_0673: div
IL_0674: stloc.s 44 (System.Int32)
IL_0676: ldloc.s 52 (System.Int32)
IL_0678: ldloc.s 52 (System.Int32)
IL_067A: ldloc.s 51 (System.Int32)
IL_067C: mul
IL_067D: ldloc.s 34 (NetInfo+Lane)
IL_067F: ldfld System.Int32 Lane::m_similarLaneCount
IL_0684: div
IL_0685: sub
IL_0686: stloc.s 45 (System.Int32)
IL_0688: ldloc.s 42 (NetLane+Flags)
IL_068A: ldc.i4 128
IL_068F: or
IL_0690: stloc.s 42 (NetLane+Flags)
IL_0692: ldloc.s 44 (System.Int32)
IL_0694: ldloc.s 47 (System.Int32)
IL_0696: bge => Label51
IL_069B: ldloc.s 42 (NetLane+Flags)
IL_069D: ldc.i4.s 32
IL_069F: or
IL_06A0: stloc.s 42 (NetLane+Flags)
IL_06A2: Label51
IL_06A2: ldloc.s 52 (System.Int32)
IL_06A4: ldloc.s 45 (System.Int32)
IL_06A6: sub
IL_06A7: ldloc.s 49 (System.Int32)
IL_06A9: bge => Label52
IL_06AE: ldloc.s 42 (NetLane+Flags)
IL_06B0: ldc.i4.s 64
IL_06B2: or
IL_06B3: stloc.s 42 (NetLane+Flags)
IL_06B5: Label52
IL_06B5: ldloc.s 48 (System.Int32)
IL_06B7: brfalse => Label53
IL_06BC: ldloc.s 44 (System.Int32)
IL_06BE: ldloc.s 47 (System.Int32)
IL_06C0: ldloc.s 48 (System.Int32)
IL_06C2: add
IL_06C3: bge => Label54
IL_06C8: ldloc.s 45 (System.Int32)
IL_06CA: ldloc.s 47 (System.Int32)
IL_06CC: ble => Label55
IL_06D1: ldloc.s 42 (NetLane+Flags)
IL_06D3: ldc.i4.s 16
IL_06D5: or
IL_06D6: stloc.s 42 (NetLane+Flags)
IL_06D8: Label53
IL_06D8: Label54
IL_06D8: Label55
IL_06D8: br => Label56
IL_06DD: Label49
IL_06DD: Label50
IL_06DD: ldloc.s 34 (NetInfo+Lane)
IL_06DF: ldfld System.Int32 Lane::m_similarLaneCount
IL_06E4: ldloc.s 52 (System.Int32)
IL_06E6: blt => Label57
IL_06EB: ldloc.s 47 (System.Int32)
IL_06ED: stloc.s 53 (System.Int32)
IL_06EF: ldloc.s 49 (System.Int32)
IL_06F1: stloc.s 54 (System.Int32)
IL_06F3: br => Label58
IL_06F8: Label57
IL_06F8: ldloc.s 47 (System.Int32)
IL_06FA: ldloc.s 34 (NetInfo+Lane)
IL_06FC: ldfld System.Int32 Lane::m_similarLaneCount
IL_0701: mul
IL_0702: ldloc.s 52 (System.Int32)
IL_0704: ldloc.s 48 (System.Int32)
IL_0706: ldc.i4.1
IL_0707: shr
IL_0708: add
IL_0709: div
IL_070A: stloc.s 53 (System.Int32)
IL_070C: ldloc.s 49 (System.Int32)
IL_070E: ldloc.s 34 (NetInfo+Lane)
IL_0710: ldfld System.Int32 Lane::m_similarLaneCount
IL_0715: mul
IL_0716: ldloc.s 52 (System.Int32)
IL_0718: ldloc.s 48 (System.Int32)
IL_071A: ldc.i4.1
IL_071B: shr
IL_071C: add
IL_071D: div
IL_071E: stloc.s 54 (System.Int32)
IL_0720: Label58
IL_0720: ldloc.s 53 (System.Int32)
IL_0722: stloc.s 55 (System.Int32)
IL_0724: ldloc.s 34 (NetInfo+Lane)
IL_0726: ldfld System.Int32 Lane::m_similarLaneCount
IL_072B: ldloc.s 53 (System.Int32)
IL_072D: sub
IL_072E: ldloc.s 54 (System.Int32)
IL_0730: sub
IL_0731: stloc.s 56 (System.Int32)
IL_0733: ldloc.s 54 (System.Int32)
IL_0735: stloc.s 57 (System.Int32)
IL_0737: ldloc.s 56 (System.Int32)
IL_0739: ldc.i4.0
IL_073A: ble => Label59
IL_073F: ldloc.s 47 (System.Int32)
IL_0741: ldloc.s 53 (System.Int32)
IL_0743: ble => Label60
IL_0748: ldloc.s 55 (System.Int32)
IL_074A: ldc.i4.1
IL_074B: add
IL_074C: stloc.s 55 (System.Int32)
IL_074E: Label60
IL_074E: ldloc.s 49 (System.Int32)
IL_0750: ldloc.s 54 (System.Int32)
IL_0752: ble => Label61
IL_0757: ldloc.s 57 (System.Int32)
IL_0759: ldc.i4.1
IL_075A: add
IL_075B: stloc.s 57 (System.Int32)
IL_075D: Label59
IL_075D: Label61
IL_075D: ldloc.s 50 (System.Int32)
IL_075F: ldloc.s 55 (System.Int32)
IL_0761: bge => Label62
IL_0766: ldloc.s 50 (System.Int32)
IL_0768: ldloc.s 47 (System.Int32)
IL_076A: mul
IL_076B: ldloc.s 55 (System.Int32)
IL_076D: add
IL_076E: ldc.i4.1
IL_076F: sub
IL_0770: ldloc.s 55 (System.Int32)
IL_0772: div
IL_0773: stloc.s 58 (System.Int32)
IL_0775: ldloc.s 50 (System.Int32)
IL_0777: ldc.i4.1
IL_0778: add
IL_0779: ldloc.s 47 (System.Int32)
IL_077B: mul
IL_077C: ldloc.s 55 (System.Int32)
IL_077E: add
IL_077F: ldc.i4.1
IL_0780: sub
IL_0781: ldloc.s 55 (System.Int32)
IL_0783: div
IL_0784: stloc.s 59 (System.Int32)
IL_0786: ldloc.s 59 (System.Int32)
IL_0788: ldloc.s 58 (System.Int32)
IL_078A: ble => Label63
IL_078F: ldloc.s 42 (NetLane+Flags)
IL_0791: ldc.i4.s 32
IL_0793: or
IL_0794: stloc.s 42 (NetLane+Flags)
IL_0796: ldloc.s 44 (System.Int32)
IL_0798: ldloc.s 58 (System.Int32)
IL_079A: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_079F: stloc.s 44 (System.Int32)
IL_07A1: ldloc.s 45 (System.Int32)
IL_07A3: ldloc.s 59 (System.Int32)
IL_07A5: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_07AA: stloc.s 45 (System.Int32)
IL_07AC: Label62
IL_07AC: Label63
IL_07AC: ldloc.s 50 (System.Int32)
IL_07AE: ldloc.s 53 (System.Int32)
IL_07B0: blt => Label64
IL_07B5: ldloc.s 51 (System.Int32)
IL_07B7: ldloc.s 54 (System.Int32)
IL_07B9: blt => Label65
IL_07BE: ldloc.s 48 (System.Int32)
IL_07C0: brfalse => Label66
IL_07C5: ldloc.s 34 (NetInfo+Lane)
IL_07C7: ldfld System.Int32 Lane::m_similarLaneCount
IL_07CC: ldloc.s 52 (System.Int32)
IL_07CE: ble => Label67
IL_07D3: ldloc.s 53 (System.Int32)
IL_07D5: ldc.i4.1
IL_07D6: add
IL_07D7: stloc.s 53 (System.Int32)
IL_07D9: Label67
IL_07D9: ldloc.s 47 (System.Int32)
IL_07DB: ldloc.s 50 (System.Int32)
IL_07DD: ldloc.s 53 (System.Int32)
IL_07DF: sub
IL_07E0: ldloc.s 48 (System.Int32)
IL_07E2: mul
IL_07E3: ldloc.s 56 (System.Int32)
IL_07E5: add
IL_07E6: ldc.i4.1
IL_07E7: sub
IL_07E8: ldloc.s 56 (System.Int32)
IL_07EA: div
IL_07EB: add
IL_07EC: stloc.s 60 (System.Int32)
IL_07EE: ldloc.s 47 (System.Int32)
IL_07F0: ldloc.s 50 (System.Int32)
IL_07F2: ldc.i4.1
IL_07F3: add
IL_07F4: ldloc.s 53 (System.Int32)
IL_07F6: sub
IL_07F7: ldloc.s 48 (System.Int32)
IL_07F9: mul
IL_07FA: ldloc.s 56 (System.Int32)
IL_07FC: add
IL_07FD: ldc.i4.1
IL_07FE: sub
IL_07FF: ldloc.s 56 (System.Int32)
IL_0801: div
IL_0802: add
IL_0803: stloc.s 61 (System.Int32)
IL_0805: ldloc.s 61 (System.Int32)
IL_0807: ldloc.s 60 (System.Int32)
IL_0809: ble => Label68
IL_080E: ldloc.s 42 (NetLane+Flags)
IL_0810: ldc.i4.s 16
IL_0812: or
IL_0813: stloc.s 42 (NetLane+Flags)
IL_0815: ldloc.s 44 (System.Int32)
IL_0817: ldloc.s 60 (System.Int32)
IL_0819: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_081E: stloc.s 44 (System.Int32)
IL_0820: ldloc.s 45 (System.Int32)
IL_0822: ldloc.s 61 (System.Int32)
IL_0824: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0829: stloc.s 45 (System.Int32)
IL_082B: Label64
IL_082B: Label65
IL_082B: Label66
IL_082B: Label68
IL_082B: ldloc.s 51 (System.Int32)
IL_082D: ldloc.s 57 (System.Int32)
IL_082F: bge => Label69
IL_0834: ldloc.s 52 (System.Int32)
IL_0836: ldloc.s 51 (System.Int32)
IL_0838: ldc.i4.1
IL_0839: add
IL_083A: ldloc.s 49 (System.Int32)
IL_083C: mul
IL_083D: ldloc.s 57 (System.Int32)
IL_083F: add
IL_0840: ldc.i4.1
IL_0841: sub
IL_0842: ldloc.s 57 (System.Int32)
IL_0844: div
IL_0845: sub
IL_0846: stloc.s 62 (System.Int32)
IL_0848: ldloc.s 52 (System.Int32)
IL_084A: ldloc.s 51 (System.Int32)
IL_084C: ldloc.s 49 (System.Int32)
IL_084E: mul
IL_084F: ldloc.s 57 (System.Int32)
IL_0851: add
IL_0852: ldc.i4.1
IL_0853: sub
IL_0854: ldloc.s 57 (System.Int32)
IL_0856: div
IL_0857: sub
IL_0858: stloc.s 63 (System.Int32)
IL_085A: ldloc.s 63 (System.Int32)
IL_085C: ldloc.s 62 (System.Int32)
IL_085E: ble => Label70
IL_0863: ldloc.s 42 (NetLane+Flags)
IL_0865: ldc.i4.s 64
IL_0867: or
IL_0868: stloc.s 42 (NetLane+Flags)
IL_086A: ldloc.s 44 (System.Int32)
IL_086C: ldloc.s 62 (System.Int32)
IL_086E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0873: stloc.s 44 (System.Int32)
IL_0875: ldloc.s 45 (System.Int32)
IL_0877: ldloc.s 63 (System.Int32)
IL_0879: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_087E: stloc.s 45 (System.Int32)
IL_0880: Label69
IL_0880: Label70
IL_0880: ldarg.0
IL_0881: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_0886: brfalse => Label71
IL_088B: ldloc.s 42 (NetLane+Flags)
IL_088D: ldc.i4.s 96
IL_088F: and
IL_0890: ldc.i4.s 32
IL_0892: bne.un => Label72
IL_0897: ldloc.s 42 (NetLane+Flags)
IL_0899: ldc.i4.s 16
IL_089B: and
IL_089C: brfalse => Label73
IL_08A1: ldloc.s 48 (System.Int32)
IL_08A3: ldc.i4.2
IL_08A4: blt => Label74
IL_08A9: ldloc.s 47 (System.Int32)
IL_08AB: ldc.i4.1
IL_08AC: bne.un => Label75
IL_08B1: Label73
IL_08B1: ldloc.s 45 (System.Int32)
IL_08B3: ldloc.s 44 (System.Int32)
IL_08B5: ldc.i4.1
IL_08B6: add
IL_08B7: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_08BC: stloc.s 45 (System.Int32)
IL_08BE: Label74
IL_08BE: Label75
IL_08BE: br => Label76
IL_08C3: Label72
IL_08C3: ldloc.s 42 (NetLane+Flags)
IL_08C5: ldc.i4.s 96
IL_08C7: and
IL_08C8: ldc.i4.s 64
IL_08CA: bne.un => Label77
IL_08CF: ldloc.s 42 (NetLane+Flags)
IL_08D1: ldc.i4.s 16
IL_08D3: and
IL_08D4: brfalse => Label78
IL_08D9: ldloc.s 48 (System.Int32)
IL_08DB: ldc.i4.2
IL_08DC: blt => Label79
IL_08E1: ldloc.s 49 (System.Int32)
IL_08E3: ldc.i4.1
IL_08E4: bne.un => Label80
IL_08E9: Label78
IL_08E9: ldloc.s 44 (System.Int32)
IL_08EB: ldloc.s 45 (System.Int32)
IL_08ED: ldc.i4.1
IL_08EE: sub
IL_08EF: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_08F4: stloc.s 44 (System.Int32)
IL_08F6: Label48
IL_08F6: Label56
IL_08F6: Label71
IL_08F6: Label76
IL_08F6: Label77
IL_08F6: Label79
IL_08F6: Label80
IL_08F6: ldloc.s 46 (System.Boolean)
IL_08F8: brfalse => Label81
IL_08FD: ldloc.s 18 (System.Boolean)
IL_08FF: brfalse => Label82
IL_0904: ldloc.s 42 (NetLane+Flags)
IL_0906: ldc.i4.s -113
IL_0908: and
IL_0909: stloc.s 42 (NetLane+Flags)
IL_090B: br => Label83
IL_0910: Label82
IL_0910: ldloc.s 19 (System.Boolean)
IL_0912: brfalse => Label84
IL_0917: ldloc.s 42 (NetLane+Flags)
IL_0919: ldc.i4.s 16
IL_091B: or
IL_091C: stloc.s 42 (NetLane+Flags)
IL_091E: Label83
IL_091E: Label84
IL_091E: br => Label85
IL_0923: Label81
IL_0923: ldloc.s 26 (System.Boolean)
IL_0925: brfalse => Label86
IL_092A: ldloc.s 42 (NetLane+Flags)
IL_092C: ldc.i4.s -113
IL_092E: and
IL_092F: stloc.s 42 (NetLane+Flags)
IL_0931: br => Label87
IL_0936: Label86
IL_0936: ldloc.s 27 (System.Boolean)
IL_0938: brfalse => Label88
IL_093D: ldloc.s 42 (NetLane+Flags)
IL_093F: ldc.i4.s 16
IL_0941: or
IL_0942: stloc.s 42 (NetLane+Flags)
IL_0944: Label43
IL_0944: Label85
IL_0944: Label87
IL_0944: Label88
IL_0944: ldloc.0
IL_0945: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_094A: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_094F: ldloc.s 32 (System.UInt32)
IL_0951: conv.u
IL_0952: ldelema NetLane
IL_0957: ldloc.s 36 (UnityEngine.Vector3)
IL_0959: ldloc.s 40 (UnityEngine.Vector3)
IL_095B: ldloc.s 41 (UnityEngine.Vector3)
IL_095D: ldloc.s 38 (UnityEngine.Vector3)
IL_095F: newobj System.Void
ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3
_b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d)
IL_0964: stfld ColossalFramework.Math.Bezier3 NetLane::m_bezier
IL_0969: ldloc.0
IL_096A: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_096F: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0974: ldloc.s 32 (System.UInt32)
IL_0976: conv.u
IL_0977: ldelema NetLane
IL_097C: ldarg.1
IL_097D: stfld System.UInt16 NetLane::m_segment
IL_0982: ldloc.0
IL_0983: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0988: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_098D: ldloc.s 32 (System.UInt32)
IL_098F: conv.u
IL_0990: ldelema NetLane
IL_0995: ldloc.s 42 (NetLane+Flags)
IL_0997: conv.u2
IL_0998: stfld System.UInt16 NetLane::m_flags
IL_099D: ldloc.0
IL_099E: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09A3: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09A8: ldloc.s 32 (System.UInt32)
IL_09AA: conv.u
IL_09AB: ldelema NetLane
IL_09B0: ldloc.s 44 (System.Int32)
IL_09B2: conv.u1
IL_09B3: stfld System.Byte NetLane::m_firstTarget
IL_09B8: ldloc.0
IL_09B9: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09BE: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09C3: ldloc.s 32 (System.UInt32)
IL_09C5: conv.u
IL_09C6: ldelema NetLane
IL_09CB: ldloc.s 45 (System.Int32)
IL_09CD: conv.u1
IL_09CE: stfld System.Byte NetLane::m_lastTarget
IL_09D3: ldloc.s 29 (System.Single)
IL_09D5: ldloc.0
IL_09D6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09DB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09E0: ldloc.s 32 (System.UInt32)
IL_09E2: conv.u
IL_09E3: ldelema NetLane
IL_09E8: call System.Single NetLane::UpdateLength()
IL_09ED: add
IL_09EE: stloc.s 29 (System.Single)
IL_09F0: ldloc.s 30 (System.Single)
IL_09F2: ldc.r4 1
IL_09F7: add
IL_09F8: stloc.s 30 (System.Single)
IL_09FA: ldloc.s 32 (System.UInt32)
IL_09FC: stloc.s 31 (System.UInt32)
IL_09FE: ldloc.0
IL_09FF: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0A04: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0A09: ldloc.s 32 (System.UInt32)
IL_0A0B: conv.u
IL_0A0C: ldelema NetLane
IL_0A11: ldfld System.UInt32 NetLane::m_nextLane
IL_0A16: stloc.s 32 (System.UInt32)
IL_0A18: ldloc.s 33 (System.Int32)
IL_0A1A: ldc.i4.1
IL_0A1B: add
IL_0A1C: stloc.s 33 (System.Int32)
IL_0A1E: Label30
IL_0A1E: ldloc.s 33 (System.Int32)
IL_0A20: ldarg.0
IL_0A21: ldfld NetInfo NetAI::m_info
IL_0A26: ldfld Lane[] NetInfo::m_lanes
IL_0A2B: ldlen
IL_0A2C: conv.i4
IL_0A2D: blt => Label89
IL_0A32: Label36
IL_0A32: ldloc.s 30 (System.Single)
IL_0A34: ldc.r4 0
IL_0A39: beq => Label90
IL_0A3E: ldarg.2
IL_0A3F: ldloc.s 29 (System.Single)
IL_0A41: ldloc.s 30 (System.Single)
IL_0A43: div
IL_0A44: stfld System.Single NetSegment::m_averageLength
IL_0A49: br => Label91
IL_0A4E: Label90
IL_0A4E: ldarg.2
IL_0A4F: ldc.r4 0
IL_0A54: stfld System.Single NetSegment::m_averageLength
IL_0A59: Label91
IL_0A59: ldc.i4.0
IL_0A5A: stloc.s 64 (System.Boolean)
IL_0A5C: ldarg.2
IL_0A5D: ldfld System.Single NetSegment::m_averageLength
IL_0A62: ldc.r4 11
IL_0A67: bge.un => Label92
IL_0A6C: ldloc.0
IL_0A6D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0A72: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A77: ldarg.2
IL_0A78: ldfld System.UInt16 NetSegment::m_startNode
IL_0A7D: ldelema NetNode
IL_0A82: ldfld Flags NetNode::m_flags
IL_0A87: ldc.i4 128
IL_0A8C: and
IL_0A8D: brfalse => Label93
IL_0A92: ldloc.0
IL_0A93: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0A98: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A9D: ldarg.2
IL_0A9E: ldfld System.UInt16 NetSegment::m_endNode
IL_0AA3: ldelema NetNode
IL_0AA8: ldfld Flags NetNode::m_flags
IL_0AAD: ldc.i4 128
IL_0AB2: and
IL_0AB3: brfalse => Label94
IL_0AB8: ldc.i4.1
IL_0AB9: stloc.s 64 (System.Boolean)
IL_0ABB: Label92
IL_0ABB: Label93
IL_0ABB: Label94
IL_0ABB: ldarg.2
IL_0ABC: ldfld System.UInt32 NetSegment::m_lanes
IL_0AC1: stloc.s 32 (System.UInt32)
IL_0AC3: ldc.i4.0
IL_0AC4: stloc.s 65 (System.Int32)
IL_0AC6: br => Label95
IL_0ACB: Label98
IL_0ACB: ldloc.0
IL_0ACC: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0AD1: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0AD6: ldloc.s 32 (System.UInt32)
IL_0AD8: conv.u
IL_0AD9: ldelema NetLane
IL_0ADE: ldfld System.UInt16 NetLane::m_flags
IL_0AE3: ldc.i4.s -9
IL_0AE5: and
IL_0AE6: stloc.s 66 (NetLane+Flags)
IL_0AE8: ldloc.s 64 (System.Boolean)
IL_0AEA: brfalse => Label96
IL_0AEF: ldloc.s 66 (NetLane+Flags)
IL_0AF1: ldc.i4.8
IL_0AF2: or
IL_0AF3: stloc.s 66 (NetLane+Flags)
IL_0AF5: Label96
IL_0AF5: ldloc.0
IL_0AF6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0AFB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0B00: ldloc.s 32 (System.UInt32)
IL_0B02: conv.u
IL_0B03: ldelema NetLane
IL_0B08: ldloc.s 66 (NetLane+Flags)
IL_0B0A: conv.u2
IL_0B0B: stfld System.UInt16 NetLane::m_flags
IL_0B10: ldloc.0
IL_0B11: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0B16: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0B1B: ldloc.s 32 (System.UInt32)
IL_0B1D: conv.u
IL_0B1E: ldelema NetLane
IL_0B23: ldfld System.UInt32 NetLane::m_nextLane
IL_0B28: stloc.s 32 (System.UInt32)
IL_0B2A: ldloc.s 65 (System.Int32)
IL_0B2C: ldc.i4.1
IL_0B2D: add
IL_0B2E: stloc.s 65 (System.Int32)
IL_0B30: Label95
IL_0B30: ldloc.s 65 (System.Int32)
IL_0B32: ldarg.0
IL_0B33: ldfld NetInfo NetAI::m_info
IL_0B38: ldfld Lane[] NetInfo::m_lanes
IL_0B3D: ldlen
IL_0B3E: conv.i4
IL_0B3F: bge => Label97
IL_0B44: ldloc.s 32 (System.UInt32)
IL_0B46: brtrue => Label98
IL_0B4B: Label97
IL_0B4B: ldarg.3
IL_0B4C: brtrue => Label99
IL_0B51: ldarg.2
IL_0B52: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0B57: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0B5C: stloc.s 68 (UnityEngine.Vector3)
IL_0B5E: ldloca.s 68 (UnityEngine.Vector3)
IL_0B60: ldfld System.Single UnityEngine.Vector3::x
IL_0B65: ldc.r4 16
IL_0B6A: sub
IL_0B6B: ldc.r4 64
IL_0B70: div
IL_0B71: ldc.r4 135
IL_0B76: add
IL_0B77: conv.i4
IL_0B78: ldc.i4.0
IL_0B79: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0B7E: stloc.s 67 (System.Int32)
IL_0B80: ldarg.2
IL_0B81: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0B86: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0B8B: stloc.s 70 (UnityEngine.Vector3)
IL_0B8D: ldloca.s 70 (UnityEngine.Vector3)
IL_0B8F: ldfld System.Single UnityEngine.Vector3::z
IL_0B94: ldc.r4 16
IL_0B99: sub
IL_0B9A: ldc.r4 64
IL_0B9F: div
IL_0BA0: ldc.r4 135
IL_0BA5: add
IL_0BA6: conv.i4
IL_0BA7: ldc.i4.0
IL_0BA8: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0BAD: stloc.s 69 (System.Int32)
IL_0BAF: ldarg.2
IL_0BB0: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0BB5: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0BBA: stloc.s 72 (UnityEngine.Vector3)
IL_0BBC: ldloca.s 72 (UnityEngine.Vector3)
IL_0BBE: ldfld System.Single UnityEngine.Vector3::x
IL_0BC3: ldc.r4 16
IL_0BC8: add
IL_0BC9: ldc.r4 64
IL_0BCE: div
IL_0BCF: ldc.r4 135
IL_0BD4: add
IL_0BD5: conv.i4
IL_0BD6: ldc.i4 269
IL_0BDB: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0BE0: stloc.s 71 (System.Int32)
IL_0BE2: ldarg.2
IL_0BE3: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0BE8: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0BED: stloc.s 74 (UnityEngine.Vector3)
IL_0BEF: ldloca.s 74 (UnityEngine.Vector3)
IL_0BF1: ldfld System.Single UnityEngine.Vector3::z
IL_0BF6: ldc.r4 16
IL_0BFB: add
IL_0BFC: ldc.r4 64
IL_0C01: div
IL_0C02: ldc.r4 135
IL_0C07: add
IL_0C08: conv.i4
IL_0C09: ldc.i4 269
IL_0C0E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0C13: stloc.s 73 (System.Int32)
IL_0C15: ldloc.s 69 (System.Int32)
IL_0C17: stloc.s 75 (System.Int32)
IL_0C19: br => Label100
IL_0C1E: Label108
IL_0C1E: ldloc.s 67 (System.Int32)
IL_0C20: stloc.s 76 (System.Int32)
IL_0C22: br => Label101
IL_0C27: Label107
IL_0C27: ldloc.0
IL_0C28: ldfld System.UInt16[] NetManager::m_nodeGrid
IL_0C2D: ldloc.s 75 (System.Int32)
IL_0C2F: ldc.i4 270
IL_0C34: mul
IL_0C35: ldloc.s 76 (System.Int32)
IL_0C37: add
IL_0C38: ldelem.u2
IL_0C39: stloc.s 77 (System.UInt16)
IL_0C3B: ldc.i4.0
IL_0C3C: stloc.s 78 (System.Int32)
IL_0C3E: br => Label102
IL_0C43: Label106
IL_0C43: ldloc.0
IL_0C44: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0C49: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0C4E: ldloc.s 77 (System.UInt16)
IL_0C50: ldelema NetNode
IL_0C55: call NetInfo NetNode::get_Info()
IL_0C5A: stloc.s 79 (NetInfo)
IL_0C5C: ldloc.0
IL_0C5D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0C62: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0C67: ldloc.s 77 (System.UInt16)
IL_0C69: ldelema NetNode
IL_0C6E: ldfld UnityEngine.Vector3 NetNode::m_position
IL_0C73: stloc.s 80 (UnityEngine.Vector3)
IL_0C75: ldarg.2
IL_0C76: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0C7B: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0C80: stloc.s 82 (UnityEngine.Vector3)
IL_0C82: ldloca.s 82 (UnityEngine.Vector3)
IL_0C84: ldfld System.Single UnityEngine.Vector3::x
IL_0C89: ldc.r4 16
IL_0C8E: sub
IL_0C8F: ldloca.s 80 (UnityEngine.Vector3)
IL_0C91: ldfld System.Single UnityEngine.Vector3::x
IL_0C96: sub
IL_0C97: ldarg.2
IL_0C98: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0C9D: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0CA2: stloc.s 83 (UnityEngine.Vector3)
IL_0CA4: ldloca.s 83 (UnityEngine.Vector3)
IL_0CA6: ldfld System.Single UnityEngine.Vector3::z
IL_0CAB: ldc.r4 16
IL_0CB0: sub
IL_0CB1: ldloca.s 80 (UnityEngine.Vector3)
IL_0CB3: ldfld System.Single UnityEngine.Vector3::z
IL_0CB8: sub
IL_0CB9: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0CBE: ldloca.s 80 (UnityEngine.Vector3)
IL_0CC0: ldfld System.Single UnityEngine.Vector3::x
IL_0CC5: ldarg.2
IL_0CC6: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0CCB: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0CD0: stloc.s 84 (UnityEngine.Vector3)
IL_0CD2: ldloca.s 84 (UnityEngine.Vector3)
IL_0CD4: ldfld System.Single UnityEngine.Vector3::x
IL_0CD9: sub
IL_0CDA: ldc.r4 16
IL_0CDF: sub
IL_0CE0: ldloca.s 80 (UnityEngine.Vector3)
IL_0CE2: ldfld System.Single UnityEngine.Vector3::z
IL_0CE7: ldarg.2
IL_0CE8: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0CED: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0CF2: stloc.s 85 (UnityEngine.Vector3)
IL_0CF4: ldloca.s 85 (UnityEngine.Vector3)
IL_0CF6: ldfld System.Single UnityEngine.Vector3::z
IL_0CFB: sub
IL_0CFC: ldc.r4 16
IL_0D01: sub
IL_0D02: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0D07: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0D0C: stloc.s 81 (System.Single)
IL_0D0E: ldloc.s 81 (System.Single)
IL_0D10: ldc.r4 0
IL_0D15: bge.un => Label103
IL_0D1A: ldloc.s 79 (NetInfo)
IL_0D1C: ldfld NetAI NetInfo::m_netAI
IL_0D21: ldloc.s 77 (System.UInt16)
IL_0D23: ldloc.0
IL_0D24: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0D29: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0D2E: ldloc.s 77 (System.UInt16)
IL_0D30: ldelema NetNode
IL_0D35: callvirt virtual System.Void NetAI::NearbyLanesUpdated(System.UInt16
nodeID, NetNode& data)
IL_0D3A: Label103
IL_0D3A: ldloc.0
IL_0D3B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0D40: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0D45: ldloc.s 77 (System.UInt16)
IL_0D47: ldelema NetNode
IL_0D4C: ldfld System.UInt16 NetNode::m_nextGridNode
IL_0D51: stloc.s 77 (System.UInt16)
IL_0D53: ldloc.s 78 (System.Int32)
IL_0D55: ldc.i4.1
IL_0D56: add
IL_0D57: dup
IL_0D58: stloc.s 78 (System.Int32)
IL_0D5A: ldc.i4 32768
IL_0D5F: blt => Label104
IL_0D64: ldc.i4.1
IL_0D65: ldstr "Invalid list detected!\n"
IL_0D6A: call static System.String System.Environment::get_StackTrace()
IL_0D6F: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_0D74: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Error(LogChannel ll, System.String
msg)
IL_0D79: br => Label105
IL_0D7E: Label102
IL_0D7E: Label104
IL_0D7E: ldloc.s 77 (System.UInt16)
IL_0D80: brtrue => Label106
IL_0D85: Label105
IL_0D85: ldloc.s 76 (System.Int32)
IL_0D87: ldc.i4.1
IL_0D88: add
IL_0D89: stloc.s 76 (System.Int32)
IL_0D8B: Label101
IL_0D8B: ldloc.s 76 (System.Int32)
IL_0D8D: ldloc.s 71 (System.Int32)
IL_0D8F: ble => Label107
IL_0D94: ldloc.s 75 (System.Int32)
IL_0D96: ldc.i4.1
IL_0D97: add
IL_0D98: stloc.s 75 (System.Int32)
IL_0D9A: Label100
IL_0D9A: ldloc.s 75 (System.Int32)
IL_0D9C: ldloc.s 73 (System.Int32)
IL_0D9E: ble => Label108
IL_0DA3: ldarg.0
IL_0DA4: ldfld NetInfo NetAI::m_info
IL_0DA9: ldfld System.Boolean NetInfo::m_hasPedestrianLanes
IL_0DAE: brfalse => Label109
IL_0DB3: ldarg.0
IL_0DB4: ldfld NetInfo NetAI::m_info
IL_0DB9: ldfld System.Boolean NetInfo::m_hasForwardVehicleLanes
IL_0DBE: brtrue => Label110
IL_0DC3: ldarg.0
IL_0DC4: ldfld NetInfo NetAI::m_info
IL_0DC9: ldfld System.Boolean NetInfo::m_hasBackwardVehicleLanes
IL_0DCE: brfalse => Label111
IL_0DD3: Label110
IL_0DD3: ldarg.1
IL_0DD4: ldarg.2
IL_0DD5: call static System.Void RoadBaseAI::CheckBuildings(System.UInt16
segmentID, NetSegment& data)
IL_0DDA: // end original
IL_0DDA: Label99
IL_0DDA: Label109
IL_0DDA: Label111
IL_0DDA: ldarg 1
IL_0DDE: ldarg 2
IL_0DE2: ldarg 3
IL_0DE6: call static System.Void
TrafficManager.Patch._RoadBaseAI.UpdateLanesPatch::Postfix(System.UInt16 segmentID,
NetSegment& data, System.Boolean loading)
IL_0DEB: 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.Byte NetSegment::m_trafficLightState0
IL_006A: ldc.i4 240
IL_006F: and
IL_0070: ldloc.0
IL_0071: or
IL_0072: conv.u1
IL_0073: stfld System.Byte NetSegment::m_trafficLightState0
IL_0078: br => Label4
IL_007D: Label3
IL_007D: ldarg.1
IL_007E: ldarg.1
IL_007F: ldfld System.Byte NetSegment::m_trafficLightState1
IL_0084: ldc.i4 240
IL_0089: and
IL_008A: ldloc.0
IL_008B: or
IL_008C: conv.u1
IL_008D: stfld System.Byte NetSegment::m_trafficLightState1
IL_0092: Label4
IL_0092: ldarg.s 5
IL_0094: brfalse => Label5
IL_0099: ldarg.1
IL_009A: dup
IL_009B: ldfld Flags NetSegment::m_flags
IL_00A0: ldc.i4 4096
IL_00A5: or
IL_00A6: stfld Flags NetSegment::m_flags
IL_00AB: br => Label6
IL_00B0: Label5
IL_00B0: ldarg.1
IL_00B1: dup
IL_00B2: ldfld Flags NetSegment::m_flags
IL_00B7: ldc.i4 -4097
IL_00BC: and
IL_00BD: stfld Flags NetSegment::m_flags
IL_00C2: Label6
IL_00C2: ldarg.s 6
IL_00C4: brfalse => Label7
IL_00C9: ldarg.1
IL_00CA: dup
IL_00CB: ldfld Flags NetSegment::m_flags
IL_00D0: ldc.i4 16384
IL_00D5: or
IL_00D6: stfld Flags NetSegment::m_flags
IL_00DB: br => Label8
IL_00E0: Label7
IL_00E0: ldarg.1
IL_00E1: dup
IL_00E2: ldfld Flags NetSegment::m_flags
IL_00E7: ldc.i4 -16385
IL_00EC: and
IL_00ED: stfld Flags NetSegment::m_flags
IL_00F2: Label8
IL_00F2: br => Label9
IL_00F7: Label2
IL_00F7: ldarg.2
IL_00F8: ldc.i4.8
IL_00F9: shr.un
IL_00FA: ldc.i4.1
IL_00FB: and
IL_00FC: brtrue => Label10
IL_0101: ldarg.1
IL_0102: ldarg.1
IL_0103: ldfld System.Byte NetSegment::m_trafficLightState0
IL_0108: ldc.i4.s 15
IL_010A: and
IL_010B: ldloc.0
IL_010C: ldc.i4.4
IL_010D: shl
IL_010E: or
IL_010F: conv.u1
IL_0110: stfld System.Byte NetSegment::m_trafficLightState0
IL_0115: br => Label11
IL_011A: Label10
IL_011A: ldarg.1
IL_011B: ldarg.1
IL_011C: ldfld System.Byte NetSegment::m_trafficLightState1
IL_0121: ldc.i4.s 15
IL_0123: and
IL_0124: ldloc.0
IL_0125: ldc.i4.4
IL_0126: shl
IL_0127: or
IL_0128: conv.u1
IL_0129: stfld System.Byte NetSegment::m_trafficLightState1
IL_012E: Label11
IL_012E: ldarg.s 5
IL_0130: brfalse => Label12
IL_0135: ldarg.1
IL_0136: dup
IL_0137: ldfld Flags NetSegment::m_flags
IL_013C: ldc.i4 8192
IL_0141: or
IL_0142: stfld Flags NetSegment::m_flags
IL_0147: br => Label13
IL_014C: Label12
IL_014C: ldarg.1
IL_014D: dup
IL_014E: ldfld Flags NetSegment::m_flags
IL_0153: ldc.i4 -8193
IL_0158: and
IL_0159: stfld Flags NetSegment::m_flags
IL_015E: Label13
IL_015E: ldarg.s 6
IL_0160: brfalse => Label14
IL_0165: ldarg.1
IL_0166: dup
IL_0167: ldfld Flags NetSegment::m_flags
IL_016C: ldc.i4 32768
IL_0171: or
IL_0172: stfld Flags NetSegment::m_flags
IL_0177: br => Label15
IL_017C: Label14
IL_017C: ldarg.1
IL_017D: dup
IL_017E: ldfld Flags NetSegment::m_flags
IL_0183: ldc.i4 -32769
IL_0188: and
IL_0189: stfld Flags NetSegment::m_flags
IL_018E: // end original
IL_018E: Label9
IL_018E: Label15
IL_018E: Label0
IL_018E: 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/Problem
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<SimulationManager>::get_instance()
IL_003C: stloc.0
IL_003D: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0042: stloc.1
IL_0043: ldarg.2
IL_0044: ldfld Problem NetSegment::m_problems
IL_0049: ldc.i4 805306368
IL_004E: conv.i8
IL_004F: call static Problem Notification::RemoveProblems(Problem problems1,
Problem problems2)
IL_0054: stloc.2
IL_0055: ldarg.2
IL_0056: ldfld Flags NetSegment::m_flags
IL_005B: ldc.i4 2048
IL_0060: and
IL_0061: brfalse => Label2
IL_0066: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_006B: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0070: ldc.i4.s 16
IL_0072: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0077: brtrue => Label3
IL_007C: ldarg.2
IL_007D: dup
IL_007E: ldfld Flags NetSegment::m_flags
IL_0083: ldc.i4 -2049
IL_0088: and
IL_0089: stfld Flags NetSegment::m_flags
IL_008E: Label2
IL_008E: Label3
IL_008E: ldc.r4 0
IL_0093: stloc.3
IL_0094: ldarg.2
IL_0095: ldfld System.UInt32 NetSegment::m_lanes
IL_009A: stloc.s 4 (System.UInt32)
IL_009C: ldc.i4.0
IL_009D: stloc.s 5 (System.Int32)
IL_009F: br => Label4
IL_00A4: Label8
IL_00A4: ldarg.0
IL_00A5: ldfld NetInfo NetAI::m_info
IL_00AA: ldfld Lane[] NetInfo::m_lanes
IL_00AF: ldloc.s 5 (System.Int32)
IL_00B1: ldelem.ref
IL_00B2: stloc.s 6 (NetInfo+Lane)
IL_00B4: ldloc.s 6 (NetInfo+Lane)
IL_00B6: ldfld LaneType Lane::m_laneType
IL_00BB: ldc.i4.s 33
IL_00BD: and
IL_00BE: conv.u1
IL_00BF: brfalse => Label5
IL_00C4: ldloc.s 6 (NetInfo+Lane)
IL_00C6: ldfld VehicleType Lane::m_vehicleType
IL_00CB: ldc.i4.s -33
IL_00CD: and
IL_00CE: brfalse => Label6
IL_00D3: ldloc.3
IL_00D4: ldloc.1
IL_00D5: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00DA: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00DF: ldloc.s 4 (System.UInt32)
IL_00E1: conv.u
IL_00E2: ldelema NetLane
IL_00E7: ldfld System.Single NetLane::m_length
IL_00EC: add
IL_00ED: stloc.3
IL_00EE: Label5
IL_00EE: Label6
IL_00EE: ldloc.1
IL_00EF: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00F4: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00F9: ldloc.s 4 (System.UInt32)
IL_00FB: conv.u
IL_00FC: ldelema NetLane
IL_0101: ldfld System.UInt32 NetLane::m_nextLane
IL_0106: stloc.s 4 (System.UInt32)
IL_0108: ldloc.s 5 (System.Int32)
IL_010A: ldc.i4.1
IL_010B: add
IL_010C: stloc.s 5 (System.Int32)
IL_010E: Label4
IL_010E: ldloc.s 5 (System.Int32)
IL_0110: ldarg.0
IL_0111: ldfld NetInfo NetAI::m_info
IL_0116: ldfld Lane[] NetInfo::m_lanes
IL_011B: ldlen
IL_011C: conv.i4
IL_011D: bge => Label7
IL_0122: ldloc.s 4 (System.UInt32)
IL_0124: brtrue => Label8
IL_0129: Label7
IL_0129: ldc.i4.0
IL_012A: stloc.s 7 (System.Int32)
IL_012C: ldc.i4.0
IL_012D: stloc.s 8 (System.Int32)
IL_012F: ldarg.2
IL_0130: ldfld System.UInt16 NetSegment::m_trafficBuffer
IL_0135: ldc.i4 65535
IL_013A: bne.un => Label9
IL_013F: ldarg.2
IL_0140: ldfld Flags NetSegment::m_flags
IL_0145: ldc.i4 2097152
IL_014A: and
IL_014B: brtrue => Label10
IL_0150: ldarg.2
IL_0151: dup
IL_0152: ldfld Flags NetSegment::m_flags
IL_0157: ldc.i4 2097152
IL_015C: or
IL_015D: stfld Flags NetSegment::m_flags
IL_0162: ldarg.2
IL_0163: ldloc.0
IL_0164: dup
IL_0165: ldfld System.UInt32 SimulationManager::m_currentBuildIndex
IL_016A: dup
IL_016B: stloc.s 9 (System.UInt32)
IL_016D: ldc.i4.1
IL_016E: add
IL_016F: stfld System.UInt32 SimulationManager::m_currentBuildIndex
IL_0174: ldloc.s 9 (System.UInt32)
IL_0176: stfld System.UInt32 NetSegment::m_modifiedIndex
IL_017B: Label10
IL_017B: br => Label11
IL_0180: Label9
IL_0180: ldarg.2
IL_0181: dup
IL_0182: ldfld Flags NetSegment::m_flags
IL_0187: ldc.i4 -2097153
IL_018C: and
IL_018D: stfld Flags NetSegment::m_flags
IL_0192: ldloc.3
IL_0193: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_0198: ldc.i4.4
IL_0199: shl
IL_019A: stloc.s 10 (System.Int32)
IL_019C: ldloc.s 10 (System.Int32)
IL_019E: brfalse => Label12
IL_01A3: ldarg.2
IL_01A4: ldfld System.UInt16 NetSegment::m_trafficBuffer
IL_01A9: ldc.i4.s 100
IL_01AB: mul
IL_01AC: ldloc.s 10 (System.Int32)
IL_01AE: div
IL_01AF: ldc.i4.s 100
IL_01B1: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01B6: conv.u1
IL_01B7: stloc.s 7 (System.Int32)
IL_01B9: ldarg.2
IL_01BA: ldfld System.UInt16 NetSegment::m_noiseBuffer
IL_01BF: ldc.i4 250
IL_01C4: mul
IL_01C5: ldloc.s 10 (System.Int32)
IL_01C7: div
IL_01C8: ldc.i4.s 100
IL_01CA: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01CF: conv.u1
IL_01D0: stloc.s 8 (System.Int32)
IL_01D2: Label11
IL_01D2: Label12
IL_01D2: ldarg.2
IL_01D3: ldc.i4.0
IL_01D4: stfld System.UInt16 NetSegment::m_trafficBuffer
IL_01D9: ldarg.2
IL_01DA: ldc.i4.0
IL_01DB: stfld System.UInt16 NetSegment::m_noiseBuffer
IL_01E0: ldloc.s 7 (System.Int32)
IL_01E2: ldarg.2
IL_01E3: ldfld System.Byte NetSegment::m_trafficDensity
IL_01E8: ble => Label13
IL_01ED: ldarg.2
IL_01EE: ldarg.2
IL_01EF: ldfld System.Byte NetSegment::m_trafficDensity
IL_01F4: ldc.i4.5
IL_01F5: add
IL_01F6: ldloc.s 7 (System.Int32)
IL_01F8: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01FD: conv.u1
IL_01FE: stfld System.Byte NetSegment::m_trafficDensity
IL_0203: br => Label14
IL_0208: Label13
IL_0208: ldloc.s 7 (System.Int32)
IL_020A: ldarg.2
IL_020B: ldfld System.Byte NetSegment::m_trafficDensity
IL_0210: bge => Label15
IL_0215: ldarg.2
IL_0216: ldarg.2
IL_0217: ldfld System.Byte NetSegment::m_trafficDensity
IL_021C: ldc.i4.5
IL_021D: sub
IL_021E: ldloc.s 7 (System.Int32)
IL_0220: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0225: conv.u1
IL_0226: stfld System.Byte NetSegment::m_trafficDensity
IL_022B: Label14
IL_022B: Label15
IL_022B: ldloc.s 8 (System.Int32)
IL_022D: ldarg.2
IL_022E: ldfld System.Byte NetSegment::m_noiseDensity
IL_0233: ble => Label16
IL_0238: ldarg.2
IL_0239: ldarg.2
IL_023A: ldfld System.Byte NetSegment::m_noiseDensity
IL_023F: ldc.i4.2
IL_0240: add
IL_0241: ldloc.s 8 (System.Int32)
IL_0243: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0248: conv.u1
IL_0249: stfld System.Byte NetSegment::m_noiseDensity
IL_024E: br => Label17
IL_0253: Label16
IL_0253: ldloc.s 8 (System.Int32)
IL_0255: ldarg.2
IL_0256: ldfld System.Byte NetSegment::m_noiseDensity
IL_025B: bge => Label18
IL_0260: ldarg.2
IL_0261: ldarg.2
IL_0262: ldfld System.Byte NetSegment::m_noiseDensity
IL_0267: ldc.i4.2
IL_0268: sub
IL_0269: ldloc.s 8 (System.Int32)
IL_026B: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0270: conv.u1
IL_0271: stfld System.Byte NetSegment::m_noiseDensity
IL_0276: Label17
IL_0276: Label18
IL_0276: ldloc.1
IL_0277: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_027C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0281: ldarg.2
IL_0282: ldfld System.UInt16 NetSegment::m_startNode
IL_0287: ldelema NetNode
IL_028C: ldfld UnityEngine.Vector3 NetNode::m_position
IL_0291: stloc.s 11 (UnityEngine.Vector3)
IL_0293: ldloc.1
IL_0294: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0299: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_029E: ldarg.2
IL_029F: ldfld System.UInt16 NetSegment::m_endNode
IL_02A4: ldelema NetNode
IL_02A9: ldfld UnityEngine.Vector3 NetNode::m_position
IL_02AE: stloc.s 12 (UnityEngine.Vector3)
IL_02B0: ldloc.s 11 (UnityEngine.Vector3)
IL_02B2: ldloc.s 12 (UnityEngine.Vector3)
IL_02B4: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_02B9: ldc.r4 0.5
IL_02BE: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_02C3: stloc.s 13 (UnityEngine.Vector3)
IL_02C5: ldc.i4.0
IL_02C6: stloc.s 14 (System.Boolean)
IL_02C8: ldarg.0
IL_02C9: ldfld NetInfo NetAI::m_info
IL_02CE: ldfld Flags NetInfo::m_setVehicleFlags
IL_02D3: ldc.i4 268435456
IL_02D8: and
IL_02D9: brtrue => Label19
IL_02DE: call static TerrainManager
ColossalFramework.Singleton`1<TerrainManager>::get_instance()
IL_02E3: ldloc.s 13 (UnityEngine.Vector3)
IL_02E5: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_02EA: callvirt System.Single TerrainManager::WaterLevel(UnityEngine.Vector2
position)
IL_02EF: stloc.s 15 (System.Single)
IL_02F1: ldloc.s 15 (System.Single)
IL_02F3: ldloca.s 13 (UnityEngine.Vector3)
IL_02F5: ldfld System.Single UnityEngine.Vector3::y
IL_02FA: ldc.r4 1
IL_02FF: add
IL_0300: ble.un => Label20
IL_0305: ldloc.s 15 (System.Single)
IL_0307: ldc.r4 0
IL_030C: ble.un => Label21
IL_0311: ldc.i4.1
IL_0312: stloc.s 14 (System.Boolean)
IL_0314: ldarg.2
IL_0315: dup
IL_0316: ldfld Flags NetSegment::m_flags
IL_031B: ldc.i4 4194304
IL_0320: or
IL_0321: stfld Flags NetSegment::m_flags
IL_0326: ldloc.2
IL_0327: ldc.i8 4611686018695823360
IL_0330: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0335: stloc.2
IL_0336: ldarg.2
IL_0337: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_033C: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0341: stloc.s 16 (UnityEngine.Vector3)
IL_0343: ldarg.2
IL_0344: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0349: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_034E: stloc.s 17 (UnityEngine.Vector3)
IL_0350: ldloca.s 16 (UnityEngine.Vector3)
IL_0352: ldfld System.Single UnityEngine.Vector3::x
IL_0357: ldloca.s 16 (UnityEngine.Vector3)
IL_0359: ldfld System.Single UnityEngine.Vector3::z
IL_035E: ldloca.s 17 (UnityEngine.Vector3)
IL_0360: ldfld System.Single UnityEngine.Vector3::x
IL_0365: ldloca.s 17 (UnityEngine.Vector3)
IL_0367: ldfld System.Single UnityEngine.Vector3::z
IL_036C: call static System.Void RoadBaseAI::FloodParkedCars(System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0371: br => Label22
IL_0376: Label20
IL_0376: Label21
IL_0376: ldarg.2
IL_0377: dup
IL_0378: ldfld Flags NetSegment::m_flags
IL_037D: ldc.i4 -4194305
IL_0382: and
IL_0383: stfld Flags NetSegment::m_flags
IL_0388: ldloc.s 15 (System.Single)
IL_038A: ldloca.s 13 (UnityEngine.Vector3)
IL_038C: ldfld System.Single UnityEngine.Vector3::y
IL_0391: ble.un => Label23
IL_0396: ldloc.s 15 (System.Single)
IL_0398: ldc.r4 0
IL_039D: ble.un => Label24
IL_03A2: ldc.i4.1
IL_03A3: stloc.s 14 (System.Boolean)
IL_03A5: ldloc.2
IL_03A6: ldc.i4 268435456
IL_03AB: conv.i8
IL_03AC: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_03B1: stloc.2
IL_03B2: Label19
IL_03B2: Label22
IL_03B2: Label23
IL_03B2: Label24
IL_03B2: call static DistrictManager
ColossalFramework.Singleton`1<DistrictManager>::get_instance()
IL_03B7: stloc.s 18 (DistrictManager)
IL_03B9: ldloc.s 18 (DistrictManager)
IL_03BB: ldloc.s 13 (UnityEngine.Vector3)
IL_03BD: callvirt System.Byte DistrictManager::GetDistrict(UnityEngine.Vector3
worldPos)
IL_03C2: stloc.s 19 (System.Byte)
IL_03C4: ldloc.s 18 (DistrictManager)
IL_03C6: ldfld Array8`1<District> DistrictManager::m_districts
IL_03CB: ldfld District[] Array8`1<District>::m_buffer
IL_03D0: ldloc.s 19 (System.Byte)
IL_03D2: ldelema District
IL_03D7: ldfld CityPlanning District::m_cityPlanningPolicies
IL_03DC: stloc.s 20 (DistrictPolicies+CityPlanning)
IL_03DE: ldc.i4.s 100
IL_03E0: ldarg.2
IL_03E1: ldfld System.Byte NetSegment::m_noiseDensity
IL_03E6: ldc.i4.s 100
IL_03E8: sub
IL_03E9: ldarg.2
IL_03EA: ldfld System.Byte NetSegment::m_noiseDensity
IL_03EF: ldc.i4.s 100
IL_03F1: sub
IL_03F2: mul
IL_03F3: ldc.i4.s 100
IL_03F5: div
IL_03F6: sub
IL_03F7: stloc.s 21 (System.Int32)
IL_03F9: ldarg.0
IL_03FA: ldfld NetInfo NetAI::m_info
IL_03FF: ldfld VehicleType NetInfo::m_vehicleTypes
IL_0404: ldc.i4.1
IL_0405: and
IL_0406: brfalse => Label25
IL_040B: ldarg.0
IL_040C: ldfld NetInfo NetAI::m_info
IL_0411: ldfld Flags NetInfo::m_setVehicleFlags
IL_0416: ldc.i4 268435456
IL_041B: and
IL_041C: brtrue => Label26
IL_0421: ldloc.s 14 (System.Boolean)
IL_0423: brfalse => Label27
IL_0428: ldarg.2
IL_0429: ldfld Flags NetSegment::m_flags
IL_042E: ldc.i4 2099200
IL_0433: and
IL_0434: brtrue => Label28
IL_0439: ldloc.0
IL_043A: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_043F: ldc.i4.s 10
IL_0441: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0446: brtrue => Label29
IL_044B: ldloca.s 22 (TransferManager+TransferOffer)
IL_044D: initobj TransferManager+TransferOffer
IL_0453: ldloca.s 22 (TransferManager+TransferOffer)
IL_0455: ldc.i4.4
IL_0456: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_045B: ldloca.s 22 (TransferManager+TransferOffer)
IL_045D: ldarg.1
IL_045E: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_0463: ldloca.s 22 (TransferManager+TransferOffer)
IL_0465: ldloc.s 13 (UnityEngine.Vector3)
IL_0467: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_046C: ldloca.s 22 (TransferManager+TransferOffer)
IL_046E: ldc.i4.1
IL_046F: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_0474: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_0479: ldc.i4.s 73
IL_047B: ldloc.s 22 (TransferManager+TransferOffer)
IL_047D: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason
material, TransferOffer offer)
IL_0482: Label27
IL_0482: Label28
IL_0482: Label29
IL_0482: ldarg.2
IL_0483: ldfld System.Byte NetSegment::m_wetness
IL_0488: stloc.s 23 (System.Int32)
IL_048A: ldloc.1
IL_048B: ldfld System.Boolean NetManager::m_treatWetAsSnow
IL_0490: brtrue => Label30
IL_0495: ldloc.s 14 (System.Boolean)
IL_0497: brfalse => Label31
IL_049C: ldc.i4 255
IL_04A1: stloc.s 23 (System.Int32)
IL_04A3: br => Label32
IL_04A8: Label31
IL_04A8: ldloc.s 23 (System.Int32)
IL_04AA: ldc.i4.s 63
IL_04AC: add
IL_04AD: ldc.i4.5
IL_04AE: shr
IL_04AF: neg
IL_04B0: stloc.s 24 (System.Int32)
IL_04B2: call static WeatherManager
ColossalFramework.Singleton`1<WeatherManager>::get_instance()
IL_04B7: ldloc.s 13 (UnityEngine.Vector3)
IL_04B9: ldc.i4.0
IL_04BA: callvirt System.Single
WeatherManager::SampleRainIntensity(UnityEngine.Vector3 pos, System.Boolean
ignoreWeather)
IL_04BF: stloc.s 25 (System.Single)
IL_04C1: ldloc.s 25 (System.Single)
IL_04C3: ldc.r4 0
IL_04C8: beq => Label33
IL_04CD: ldloc.s 25 (System.Single)
IL_04CF: ldc.r4 4000
IL_04D4: mul
IL_04D5: ldc.r4 1000
IL_04DA: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_04DF: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_04E4: stloc.s 26 (System.Int32)
IL_04E6: ldloc.s 24 (System.Int32)
IL_04E8: ldloc.0
IL_04E9: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_04EE: ldloc.s 26 (System.Int32)
IL_04F0: ldloc.s 26 (System.Int32)
IL_04F2: ldc.i4.s 99
IL_04F4: add
IL_04F5: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_04FA: ldc.i4.s 100
IL_04FC: div
IL_04FD: add
IL_04FE: stloc.s 24 (System.Int32)
IL_0500: Label33
IL_0500: ldloc.s 23 (System.Int32)
IL_0502: ldloc.s 24 (System.Int32)
IL_0504: add
IL_0505: ldc.i4.0
IL_0506: ldc.i4 255
IL_050B: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_0510: stloc.s 23 (System.Int32)
IL_0512: Label32
IL_0512: br => Label34
IL_0517: Label30
IL_0517: ldarg.0
IL_0518: ldfld System.Boolean RoadBaseAI::m_accumulateSnow
IL_051D: brfalse => Label35
IL_0522: ldloc.s 14 (System.Boolean)
IL_0524: brfalse => Label36
IL_0529: ldc.i4 128
IL_052E: stloc.s 23 (System.Int32)
IL_0530: br => Label37
IL_0535: Label36
IL_0535: call static WeatherManager
ColossalFramework.Singleton`1<WeatherManager>::get_instance()
IL_053A: ldloc.s 13 (UnityEngine.Vector3)
IL_053C: ldc.i4.0
IL_053D: callvirt System.Single
WeatherManager::SampleRainIntensity(UnityEngine.Vector3 pos, System.Boolean
ignoreWeather)
IL_0542: stloc.s 27 (System.Single)
IL_0544: ldloc.s 27 (System.Single)
IL_0546: ldc.r4 0
IL_054B: beq => Label38
IL_0550: ldloc.s 27 (System.Single)
IL_0552: ldc.r4 400
IL_0557: mul
IL_0558: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_055D: stloc.s 28 (System.Int32)
IL_055F: ldloc.0
IL_0560: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0565: ldloc.s 28 (System.Int32)
IL_0567: ldloc.s 28 (System.Int32)
IL_0569: ldc.i4.s 99
IL_056B: add
IL_056C: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_0571: ldc.i4.s 100
IL_0573: div
IL_0574: stloc.s 29 (System.Int32)
IL_0576: call static UnlockManager
ColossalFramework.Singleton`1<UnlockManager>::get_instance()
IL_057B: ldc.i4.s 24
IL_057D: callvirt System.Boolean UnlockManager::Unlocked(Feature feature)
IL_0582: brfalse => Label39
IL_0587: ldloc.s 23 (System.Int32)
IL_0589: ldloc.s 29 (System.Int32)
IL_058B: add
IL_058C: ldc.i4 255
IL_0591: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0596: stloc.s 23 (System.Int32)
IL_0598: br => Label40
IL_059D: Label39
IL_059D: ldloc.s 23 (System.Int32)
IL_059F: ldloc.s 29 (System.Int32)
IL_05A1: add
IL_05A2: ldc.i4 128
IL_05A7: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_05AC: stloc.s 23 (System.Int32)
IL_05AE: Label40
IL_05AE: br => Label41
IL_05B3: Label38
IL_05B3: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_05B8: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_05BD: ldc.i4.4
IL_05BE: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_05C3: brtrue => Label42
IL_05C8: ldloc.s 23 (System.Int32)
IL_05CA: ldc.i4.1
IL_05CB: sub
IL_05CC: ldc.i4.0
IL_05CD: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_05D2: stloc.s 23 (System.Int32)
IL_05D4: Label41
IL_05D4: Label42
IL_05D4: ldloc.s 23 (System.Int32)
IL_05D6: ldc.i4.s 64
IL_05D8: blt => Label43
IL_05DD: ldarg.2
IL_05DE: ldfld Flags NetSegment::m_flags
IL_05E3: ldc.i4 6293504
IL_05E8: and
IL_05E9: brtrue => Label44
IL_05EE: ldloc.0
IL_05EF: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_05F4: ldc.i4.s 10
IL_05F6: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_05FB: brtrue => Label45
IL_0600: ldloca.s 30 (TransferManager+TransferOffer)
IL_0602: initobj TransferManager+TransferOffer
IL_0608: ldloca.s 30 (TransferManager+TransferOffer)
IL_060A: ldloc.s 23 (System.Int32)
IL_060C: ldc.i4.s 50
IL_060E: div
IL_060F: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_0614: ldloca.s 30 (TransferManager+TransferOffer)
IL_0616: ldarg.1
IL_0617: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_061C: ldloca.s 30 (TransferManager+TransferOffer)
IL_061E: ldloc.s 13 (UnityEngine.Vector3)
IL_0620: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_0625: ldloca.s 30 (TransferManager+TransferOffer)
IL_0627: ldc.i4.1
IL_0628: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_062D: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_0632: ldc.i4.s 64
IL_0634: ldloc.s 30 (TransferManager+TransferOffer)
IL_0636: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason
material, TransferOffer offer)
IL_063B: Label43
IL_063B: Label44
IL_063B: Label45
IL_063B: ldloc.s 23 (System.Int32)
IL_063D: ldc.i4 192
IL_0642: blt => Label46
IL_0647: ldloc.2
IL_0648: ldc.i4 536870912
IL_064D: conv.i8
IL_064E: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0653: stloc.2
IL_0654: Label46
IL_0654: ldloc.s 18 (DistrictManager)
IL_0656: ldfld Array8`1<District> DistrictManager::m_districts
IL_065B: ldfld District[] Array8`1<District>::m_buffer
IL_0660: ldloc.s 19 (System.Byte)
IL_0662: ldelema District
IL_0667: ldflda DistrictProductionData District::m_productionData
IL_066C: dup
IL_066D: ldfld System.UInt32 DistrictProductionData::m_tempSnowCover
IL_0672: ldloc.s 23 (System.Int32)
IL_0674: add
IL_0675: stfld System.UInt32 DistrictProductionData::m_tempSnowCover
IL_067A: Label34
IL_067A: Label35
IL_067A: Label37
IL_067A: ldloc.s 23 (System.Int32)
IL_067C: ldarg.2
IL_067D: ldfld System.Byte NetSegment::m_wetness
IL_0682: beq => Label47
IL_0687: ldarg.2
IL_0688: ldfld System.Byte NetSegment::m_wetness
IL_068D: ldloc.s 23 (System.Int32)
IL_068F: sub
IL_0690: call static System.Int32 UnityEngine.Mathf::Abs(System.Int32 value)
IL_0695: ldc.i4.s 10
IL_0697: ble => Label48
IL_069C: ldarg.2
IL_069D: ldloc.s 23 (System.Int32)
IL_069F: conv.u1
IL_06A0: stfld System.Byte NetSegment::m_wetness
IL_06A5: ldsfld InstanceID InstanceID::Empty
IL_06AA: stloc.s 31 (InstanceID)
IL_06AC: ldloca.s 31 (InstanceID)
IL_06AE: ldarg.1
IL_06AF: call System.Void InstanceID::set_NetSegment(System.UInt16 value)
IL_06B4: ldloc.1
IL_06B5: ldloc.s 31 (InstanceID)
IL_06B7: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06BC: ldloca.s 31 (InstanceID)
IL_06BE: ldarg.2
IL_06BF: ldfld System.UInt16 NetSegment::m_startNode
IL_06C4: call System.Void InstanceID::set_NetNode(System.UInt16 value)
IL_06C9: ldloc.1
IL_06CA: ldloc.s 31 (InstanceID)
IL_06CC: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06D1: ldloca.s 31 (InstanceID)
IL_06D3: ldarg.2
IL_06D4: ldfld System.UInt16 NetSegment::m_endNode
IL_06D9: call System.Void InstanceID::set_NetNode(System.UInt16 value)
IL_06DE: ldloc.1
IL_06DF: ldloc.s 31 (InstanceID)
IL_06E1: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06E6: br => Label49
IL_06EB: Label48
IL_06EB: ldarg.2
IL_06EC: ldloc.s 23 (System.Int32)
IL_06EE: conv.u1
IL_06EF: stfld System.Byte NetSegment::m_wetness
IL_06F4: ldloc.1
IL_06F5: ldc.i4 256
IL_06FA: stfld System.Int32 NetManager::m_wetnessChanged
IL_06FF: Label26
IL_06FF: Label47
IL_06FF: Label49
IL_06FF: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_0701: ldc.i4 1024
IL_0706: and
IL_0707: brfalse => Label50
IL_070C: ldloc.s 21 (System.Int32)
IL_070E: ldc.i4.3
IL_070F: mul
IL_0710: ldc.i4.1
IL_0711: add
IL_0712: ldc.i4.1
IL_0713: shr
IL_0714: stloc.s 21 (System.Int32)
IL_0716: ldc.i4 700
IL_071B: ldc.i4.s 50
IL_071D: ldarg.2
IL_071E: ldfld System.Byte NetSegment::m_trafficDensity
IL_0723: ldc.i4.6
IL_0724: mul
IL_0725: add
IL_0726: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_072B: stloc.s 32 (System.Int32)
IL_072D: br => Label51
IL_0732: Label50
IL_0732: ldc.i4 500
IL_0737: ldc.i4.s 50
IL_0739: ldarg.2
IL_073A: ldfld System.Byte NetSegment::m_trafficDensity
IL_073F: ldc.i4.4
IL_0740: mul
IL_0741: add
IL_0742: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0747: stloc.s 32 (System.Int32)
IL_0749: Label51
IL_0749: ldarg.0
IL_074A: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_074F: brtrue => Label52
IL_0754: ldloc.0
IL_0755: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_075A: ldloc.s 32 (System.Int32)
IL_075C: ldloc.s 32 (System.Int32)
IL_075E: ldc.i4.s 99
IL_0760: add
IL_0761: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_0766: ldc.i4.s 100
IL_0768: div
IL_0769: stloc.s 33 (System.Int32)
IL_076B: ldarg.2
IL_076C: ldarg.2
IL_076D: ldfld System.Byte NetSegment::m_condition
IL_0772: ldloc.s 33 (System.Int32)
IL_0774: sub
IL_0775: ldc.i4.0
IL_0776: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_077B: conv.u1
IL_077C: stfld System.Byte NetSegment::m_condition
IL_0781: ldarg.2
IL_0782: ldfld System.Byte NetSegment::m_condition
IL_0787: ldc.i4 192
IL_078C: bge => Label53
IL_0791: ldarg.2
IL_0792: ldfld Flags NetSegment::m_flags
IL_0797: ldc.i4 6293504
IL_079C: and
IL_079D: brtrue => Label54
IL_07A2: ldloc.0
IL_07A3: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_07A8: ldc.i4.s 20
IL_07AA: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_07AF: brtrue => Label55
IL_07B4: ldloca.s 34 (TransferManager+TransferOffer)
IL_07B6: initobj TransferManager+TransferOffer
IL_07BC: ldloca.s 34 (TransferManager+TransferOffer)
IL_07BE: ldc.i4 255
IL_07C3: ldarg.2
IL_07C4: ldfld System.Byte NetSegment::m_condition
IL_07C9: sub
IL_07CA: ldc.i4.s 50
IL_07CC: div
IL_07CD: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_07D2: ldloca.s 34 (TransferManager+TransferOffer)
IL_07D4: ldarg.1
IL_07D5: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_07DA: ldloca.s 34 (TransferManager+TransferOffer)
IL_07DC: ldloc.s 13 (UnityEngine.Vector3)
IL_07DE: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_07E3: ldloca.s 34 (TransferManager+TransferOffer)
IL_07E5: ldc.i4.1
IL_07E6: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_07EB: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_07F0: ldc.i4.s 66
IL_07F2: ldloc.s 34 (TransferManager+TransferOffer)
IL_07F4: callvirt System.Void TransferManager::AddIncomingOffer(TransferReason
material, TransferOffer offer)
IL_07F9: Label25
IL_07F9: Label52
IL_07F9: Label53
IL_07F9: Label54
IL_07F9: Label55
IL_07F9: ldarg.0
IL_07FA: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_07FF: brtrue => Label56
IL_0804: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_0806: ldc.i4.s 32
IL_0808: and
IL_0809: brfalse => Label57
IL_080E: ldarg.2
IL_080F: dup
IL_0810: ldfld Flags NetSegment::m_flags
IL_0815: ldc.i4 1048576
IL_081A: or
IL_081B: stfld Flags NetSegment::m_flags
IL_0820: br => Label58
IL_0825: Label57
IL_0825: ldarg.2
IL_0826: dup
IL_0827: ldfld Flags NetSegment::m_flags
IL_082C: ldc.i4 -1048577
IL_0831: and
IL_0832: stfld Flags NetSegment::m_flags
IL_0837: Label58
IL_0837: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_0839: ldc.i4 128
IL_083E: and
IL_083F: brfalse => Label59
IL_0844: ldarg.2
IL_0845: dup
IL_0846: ldfld Flags NetSegment::m_flags
IL_084B: ldc.i4 8388608
IL_0850: or
IL_0851: stfld Flags NetSegment::m_flags
IL_0856: br => Label60
IL_085B: Label59
IL_085B: ldarg.2
IL_085C: dup
IL_085D: ldfld Flags NetSegment::m_flags
IL_0862: ldc.i4 -8388609
IL_0867: and
IL_0868: stfld Flags NetSegment::m_flags
IL_086D: Label60
IL_086D: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_086F: ldc.i4 512
IL_0874: and
IL_0875: brfalse => Label61
IL_087A: ldarg.2
IL_087B: dup
IL_087C: ldfld Flags NetSegment::m_flags
IL_0881: ldc.i4 16777216
IL_0886: or
IL_0887: stfld Flags NetSegment::m_flags
IL_088C: br => Label62
IL_0891: Label61
IL_0891: ldarg.2
IL_0892: dup
IL_0893: ldfld Flags NetSegment::m_flags
IL_0898: ldc.i4 -16777217
IL_089D: and
IL_089E: stfld Flags NetSegment::m_flags
IL_08A3: Label62
IL_08A3: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_08A5: ldc.i4 65536
IL_08AA: and
IL_08AB: brfalse => Label63
IL_08B0: ldarg.2
IL_08B1: dup
IL_08B2: ldfld Flags NetSegment::m_flags
IL_08B7: ldc.i4 256
IL_08BC: or
IL_08BD: stfld Flags NetSegment::m_flags
IL_08C2: br => Label64
IL_08C7: Label63
IL_08C7: ldarg.2
IL_08C8: dup
IL_08C9: ldfld Flags NetSegment::m_flags
IL_08CE: ldc.i4 -257
IL_08D3: and
IL_08D4: stfld Flags NetSegment::m_flags
IL_08D9: Label56
IL_08D9: Label64
IL_08D9: ldarg.0
IL_08DA: ldfld System.Int32 RoadBaseAI::m_noiseAccumulation
IL_08DF: ldloc.s 21 (System.Int32)
IL_08E1: mul
IL_08E2: ldc.i4.s 100
IL_08E4: div
IL_08E5: stloc.s 35 (System.Int32)
IL_08E7: ldloc.s 35 (System.Int32)
IL_08E9: brfalse => Label65
IL_08EE: ldloc.s 11 (UnityEngine.Vector3)
IL_08F0: ldloc.s 12 (UnityEngine.Vector3)
IL_08F2: call static System.Single
UnityEngine.Vector3::Distance(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_08F7: stloc.s 36 (System.Single)
IL_08F9: ldloc.s 36 (System.Single)
IL_08FB: ldarg.0
IL_08FC: ldfld System.Single RoadBaseAI::m_noiseRadius
IL_0901: div
IL_0902: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single
f)
IL_0907: stloc.s 37 (System.Int32)
IL_0909: ldc.i4.0
IL_090A: stloc.s 38 (System.Int32)
IL_090C: br => Label66
IL_0911: Label67
IL_0911: ldloc.s 11 (UnityEngine.Vector3)
IL_0913: ldloc.s 12 (UnityEngine.Vector3)
IL_0915: ldloc.s 38 (System.Int32)
IL_0917: ldc.i4.1
IL_0918: add
IL_0919: conv.r4
IL_091A: ldloc.s 37 (System.Int32)
IL_091C: ldc.i4.1
IL_091D: add
IL_091E: conv.r4
IL_091F: div
IL_0920: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_0925: stloc.s 39 (UnityEngine.Vector3)
IL_0927: call static ImmaterialResourceManager
ColossalFramework.Singleton`1<ImmaterialResourceManager>::get_instance()
IL_092C: ldc.i4.8
IL_092D: ldloc.s 35 (System.Int32)
IL_092F: ldloc.s 39 (UnityEngine.Vector3)
IL_0931: ldarg.0
IL_0932: ldfld System.Single RoadBaseAI::m_noiseRadius
IL_0937: callvirt System.Int32 ImmaterialResourceManager::AddResource(Resource
resource, System.Int32 rate, UnityEngine.Vector3 position, System.Single radius)
IL_093C: pop
IL_093D: ldloc.s 38 (System.Int32)
IL_093F: ldc.i4.1
IL_0940: add
IL_0941: stloc.s 38 (System.Int32)
IL_0943: Label66
IL_0943: ldloc.s 38 (System.Int32)
IL_0945: ldloc.s 37 (System.Int32)
IL_0947: blt => Label67
IL_094C: Label65
IL_094C: ldarg.2
IL_094D: ldfld System.Byte NetSegment::m_trafficDensity
IL_0952: ldc.i4.s 50
IL_0954: blt => Label68
IL_0959: ldarg.2
IL_095A: ldfld System.Single NetSegment::m_averageLength
IL_095F: ldc.r4 25
IL_0964: bge.un => Label69
IL_0969: ldloc.1
IL_096A: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_096F: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0974: ldarg.2
IL_0975: ldfld System.UInt16 NetSegment::m_startNode
IL_097A: ldelema NetNode
IL_097F: ldfld Flags NetNode::m_flags
IL_0984: ldc.i4 10485760
IL_0989: and
IL_098A: ldc.i4 8388608
IL_098F: bne.un => Label70
IL_0994: ldloc.1
IL_0995: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_099A: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_099F: ldarg.2
IL_09A0: ldfld System.UInt16 NetSegment::m_endNode
IL_09A5: ldelema NetNode
IL_09AA: ldfld Flags NetNode::m_flags
IL_09AF: ldc.i4 10485760
IL_09B4: and
IL_09B5: ldc.i4 8388608
IL_09BA: bne.un => Label71
IL_09BF: call static GuideManager
ColossalFramework.Singleton`1<GuideManager>::get_instance()
IL_09C4: ldfld GuideController SimulationManagerBase`2<GuideManager,
GuideController>::m_properties
IL_09C9: stloc.s 40 (GuideController)
IL_09CB: ldloc.s 40 (GuideController)
IL_09CD: brfalse => Label72
IL_09D2: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_09D7: ldfld NetSegmentInstanceGuide NetManager::m_shortRoadTraffic
IL_09DC: ldloc.s 40 (GuideController)
IL_09DE: ldfld GuideInfo GuideController::m_shortRoadTraffic
IL_09E3: ldarg.1
IL_09E4: ldc.i4.0
IL_09E5: callvirt System.Void NetSegmentInstanceGuide::Activate(GuideInfo
guideInfo, System.UInt16 segmentID, System.Boolean ignoreID)
IL_09EA: Label68
IL_09EA: Label69
IL_09EA: Label70
IL_09EA: Label71
IL_09EA: Label72
IL_09EA: ldarg.2
IL_09EB: ldfld Flags NetSegment::m_flags
IL_09F0: ldc.i4.8
IL_09F1: and
IL_09F2: brfalse => Label73
IL_09F7: call static GuideManager
ColossalFramework.Singleton`1<GuideManager>::get_instance()
IL_09FC: ldfld GuideController SimulationManagerBase`2<GuideManager,
GuideController>::m_properties
IL_0A01: stloc.s 41 (GuideController)
IL_0A03: ldloc.s 41 (GuideController)
IL_0A05: brfalse => Label74
IL_0A0A: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0A0F: ldfld NetSegmentInstanceGuide NetManager::m_roadDestroyed
IL_0A14: ldloc.s 41 (GuideController)
IL_0A16: ldfld GuideInfo GuideController::m_roadDestroyed
IL_0A1B: ldarg.1
IL_0A1C: ldc.i4.0
IL_0A1D: callvirt System.Void NetSegmentInstanceGuide::Activate(GuideInfo
guideInfo, System.UInt16 segmentID, System.Boolean ignoreID)
IL_0A22: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0A27: ldfld ServiceTypeGuide NetManager::m_roadDestroyed2
IL_0A2C: ldloc.s 41 (GuideController)
IL_0A2E: ldfld GuideInfo GuideController::m_roadDestroyed2
IL_0A33: ldarg.0
IL_0A34: ldfld NetInfo NetAI::m_info
IL_0A39: ldfld ItemClass NetInfo::m_class
IL_0A3E: ldfld Service ItemClass::m_service
IL_0A43: callvirt System.Void ServiceTypeGuide::Activate(GuideInfo guideInfo,
Service service)
IL_0A48: Label74
IL_0A48: ldloc.0
IL_0A49: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0A4E: ldc.i4.8
IL_0A4F: shr.un
IL_0A50: ldc.i4.s 15
IL_0A52: and
IL_0A53: conv.u8
IL_0A54: ldarg.1
IL_0A55: ldc.i4.s 15
IL_0A57: and
IL_0A58: conv.i8
IL_0A59: bne.un => Label75
IL_0A5E: ldarg.2
IL_0A5F: ldfld System.Single NetSegment::m_averageLength
IL_0A64: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_0A69: stloc.s 42 (System.Int32)
IL_0A6B: call static StatisticsManager
ColossalFramework.Singleton`1<StatisticsManager>::get_instance()
IL_0A70: ldc.i4.s 53
IL_0A72: callvirt StatisticBase StatisticsManager::Acquire(StatisticType type)
IL_0A77: stloc.s 43 (StatisticBase)
IL_0A79: ldloc.s 43 (StatisticBase)
IL_0A7B: ldloc.s 42 (System.Int32)
IL_0A7D: callvirt abstract virtual System.Void StatisticBase::Add(System.Int32
delta)
IL_0A82: Label73
IL_0A82: Label75
IL_0A82: ldarg.2
IL_0A83: ldloc.2
IL_0A84: stfld Problem NetSegment::m_problems
IL_0A89: // end original
IL_0A89: Label0
IL_0A89: 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: ldnull
IL_0018: ldarg 0
IL_001C: ldarg 1
IL_0020: call static System.Boolean
TrafficManager.Patch._RoadBaseAI.TrafficLightSimulationStepPatch::Prefix(RoadBaseAI
__instance, System.UInt16 nodeID, NetNode& data)
IL_0025: stloc 20 (System.Boolean)
IL_0029: Label1
IL_0029: nop
IL_002A: ldloc 20 (System.Boolean)
IL_002E: brfalse => Label0
IL_0033: // start original
IL_0033: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0038: stloc.0
IL_0039: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_003E: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0043: stloc.1
IL_0044: ldc.i4.0
IL_0045: stloc.2
IL_0046: ldc.i4.0
IL_0047: stloc.3
IL_0048: ldc.i4.0
IL_0049: stloc.s 4 (System.Int32)
IL_004B: br => Label2
IL_0050: Label14
IL_0050: ldarg.1
IL_0051: ldloc.s 4 (System.Int32)
IL_0053: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0058: stloc.s 5 (System.UInt16)
IL_005A: ldloc.s 5 (System.UInt16)
IL_005C: brfalse => Label3
IL_0061: ldloc.0
IL_0062: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0067: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_006C: ldloc.s 5 (System.UInt16)
IL_006E: ldelema NetSegment
IL_0073: call NetInfo NetSegment::get_Info()
IL_0078: stloc.s 6 (NetInfo)
IL_007A: ldloc.s 6 (NetInfo)
IL_007C: ldfld ItemClass NetInfo::m_class
IL_0081: ldfld Service ItemClass::m_service
IL_0086: ldc.i4.s 9
IL_0088: beq => Label4
IL_008D: ldloc.s 6 (NetInfo)
IL_008F: ldfld Lane[] NetInfo::m_lanes
IL_0094: brfalse => Label5
IL_0099: ldloc.0
IL_009A: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_009F: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00A4: ldloc.s 5 (System.UInt16)
IL_00A6: ldelema NetSegment
IL_00AB: ldfld System.UInt16 NetSegment::m_startNode
IL_00B0: ldarg.0
IL_00B1: ceq
IL_00B3: stloc.s 7 (System.Boolean)
IL_00B5: ldloc.0
IL_00B6: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_00BB: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00C0: ldloc.s 5 (System.UInt16)
IL_00C2: ldelema NetSegment
IL_00C7: ldfld System.UInt32 NetSegment::m_lanes
IL_00CC: stloc.s 8 (System.UInt32)
IL_00CE: ldc.i4.0
IL_00CF: stloc.s 9 (System.Int32)
IL_00D1: br => Label6
IL_00D6: Label12
IL_00D6: ldloc.s 6 (NetInfo)
IL_00D8: ldfld Lane[] NetInfo::m_lanes
IL_00DD: ldloc.s 9 (System.Int32)
IL_00DF: ldelem.ref
IL_00E0: ldfld LaneType Lane::m_laneType
IL_00E5: ldc.i4.1
IL_00E6: bne.un => Label7
IL_00EB: ldloc.0
IL_00EC: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00F1: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00F6: ldloc.s 8 (System.UInt32)
IL_00F8: conv.u
IL_00F9: ldelema NetLane
IL_00FE: ldloc.s 7 (System.Boolean)
IL_0100: brfalse => Label8
IL_0105: ldc.r4 0
IL_010A: br => Label9
IL_010F: Label8
IL_010F: ldc.r4 1
IL_0114: Label9
IL_0114: call UnityEngine.Vector3 NetLane::CalculatePosition(System.Single
laneOffset)
IL_0119: stloc.s 10 (UnityEngine.Vector3)
IL_011B: ldloc.s 10 (UnityEngine.Vector3)
IL_011D: call static System.Boolean
TrainTrackBaseAI::CheckOverlap(UnityEngine.Vector3 pos)
IL_0122: brfalse => Label10
IL_0127: ldc.i4.1
IL_0128: stloc.2
IL_0129: Label7
IL_0129: Label10
IL_0129: ldloc.0
IL_012A: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_012F: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0134: ldloc.s 8 (System.UInt32)
IL_0136: conv.u
IL_0137: ldelema NetLane
IL_013C: ldfld System.UInt32 NetLane::m_nextLane
IL_0141: stloc.s 8 (System.UInt32)
IL_0143: ldloc.s 9 (System.Int32)
IL_0145: ldc.i4.1
IL_0146: add
IL_0147: stloc.s 9 (System.Int32)
IL_0149: Label6
IL_0149: ldloc.s 9 (System.Int32)
IL_014B: ldloc.s 6 (NetInfo)
IL_014D: ldfld Lane[] NetInfo::m_lanes
IL_0152: ldlen
IL_0153: conv.i4
IL_0154: bge => Label11
IL_0159: ldloc.s 8 (System.UInt32)
IL_015B: brtrue => Label12
IL_0160: Label5
IL_0160: Label11
IL_0160: ldarg.0
IL_0161: ldloc.0
IL_0162: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0167: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_016C: ldloc.s 5 (System.UInt16)
IL_016E: ldelema NetSegment
IL_0173: ldloc.1
IL_0174: ldc.i4 256
IL_0179: sub
IL_017A: ldloca.s 11 (RoadBaseAI+TrafficLightState)
IL_017C: ldloca.s 12 (RoadBaseAI+TrafficLightState)
IL_017E: ldloca.s 13 (System.Boolean)
IL_0180: ldloca.s 14 (System.Boolean)
IL_0182: 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_0187: ldloc.s 13 (System.Boolean)
IL_0189: brfalse => Label13
IL_018E: ldc.i4.1
IL_018F: stloc.2
IL_0190: Label3
IL_0190: Label4
IL_0190: Label13
IL_0190: ldloc.s 4 (System.Int32)
IL_0192: ldc.i4.1
IL_0193: add
IL_0194: stloc.s 4 (System.Int32)
IL_0196: Label2
IL_0196: ldloc.s 4 (System.Int32)
IL_0198: ldc.i4.8
IL_0199: blt => Label14
IL_019E: ldloc.2
IL_019F: stloc.3
IL_01A0: ldc.i4.0
IL_01A1: stloc.s 15 (System.Int32)
IL_01A3: br => Label15
IL_01A8: Label29
IL_01A8: ldarg.1
IL_01A9: ldloc.s 15 (System.Int32)
IL_01AB: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_01B0: stloc.s 16 (System.UInt16)
IL_01B2: ldloc.s 16 (System.UInt16)
IL_01B4: brfalse => Label16
IL_01B9: ldloc.0
IL_01BA: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01BF: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01C4: ldloc.s 16 (System.UInt16)
IL_01C6: ldelema NetSegment
IL_01CB: call NetInfo NetSegment::get_Info()
IL_01D0: stloc.s 17 (NetInfo)
IL_01D2: ldarg.0
IL_01D3: ldloc.0
IL_01D4: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01D9: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01DE: ldloc.s 16 (System.UInt16)
IL_01E0: ldelema NetSegment
IL_01E5: ldloc.1
IL_01E6: ldc.i4 256
IL_01EB: sub
IL_01EC: ldloca.s 18 (RoadBaseAI+TrafficLightState)
IL_01EE: ldloca.s 19 (RoadBaseAI+TrafficLightState)
IL_01F0: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_01F5: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01F7: ldc.i4.s -2
IL_01F9: and
IL_01FA: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01FC: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_01FE: ldc.i4.s -2
IL_0200: and
IL_0201: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0203: ldloc.s 17 (NetInfo)
IL_0205: ldfld ItemClass NetInfo::m_class
IL_020A: ldfld Service ItemClass::m_service
IL_020F: ldc.i4.s 9
IL_0211: bne.un => Label17
IL_0216: ldloc.3
IL_0217: brfalse => Label18
IL_021C: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_021E: ldc.i4.2
IL_021F: and
IL_0220: brtrue => Label19
IL_0225: ldc.i4.3
IL_0226: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0228: Label19
IL_0228: br => Label20
IL_022D: Label18
IL_022D: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_022F: ldc.i4.2
IL_0230: and
IL_0231: brfalse => Label21
IL_0236: ldc.i4.1
IL_0237: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0239: Label20
IL_0239: Label21
IL_0239: ldc.i4.0
IL_023A: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_023C: br => Label22
IL_0241: Label17
IL_0241: ldloc.3
IL_0242: brfalse => Label23
IL_0247: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0249: ldc.i4.2
IL_024A: and
IL_024B: brfalse => Label24
IL_0250: ldc.i4.1
IL_0251: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0253: Label24
IL_0253: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0255: ldc.i4.2
IL_0256: and
IL_0257: brtrue => Label25
IL_025C: ldc.i4.3
IL_025D: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_025F: Label25
IL_025F: br => Label26
IL_0264: Label23
IL_0264: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0266: ldc.i4.2
IL_0267: and
IL_0268: brtrue => Label27
IL_026D: ldc.i4.3
IL_026E: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0270: Label27
IL_0270: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0272: ldc.i4.2
IL_0273: and
IL_0274: brfalse => Label28
IL_0279: ldc.i4.1
IL_027A: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_027C: Label22
IL_027C: Label26
IL_027C: Label28
IL_027C: ldarg.0
IL_027D: ldloc.0
IL_027E: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0283: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0288: ldloc.s 16 (System.UInt16)
IL_028A: ldelema NetSegment
IL_028F: ldloc.1
IL_0290: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0292: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0294: ldc.i4.0
IL_0295: ldc.i4.0
IL_0296: 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_029B: Label16
IL_029B: ldloc.s 15 (System.Int32)
IL_029D: ldc.i4.1
IL_029E: add
IL_029F: stloc.s 15 (System.Int32)
IL_02A1: Label15
IL_02A1: ldloc.s 15 (System.Int32)
IL_02A3: ldc.i4.8
IL_02A4: blt => Label29
IL_02A9: // end original
IL_02A9: Label0
IL_02A9: 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._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<CitizenManager>::get_instance()
IL_0045: stloc.1
IL_0046: ldloc.1
IL_0047: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_004C: ldfld Citizen[] Array32`1<Citizen>::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<NetManager>::get_instance()
IL_0089: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008E: ldfld NetNode[] Array16`1<NetNode>::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<TransportManager>::get_instance()
IL_00AA: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_00AF: ldfld TransportLine[] Array16`1<TransportLine>::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<Citizen> CitizenManager::m_citizens
IL_0145: ldfld Citizen[] Array32`1<Citizen>::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<Citizen> CitizenManager::m_citizens
IL_016E: ldfld Citizen[] Array32`1<Citizen>::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<BuildingManager>::get_instance()
IL_018A: stloc.s 5 (BuildingManager)
IL_018C: ldloc.s 5 (BuildingManager)
IL_018E: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0193: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_01BE: ldfld Building[] Array16`1<Building>::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: 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<SimulationManager>::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<BuildingManager>::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<InfoManager>::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<NetManager>::get_instance()
IL_0036: stloc.0
IL_0037: ldloc.0
IL_0038: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0074: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16>
NetManager::m_updateNameVisibility
IL_00CF: ldarg.1
IL_00D0: callvirt System.Boolean
System.Collections.Generic.HashSet`1<System.UInt16>::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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<CustomAssetMetaData>::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<CustomAssetMetaData>::GetListingMetaData(System.Int32 index)
IL_0037: stloc.0
IL_0038: ldarg.0
IL_0039: ldloc.0
IL_003A: call System.Void
LoadSavePanelBase`1<CustomAssetMetaData>::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<CustomAssetMetaData>::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<SimulationManager>::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<SimulationManager>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_010B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<VehicleInfo>::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<VehicleInfo>::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<VehicleInfo>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_023B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<BuildingInfo>::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<BuildingInfo>::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<BuildingInfo>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_036B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<BuildingInfo>::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<BuildingInfo>::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<BuildingInfo>::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<BuildingManager>::get_instance()
IL_0482: callvirt virtual System.Void SimulationManagerBase`2<BuildingManager,
BuildingProperties>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_04A5: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<BuildingInfo>::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<CitizenInfo>::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<VehicleInfo>::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<PropInfo>::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<TreeInfo>::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<NetInfo>::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
IL_00B7: br => Label37
IL_00BC: Label0
IL_00BC: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00C1: ldc.i4.0
IL_00C2: ldc.i4.0
IL_00C3: ldc.i4.m1
IL_00C4: ldc.r4 300
IL_00C9: ldc.i4.0
IL_00CA: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_00CF: br => Label38
IL_00D4: Label1
IL_00D4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00D9: ldc.i4.0
IL_00DA: ldc.i4.0
IL_00DB: ldc.i4.m1
IL_00DC: ldc.r4 300
IL_00E1: ldc.i4.0
IL_00E2: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_00E7: br => Label39
IL_00EC: Label2
IL_00EC: ldarg.2
IL_00ED: brtrue => Label40
IL_00F2: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00F7: ldc.i4.s 15
IL_00F9: ldc.i4.0
IL_00FA: ldc.i4.0
IL_00FB: ldc.r4 500
IL_0100: ldc.i4.0
IL_0101: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0106: br => Label41
IL_010B: Label40
IL_010B: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0110: ldc.i4.0
IL_0111: ldc.i4.0
IL_0112: ldc.i4.m1
IL_0113: ldc.r4 300
IL_0118: ldc.i4.0
IL_0119: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_011E: Label41
IL_011E: br => Label42
IL_0123: Label3
IL_0123: ldarg.2
IL_0124: ldc.i4.1
IL_0125: bne.un => Label43
IL_012A: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_012F: ldc.i4.s 14
IL_0131: ldc.i4.0
IL_0132: ldc.i4.1
IL_0133: ldc.r4 500
IL_0138: ldc.i4.0
IL_0139: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_013E: br => Label44
IL_0143: Label43
IL_0143: ldarg.2
IL_0144: ldc.i4.3
IL_0145: bne.un => Label45
IL_014A: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_014F: ldc.i4.s 14
IL_0151: ldc.i4.0
IL_0152: ldc.i4.4
IL_0153: ldc.r4 500
IL_0158: ldc.i4.0
IL_0159: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_015E: br => Label46
IL_0163: Label45
IL_0163: ldarg.2
IL_0164: ldc.i4.2
IL_0165: bne.un => Label47
IL_016A: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_016F: ldc.i4.s 14
IL_0171: ldc.i4.0
IL_0172: ldc.i4.3
IL_0173: ldc.r4 500
IL_0178: ldc.i4.0
IL_0179: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_017E: br => Label48
IL_0183: Label47
IL_0183: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0188: ldc.i4.s 14
IL_018A: ldc.i4.0
IL_018B: ldc.i4.0
IL_018C: ldc.r4 500
IL_0191: ldc.i4.0
IL_0192: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0197: Label44
IL_0197: Label46
IL_0197: Label48
IL_0197: br => Label49
IL_019C: Label12
IL_019C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01A1: ldc.i4.0
IL_01A2: ldc.i4.0
IL_01A3: ldc.i4.m1
IL_01A4: ldc.r4 300
IL_01A9: ldc.i4.0
IL_01AA: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01AF: br => Label50
IL_01B4: Label4
IL_01B4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01B9: ldc.i4.0
IL_01BA: ldc.i4.0
IL_01BB: ldc.i4.m1
IL_01BC: ldc.r4 300
IL_01C1: ldc.i4.0
IL_01C2: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01C7: br => Label51
IL_01CC: Label5
IL_01CC: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01D1: ldc.i4.0
IL_01D2: ldc.i4.0
IL_01D3: ldc.i4.m1
IL_01D4: ldc.r4 300
IL_01D9: ldc.i4.0
IL_01DA: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01DF: br => Label52
IL_01E4: Label8
IL_01E4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01E9: ldc.i4.0
IL_01EA: ldc.i4.0
IL_01EB: ldc.i4.m1
IL_01EC: ldc.r4 300
IL_01F1: ldc.i4.0
IL_01F2: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01F7: br => Label53
IL_01FC: Label6
IL_01FC: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0201: ldc.i4.0
IL_0202: ldc.i4.0
IL_0203: ldc.i4.m1
IL_0204: ldc.r4 300
IL_0209: ldc.i4.0
IL_020A: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_020F: br => Label54
IL_0214: Label7
IL_0214: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0219: ldc.i4.0
IL_021A: ldc.i4.0
IL_021B: ldc.i4.m1
IL_021C: ldc.r4 300
IL_0221: ldc.i4.0
IL_0222: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0227: br => Label55
IL_022C: Label9
IL_022C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0231: ldc.i4.0
IL_0232: ldc.i4.0
IL_0233: ldc.i4.m1
IL_0234: ldc.r4 300
IL_0239: ldc.i4.0
IL_023A: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_023F: br => Label56
IL_0244: Label10
IL_0244: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0249: ldc.i4.0
IL_024A: ldc.i4.0
IL_024B: ldc.i4.m1
IL_024C: ldc.r4 300
IL_0251: ldc.i4.0
IL_0252: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0257: br => Label57
IL_025C: Label11
IL_025C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0261: ldc.i4.0
IL_0262: ldc.i4.0
IL_0263: ldc.i4.m1
IL_0264: ldc.r4 300
IL_0269: ldc.i4.0
IL_026A: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_026F: br => Label58
IL_0274: Label14
IL_0274: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0279: ldc.i4.0
IL_027A: ldc.i4.0
IL_027B: ldc.i4.m1
IL_027C: ldc.r4 300
IL_0281: ldc.i4.0
IL_0282: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0287: br => Label59
IL_028C: Label17
IL_028C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0291: ldc.i4.s 18
IL_0293: ldc.i4.0
IL_0294: ldc.i4.0
IL_0295: ldc.r4 500
IL_029A: ldc.i4.0
IL_029B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02A0: br => Label60
IL_02A5: Label19
IL_02A5: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02AA: ldc.i4.0
IL_02AB: ldc.i4.0
IL_02AC: ldc.i4.m1
IL_02AD: ldc.r4 300
IL_02B2: ldc.i4.1
IL_02B3: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02B8: br => Label61
IL_02BD: Label18
IL_02BD: ldarg.2
IL_02BE: ldc.i4.1
IL_02BF: bne.un => Label62
IL_02C4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02C9: ldc.i4.s 16
IL_02CB: ldc.i4.0
IL_02CC: ldc.i4.1
IL_02CD: ldc.r4 500
IL_02D2: ldc.i4.1
IL_02D3: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02D8: br => Label63
IL_02DD: Label62
IL_02DD: ldarg.2
IL_02DE: ldc.i4.2
IL_02DF: bne.un => Label64
IL_02E4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02E9: ldc.i4.s 16
IL_02EB: ldc.i4.0
IL_02EC: ldc.i4.2
IL_02ED: ldc.r4 500
IL_02F2: ldc.i4.1
IL_02F3: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02F8: br => Label65
IL_02FD: Label64
IL_02FD: ldarg.2
IL_02FE: brtrue => Label66
IL_0303: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0308: ldc.i4.s 16
IL_030A: ldc.i4.0
IL_030B: ldc.i4.0
IL_030C: ldc.r4 500
IL_0311: ldc.i4.1
IL_0312: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0317: br => Label67
IL_031C: Label66
IL_031C: ldarg.2
IL_031D: ldc.i4.4
IL_031E: bne.un => Label68
IL_0323: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0328: ldc.i4.s 16
IL_032A: ldc.i4.0
IL_032B: ldc.i4.3
IL_032C: ldc.r4 500
IL_0331: ldc.i4.1
IL_0332: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0337: br => Label69
IL_033C: Label68
IL_033C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0341: ldc.i4.s 16
IL_0343: ldc.i4.0
IL_0344: ldc.i4.2
IL_0345: ldc.r4 500
IL_034A: ldc.i4.1
IL_034B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0350: Label63
IL_0350: Label65
IL_0350: Label67
IL_0350: Label69
IL_0350: br => Label70
IL_0355: Label16
IL_0355: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_035A: ldc.i4.0
IL_035B: ldc.i4.0
IL_035C: ldc.i4.m1
IL_035D: ldc.r4 300
IL_0362: ldc.i4.0
IL_0363: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0368: br => Label71
IL_036D: Label13
IL_036D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0372: ldc.i4.0
IL_0373: ldc.i4.0
IL_0374: ldc.i4.m1
IL_0375: ldc.r4 300
IL_037A: ldc.i4.0
IL_037B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0380: br => Label72
IL_0385: Label15
IL_0385: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_038A: ldc.i4.s 13
IL_038C: ldc.i4.0
IL_038D: ldc.i4.m1
IL_038E: ldc.r4 2000
IL_0393: ldc.i4.0
IL_0394: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0399: br => Label73
IL_039E: Label20
IL_039E: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03A3: ldc.i4.0
IL_03A4: ldc.i4.0
IL_03A5: ldc.i4.m1
IL_03A6: ldc.r4 300
IL_03AB: ldc.i4.0
IL_03AC: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03B1: br => Label74
IL_03B6: Label21
IL_03B6: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03BB: ldc.i4.0
IL_03BC: ldc.i4.0
IL_03BD: ldc.i4.m1
IL_03BE: ldc.r4 300
IL_03C3: ldc.i4.0
IL_03C4: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03C9: br => Label75
IL_03CE: Label22
IL_03CE: ldarg.2
IL_03CF: brtrue => Label76
IL_03D4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03D9: ldc.i4.s 9
IL_03DB: ldc.i4.0
IL_03DC: ldc.i4.1
IL_03DD: ldc.r4 2000
IL_03E2: ldc.i4.0
IL_03E3: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03E8: br => Label77
IL_03ED: Label76
IL_03ED: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03F2: ldc.i4.0
IL_03F3: ldc.i4.0
IL_03F4: ldc.i4.m1
IL_03F5: ldc.r4 300
IL_03FA: ldc.i4.0
IL_03FB: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0400: Label77
IL_0400: br => Label78
IL_0405: Label23
IL_0405: ldarg.2
IL_0406: brtrue => Label79
IL_040B: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0410: ldc.i4.s 9
IL_0412: ldc.i4.0
IL_0413: ldc.i4.3
IL_0414: ldc.r4 2000
IL_0419: ldc.i4.0
IL_041A: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_041F: br => Label80
IL_0424: Label79
IL_0424: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0429: ldc.i4.0
IL_042A: ldc.i4.0
IL_042B: ldc.i4.m1
IL_042C: ldc.r4 300
IL_0431: ldc.i4.0
IL_0432: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0437: Label80
IL_0437: br => Label81
IL_043C: Label24
IL_043C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0441: ldc.i4.s 20
IL_0443: ldc.i4.0
IL_0444: ldc.i4.3
IL_0445: ldc.r4 500
IL_044A: ldc.i4.1
IL_044B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0450: br => Label82
IL_0455: Label25
IL_0455: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_045A: ldc.i4.0
IL_045B: ldc.i4.0
IL_045C: ldc.i4.m1
IL_045D: ldc.r4 300
IL_0462: ldc.i4.0
IL_0463: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0468: br => Label83
IL_046D: Label26
IL_046D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0472: ldc.i4.s 20
IL_0474: ldc.i4.0
IL_0475: ldc.i4.1
IL_0476: ldc.r4 2000
IL_047B: ldc.i4.0
IL_047C: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0481: br => Label84
IL_0486: Label27
IL_0486: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_048B: ldc.i4.0
IL_048C: ldc.i4.0
IL_048D: ldc.i4.m1
IL_048E: ldc.r4 300
IL_0493: ldc.i4.0
IL_0494: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0499: br => Label85
IL_049E: Label28
IL_049E: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04A3: ldc.i4.0
IL_04A4: ldc.i4.0
IL_04A5: ldc.i4.m1
IL_04A6: ldc.r4 300
IL_04AB: ldc.i4.0
IL_04AC: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04B1: br => Label86
IL_04B6: Label29
IL_04B6: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04BB: ldc.i4.0
IL_04BC: ldc.i4.0
IL_04BD: ldc.i4.m1
IL_04BE: ldc.r4 300
IL_04C3: ldc.i4.0
IL_04C4: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04C9: br => Label87
IL_04CE: Label30
IL_04CE: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04D3: ldc.i4.0
IL_04D4: ldc.i4.0
IL_04D5: ldc.i4.m1
IL_04D6: ldc.r4 300
IL_04DB: ldc.i4.0
IL_04DC: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04E1: br => Label88
IL_04E6: Label31
IL_04E6: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04EB: ldc.i4.0
IL_04EC: ldc.i4.0
IL_04ED: ldc.i4.m1
IL_04EE: ldc.r4 300
IL_04F3: ldc.i4.0
IL_04F4: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04F9: br => Label89
IL_04FE: Label32
IL_04FE: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0503: ldc.i4.s 12
IL_0505: ldc.i4.s 17
IL_0507: ldc.i4.1
IL_0508: ldc.r4 2000
IL_050D: ldc.i4.0
IL_050E: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0513: br => Label90
IL_0518: Label33
IL_0518: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_051D: ldc.i4.0
IL_051E: ldc.i4.0
IL_051F: ldc.i4.m1
IL_0520: ldc.r4 300
IL_0525: ldc.i4.0
IL_0526: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_052B: br => Label91
IL_0530: Label34
IL_0530: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0535: ldc.i4.s 19
IL_0537: ldc.i4.s 28
IL_0539: ldc.i4.1
IL_053A: ldc.r4 500
IL_053F: ldc.i4.0
IL_0540: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0545: br => Label92
IL_054A: Label35
IL_054A: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_054F: ldc.i4.0
IL_0550: ldc.i4.0
IL_0551: ldc.i4.m1
IL_0552: ldc.r4 300
IL_0557: ldc.i4.0
IL_0558: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_055D: br => Label93
IL_0562: Label36
IL_0562: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0567: ldc.i4.0
IL_0568: ldc.i4.0
IL_0569: ldc.i4.m1
IL_056A: ldc.r4 300
IL_056F: ldc.i4.0
IL_0570: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0575: br => Label94
IL_057A: Label37
IL_057A: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_057F: ldc.i4.0
IL_0580: ldc.i4.0
IL_0581: ldc.i4.m1
IL_0582: ldc.r4 300
IL_0587: ldc.i4.0
IL_0588: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_058D: br => Label95
IL_0592: // end original
IL_0592: Label38
IL_0592: Label39
IL_0592: Label42
IL_0592: Label49
IL_0592: Label50
IL_0592: Label51
IL_0592: Label52
IL_0592: Label53
IL_0592: Label54
IL_0592: Label55
IL_0592: Label56
IL_0592: Label57
IL_0592: Label58
IL_0592: Label59
IL_0592: Label60
IL_0592: Label61
IL_0592: Label70
IL_0592: Label71
IL_0592: Label72
IL_0592: Label73
IL_0592: Label74
IL_0592: Label75
IL_0592: Label78
IL_0592: Label81
IL_0592: Label82
IL_0592: Label83
IL_0592: Label84
IL_0592: Label85
IL_0592: Label86
IL_0592: Label87
IL_0592: Label88
IL_0592: Label89
IL_0592: Label90
IL_0592: Label91
IL_0592: Label92
IL_0592: Label93
IL_0592: Label94
IL_0592: Label95
IL_0592: 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<SimulationManager>::get_instance()
IL_0046: ldarg.0
IL_0047: ldftn System.Void DefaultTool::<OnToolGUI>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<InstanceManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<BuildingManager>::get_instance()
IL_017E: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0183: ldfld Building[] Array16`1<Building>::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<SimulationManager>::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<SimulationManager>::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::<OnToolGUI>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<SimulationManager>::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::<OnToolGUI>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<LogChannel>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<BuildingManager>::get_instance()
IL_04D2: stloc.s 13 (BuildingManager)
IL_04D4: ldloc.s 13 (BuildingManager)
IL_04D6: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_04DB: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_04FA: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0555: ldfld Building[] Array16`1<Building>::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<VehicleManager>::get_instance()
IL_0590: stloc.s 16 (VehicleManager)
IL_0592: ldloc.s 16 (VehicleManager)
IL_0594: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0599: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_05B8: ldfld Vehicle[] Array16`1<Vehicle>::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})"
IL_05DD: ldc.i4.2
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: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_0601: stloc.s 12 (System.String)
IL_0603: ldloc.s 17 (VehicleInfo)
IL_0605: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_060A: ldloc.s 8 (System.UInt16)
IL_060C: ldloc.s 16 (VehicleManager)
IL_060E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0613: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0618: ldloc.s 8 (System.UInt16)
IL_061A: ldelema Vehicle
IL_061F: callvirt virtual System.String VehicleAI::GetDebugString(System.UInt16
vehicleID, Vehicle& data)
IL_0624: stloc.s 18 (System.String)
IL_0626: ldloc.s 18 (System.String)
IL_0628: brfalse => Label68
IL_062D: ldloc.s 12 (System.String)
IL_062F: ldstr "\n"
IL_0634: ldloc.s 18 (System.String)
IL_0636: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_063B: stloc.s 12 (System.String)
IL_063D: Label66
IL_063D: Label67
IL_063D: Label68
IL_063D: br => Label69
IL_0642: Label65
IL_0642: ldloc.s 9 (System.UInt16)
IL_0644: brfalse => Label70
IL_0649: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_064E: stloc.s 19 (VehicleManager)
IL_0650: ldloc.s 19 (VehicleManager)
IL_0652: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_0657: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_065C: ldloc.s 9 (System.UInt16)
IL_065E: ldelema VehicleParked
IL_0663: ldfld System.UInt16 VehicleParked::m_flags
IL_0668: ldc.i4.1
IL_0669: and
IL_066A: brfalse => Label71
IL_066F: ldloc.s 19 (VehicleManager)
IL_0671: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_0676: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_067B: ldloc.s 9 (System.UInt16)
IL_067D: ldelema VehicleParked
IL_0682: call VehicleInfo VehicleParked::get_Info()
IL_0687: stloc.s 20 (VehicleInfo)
IL_0689: ldloc.s 20 (VehicleInfo)
IL_068B: ldnull
IL_068C: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0691: brfalse => Label72
IL_0696: ldstr "{0} ({1})"
IL_069B: ldc.i4.2
IL_069C: newarr System.Object
IL_06A1: dup
IL_06A2: ldc.i4.0
IL_06A3: ldloc.s 20 (VehicleInfo)
IL_06A5: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_06AA: callvirt System.String UnityEngine.Object::get_name()
IL_06AF: stelem.ref
IL_06B0: dup
IL_06B1: ldc.i4.1
IL_06B2: ldloc.s 9 (System.UInt16)
IL_06B4: box System.UInt16
IL_06B9: stelem.ref
IL_06BA: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_06BF: stloc.s 12 (System.String)
IL_06C1: ldloc.s 20 (VehicleInfo)
IL_06C3: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_06C8: ldloc.s 9 (System.UInt16)
IL_06CA: ldloc.s 19 (VehicleManager)
IL_06CC: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_06D1: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_06D6: ldloc.s 9 (System.UInt16)
IL_06D8: ldelema VehicleParked
IL_06DD: callvirt virtual System.String VehicleAI::GetDebugString(System.UInt16
parkedVehicleID, VehicleParked& data)
IL_06E2: stloc.s 21 (System.String)
IL_06E4: ldloc.s 21 (System.String)
IL_06E6: brfalse => Label73
IL_06EB: ldloc.s 12 (System.String)
IL_06ED: ldstr "\n"
IL_06F2: ldloc.s 21 (System.String)
IL_06F4: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_06F9: stloc.s 12 (System.String)
IL_06FB: Label71
IL_06FB: Label72
IL_06FB: Label73
IL_06FB: br => Label74
IL_0700: Label70
IL_0700: ldloc.s 10 (System.UInt16)
IL_0702: brfalse => Label75
IL_0707: call static CitizenManager
ColossalFramework.Singleton`1<CitizenManager>::get_instance()
IL_070C: stloc.s 22 (CitizenManager)
IL_070E: ldloc.s 22 (CitizenManager)
IL_0710: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0715: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_071A: ldloc.s 10 (System.UInt16)
IL_071C: ldelema CitizenInstance
IL_0721: ldfld Flags CitizenInstance::m_flags
IL_0726: ldc.i4.1
IL_0727: and
IL_0728: brfalse => Label76
IL_072D: ldloc.s 22 (CitizenManager)
IL_072F: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0734: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0739: ldloc.s 10 (System.UInt16)
IL_073B: ldelema CitizenInstance
IL_0740: call CitizenInfo CitizenInstance::get_Info()
IL_0745: stloc.s 23 (CitizenInfo)
IL_0747: ldloc.s 23 (CitizenInfo)
IL_0749: ldnull
IL_074A: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_074F: brfalse => Label77
IL_0754: ldstr "{0} ({1})"
IL_0759: ldc.i4.2
IL_075A: newarr System.Object
IL_075F: dup
IL_0760: ldc.i4.0
IL_0761: ldloc.s 23 (CitizenInfo)
IL_0763: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_0768: callvirt System.String UnityEngine.Object::get_name()
IL_076D: stelem.ref
IL_076E: dup
IL_076F: ldc.i4.1
IL_0770: ldloc.s 10 (System.UInt16)
IL_0772: box System.UInt16
IL_0777: stelem.ref
IL_0778: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_077D: stloc.s 12 (System.String)
IL_077F: ldloc.s 23 (CitizenInfo)
IL_0781: ldfld CitizenAI CitizenInfo::m_citizenAI
IL_0786: ldloc.s 10 (System.UInt16)
IL_0788: ldloc.s 22 (CitizenManager)
IL_078A: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_078F: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0794: ldloc.s 10 (System.UInt16)
IL_0796: ldelema CitizenInstance
IL_079B: callvirt virtual System.String CitizenAI::GetDebugString(System.UInt16
instanceID, CitizenInstance& data)
IL_07A0: stloc.s 24 (System.String)
IL_07A2: ldloc.s 24 (System.String)
IL_07A4: brfalse => Label78
IL_07A9: ldloc.s 12 (System.String)
IL_07AB: ldstr "\n"
IL_07B0: ldloc.s 24 (System.String)
IL_07B2: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_07B7: stloc.s 12 (System.String)
IL_07B9: Label76
IL_07B9: Label77
IL_07B9: Label78
IL_07B9: br => Label79
IL_07BE: Label75
IL_07BE: ldloc.s 11 (System.UInt16)
IL_07C0: brfalse => Label80
IL_07C5: call static TransportManager
ColossalFramework.Singleton`1<TransportManager>::get_instance()
IL_07CA: stloc.s 25 (TransportManager)
IL_07CC: ldloc.s 25 (TransportManager)
IL_07CE: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_07D3: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_07D8: ldloc.s 11 (System.UInt16)
IL_07DA: ldelema TransportLine
IL_07DF: ldfld Flags TransportLine::m_flags
IL_07E4: ldc.i4.1
IL_07E5: and
IL_07E6: brfalse => Label81
IL_07EB: ldloc.s 25 (TransportManager)
IL_07ED: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_07F2: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_07F7: ldloc.s 11 (System.UInt16)
IL_07F9: ldelema TransportLine
IL_07FE: call TransportInfo TransportLine::get_Info()
IL_0803: stloc.s 26 (TransportInfo)
IL_0805: ldloc.s 26 (TransportInfo)
IL_0807: ldnull
IL_0808: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_080D: brfalse => Label82
IL_0812: ldstr "{0} ({1})"
IL_0817: ldc.i4.2
IL_0818: newarr System.Object
IL_081D: dup
IL_081E: ldc.i4.0
IL_081F: ldloc.s 26 (TransportInfo)
IL_0821: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_0826: callvirt System.String UnityEngine.Object::get_name()
IL_082B: stelem.ref
IL_082C: dup
IL_082D: ldc.i4.1
IL_082E: ldloc.s 11 (System.UInt16)
IL_0830: box System.UInt16
IL_0835: stelem.ref
IL_0836: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_083B: stloc.s 12 (System.String)
IL_083D: ldloc.s 25 (TransportManager)
IL_083F: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_0844: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_0849: ldloc.s 11 (System.UInt16)
IL_084B: ldelema TransportLine
IL_0850: ldloc.s 11 (System.UInt16)
IL_0852: call System.String TransportLine::GetDebugString(System.UInt16
lineID)
IL_0857: stloc.s 27 (System.String)
IL_0859: ldloc.s 27 (System.String)
IL_085B: brfalse => Label83
IL_0860: ldloc.s 12 (System.String)
IL_0862: ldstr "\n"
IL_0867: ldloc.s 27 (System.String)
IL_0869: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_086E: stloc.s 12 (System.String)
IL_0870: Label64
IL_0870: Label69
IL_0870: Label74
IL_0870: Label79
IL_0870: Label80
IL_0870: Label81
IL_0870: Label82
IL_0870: Label83
IL_0870: ldloc.s 12 (System.String)
IL_0872: brfalse => Label84
IL_0877: ldloc.s 6 (InstanceID)
IL_0879: ldloca.s 28 (UnityEngine.Vector3)
IL_087B: ldloca.s 29 (UnityEngine.Quaternion)
IL_087D: ldloca.s 30 (UnityEngine.Vector3)
IL_087F: call static System.Boolean InstanceManager::GetPosition(InstanceID
id, UnityEngine.Vector3& position, UnityEngine.Quaternion& rotation,
UnityEngine.Vector3& size)
IL_0884: brtrue => Label85
IL_0889: ldarg.0
IL_088A: ldfld UnityEngine.Vector3 DefaultTool::m_mousePosition
IL_088F: stloc.s 28 (UnityEngine.Vector3)
IL_0891: Label85
IL_0891: call static UnityEngine.Camera UnityEngine.Camera::get_main()
IL_0896: ldloc.s 28 (UnityEngine.Vector3)
IL_0898: callvirt UnityEngine.Vector3
UnityEngine.Camera::WorldToScreenPoint(UnityEngine.Vector3 position)
IL_089D: stloc.s 31 (UnityEngine.Vector3)
IL_089F: ldloca.s 31 (UnityEngine.Vector3)
IL_08A1: call static System.Int32 UnityEngine.Screen::get_height()
IL_08A6: conv.r4
IL_08A7: ldloca.s 31 (UnityEngine.Vector3)
IL_08A9: ldfld System.Single UnityEngine.Vector3::y
IL_08AE: sub
IL_08AF: stfld System.Single UnityEngine.Vector3::y
IL_08B4: call static UnityEngine.Color UnityEngine.GUI::get_color()
IL_08B9: stloc.s 32 (UnityEngine.Color)
IL_08BB: call static UnityEngine.Color UnityEngine.Color::get_cyan()
IL_08C0: call static System.Void UnityEngine.GUI::set_color(UnityEngine.Color
value)
IL_08C5: ldloca.s 31 (UnityEngine.Vector3)
IL_08C7: ldfld System.Single UnityEngine.Vector3::x
IL_08CC: ldloca.s 31 (UnityEngine.Vector3)
IL_08CE: ldfld System.Single UnityEngine.Vector3::y
IL_08D3: ldc.r4 500
IL_08D8: ldc.r4 500
IL_08DD: newobj System.Void UnityEngine.Rect::.ctor(System.Single x,
System.Single y, System.Single width, System.Single height)
IL_08E2: ldloc.s 12 (System.String)
IL_08E4: call static UnityEngine.Color UnityEngine.Color::get_black()
IL_08E9: call static UnityEngine.Color UnityEngine.Color::get_cyan()
IL_08EE: call static UnityEngine.GUISkin UnityEngine.GUI::get_skin()
IL_08F3: callvirt UnityEngine.GUIStyle UnityEngine.GUISkin::get_label()
IL_08F8: ldc.r4 2
IL_08FD: 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_0902: ldloc.s 32 (UnityEngine.Color)
IL_0904: call static System.Void UnityEngine.GUI::set_color(UnityEngine.Color
value)
IL_0909: // end original
IL_0909: Label57
IL_0909: Label58
IL_0909: Label59
IL_0909: Label84
IL_0909: ldarg 1
IL_090D: call static System.Void
TrafficManager.Patch._DefaultTool.OnToolGUIPatch::Postfix(UnityEngine.Event e)
IL_0912: 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<PropManager>::get_instance()
IL_0079: ldfld Array16`1<PropInstance> PropManager::m_props
IL_007E: ldfld PropInstance[] Array16`1<PropInstance>::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<TreeManager>::get_instance()
IL_012C: ldfld Array32`1<TreeInstance> TreeManager::m_trees
IL_0131: ldfld TreeInstance[] Array32`1<TreeInstance>::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<BuildingManager>::get_instance()
IL_01E6: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01EB: ldfld Building[] Array16`1<Building>::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<DisasterManager>::get_instance()
IL_03A3: ldfld FastList`1<DisasterData> DisasterManager::m_disasters
IL_03A8: ldfld DisasterData[] FastList`1<DisasterData>::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<NetManager>::get_instance()
IL_04A6: stloc.s 24 (NetManager)
IL_04A8: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_04AD: stloc.s 25 (BuildingManager)
IL_04AF: ldloc.s 25 (BuildingManager)
IL_04B1: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_04B6: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_04F6: ldfld Building[] Array16`1<Building>::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<NetNode> NetManager::m_nodes
IL_0520: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_0543: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0562: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0582: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_05AA: ldfld NetNode[] Array16`1<NetNode>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_05F6: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0618: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0637: ldfld Building[] Array16`1<Building>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_0693: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06AD: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06C7: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06F2: ldfld Building[] Array16`1<Building>::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<NetNode> NetManager::m_nodes
IL_071C: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_073F: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_075E: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_077F: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_07A9: ldfld NetNode[] Array16`1<NetNode>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_07F5: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0817: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0831: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_084B: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0865: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0890: ldfld Building[] Array16`1<Building>::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<LogChannel>::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<NetManager>::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<RenderManager>::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<NetSegment> NetManager::m_segments
IL_09A8: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_09CC: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_09D1: ldloc.s 45 (NetManager)
IL_09D3: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_09D8: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_0A01: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A06: ldloc.s 45 (NetManager)
IL_0A08: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0A0D: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0A73: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0A92: ldfld NetSegment[] Array16`1<NetSegment>::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<ToolManager>::get_instance()
IL_0C1C: ldflda DrawCallData SimulationManagerBase`2<ToolManager,
ToolController>::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<RenderManager>::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<NetSegment> NetManager::m_segments
IL_0C75: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0C96: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0CF4: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0D18: ldfld NetSegment[] Array16`1<NetSegment>::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<TreeManager>::get_instance()
IL_0D40: stloc.s 67 (TreeManager)
IL_0D42: ldloc.s 67 (TreeManager)
IL_0D44: ldfld Array32`1<TreeInstance> TreeManager::m_trees
IL_0D49: ldfld TreeInstance[] Array32`1<TreeInstance>::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<TreeInstance> TreeManager::m_trees
IL_0D64: ldfld TreeInstance[] Array32`1<TreeInstance>::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<PropManager>::get_instance()
IL_0E07: stloc.s 75 (PropManager)
IL_0E09: ldloc.s 75 (PropManager)
IL_0E0B: ldfld Array16`1<PropInstance> PropManager::m_props
IL_0E10: ldfld PropInstance[] Array16`1<PropInstance>::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<PropInstance> PropManager::m_props
IL_0E2A: ldfld PropInstance[] Array16`1<PropInstance>::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<PropInstance> PropManager::m_props
IL_0E44: ldfld PropInstance[] Array16`1<PropInstance>::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<VehicleManager>::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<Vehicle> VehicleManager::m_vehicles
IL_0F0E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0F38: ldfld Vehicle[] Array16`1<Vehicle>::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<VehicleManager>::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<VehicleParked> VehicleManager::m_parkedVehicles
IL_0F87: ldfld VehicleParked[] Array16`1<VehicleParked>::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<VehicleParked> VehicleManager::m_parkedVehicles
IL_0FB1: ldfld VehicleParked[] Array16`1<VehicleParked>::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<CitizenManager>::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<CitizenInstance> CitizenManager::m_instances
IL_1000: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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<CitizenInstance> CitizenManager::m_instances
IL_102A: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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<InfoManager>::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<DistrictManager>::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<InfoManager>::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<DistrictManager>::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<DisasterManager>::get_instance()
IL_1129: stloc.s 104 (DisasterManager)
IL_112B: ldloc.s 104 (DisasterManager)
IL_112D: ldfld FastList`1<DisasterData> DisasterManager::m_disasters
IL_1132: ldfld DisasterData[] FastList`1<DisasterData>::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<DisasterData> DisasterManager::m_disasters
IL_114C: ldfld DisasterData[] FastList`1<DisasterData>::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<DisasterData> DisasterManager::m_disasters
IL_1166: ldfld DisasterData[] FastList`1<DisasterData>::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<Citizen> CitizenManager::m_citizens
IL_0008: ldfld Citizen[] Array32`1<Citizen>::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<CitizenInstance> CitizenManager::m_instances
IL_0008: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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(CitizenMa
nager __instance, System.UInt16 instance)
IL_0022: ret
DONE

### 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<NetManager>::get_instance()
IL_0010: stloc.0
IL_0011: ldloc.0
IL_0012: ldfld FastList`1<System.UInt16> NetManager::m_tempNodeBuffer
IL_0017: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_001C: ldloc.0
IL_001D: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_0022: callvirt System.Void FastList`1<System.UInt16>::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<System.UInt16> 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<System.UInt16> 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<System.UInt16> 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<System.UInt16>::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<NodePosition> 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<NodePosition> 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<System.UInt16> NetManager::m_tempNodeBuffer
IL_022C: ldloc.s 9 (System.UInt16)
IL_022E: callvirt System.Void FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_0268: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_02AC: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16> 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<System.UInt16> 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<NodePosition> 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<NodePosition> 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<System.UInt16> NetManager::m_tempNodeBuffer
IL_056B: ldloc.s 20 (System.UInt16)
IL_056D: callvirt System.Void FastList`1<System.UInt16>::Add(System.UInt16 item)
IL_0572: ldloc.0
IL_0573: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_0578: ldloc.s 21 (System.UInt16)
IL_057A: callvirt System.Void FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_05B6: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_05FC: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_0646: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_067B: ldfld NetSegment[] Array16`1<NetSegment>::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<System.UInt16> NetManager::m_tempNodeBuffer
IL_06D4: ldfld System.UInt16[] FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_06E4: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_071D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_073E: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_075D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0788: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16> NetManager::m_tempNodeBuffer
IL_07C2: ldfld System.Int32 FastList`1<System.UInt16>::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<System.UInt16> NetManager::m_tempSegmentBuffer
IL_07DA: ldfld System.UInt16[] FastList`1<System.UInt16>::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<NetSegment> NetManager::m_segments
IL_07EA: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_080F: ldfld NetSegment[] Array16`1<NetSegment>::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<ToolManager>::get_instance()
IL_083B: ldfld ToolController SimulationManagerBase`2<ToolManager,
ToolController>::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<NetSegment> NetManager::m_segments
IL_0852: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0879: ldfld NetSegment[] Array16`1<NetSegment>::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<System.UInt16> NetManager::m_tempSegmentBuffer
IL_08A9: ldfld System.Int32 FastList`1<System.UInt16>::m_size
IL_08AE: blt => Label60
IL_08B3: ldarg.0
IL_08B4: call static System.Void
TrafficManager.Patches._BuildingDecoration.LoadPathsPatch::AfterIntersectionBuilt(B
uildingInfo info)
IL_08B9: ldloc.0
IL_08BA: ldfld FastList`1<System.UInt16> NetManager::m_tempNodeBuffer
IL_08BF: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_08C4: ldloc.0
IL_08C5: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_08CA: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_08CF: // end original
IL_08CF: Label0
IL_08CF: ret
DONE

### Harmony id=de.viathinksoft.tmpe, version=2.0.1.0, location=E:\Games\data-


0000000016F5EE20, env/clr=2.0.50727.1433, platform=Win32NT,
ptrsize:runtime/env=8/Bits64, Windows
### Started from System.Void TrafficManager.Patcher::Uninstall(), location E:\
Games\data-0000000017B22040
### At 2022-11-05 01.41.29
### 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_Patch1(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<Vehicle> VehicleManager::m_vehicles
IL_0042: ldloca.s 0 (System.UInt16)
IL_0044: ldarg.2
IL_0045: callvirt System.Boolean Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0066: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_007E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_009D: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_00C4: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_00E4: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_00FC: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0114: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_012C: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0144: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_015C: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0178: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0194: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_01B0: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_01CC: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_01E4: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_01FC: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0216: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_022E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0246: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_025E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0276: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_028E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_02A6: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_02BE: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_02D6: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_02EE: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0306: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_031E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0336: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_034E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0366: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_037E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0396: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_03AE: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_03C6: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_03DE: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_03F6: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_040E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_042E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_044D: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0452: ldarg.1
IL_0453: ldind.u2
IL_0454: ldelema Vehicle
IL_0459: ldarg.0
IL_045A: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_045F: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_047C: callvirt System.UInt32 Array16`1<Vehicle>::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: ldloc 2 (System.Boolean)
IL_049A: 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_Patch0(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: // start original
IL_0000: ldarg.0
IL_0001: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0006: ldloca.s 0 (System.UInt16)
IL_0008: ldarg.2
IL_0009: callvirt System.Boolean Array16`1<Vehicle>::CreateItem(System.UInt16&
item, ColossalFramework.Math.Randomizer& r)
IL_000E: brfalse => Label0
IL_0013: ldarg.1
IL_0014: ldloc.0
IL_0015: stind.i2
IL_0016: ldloca.s 1 (Vehicle+Frame)
IL_0018: ldarg.s 4
IL_001A: call static UnityEngine.Quaternion
UnityEngine.Quaternion::get_identity()
IL_001F: call System.Void Frame::.ctor(UnityEngine.Vector3 position,
UnityEngine.Quaternion rotation)
IL_0024: ldarg.0
IL_0025: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_002A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_002F: ldarg.1
IL_0030: ldind.u2
IL_0031: ldelema Vehicle
IL_0036: ldc.i4.1
IL_0037: stfld Flags Vehicle::m_flags
IL_003C: ldarg.0
IL_003D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0042: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0047: ldarg.1
IL_0048: ldind.u2
IL_0049: ldelema Vehicle
IL_004E: ldc.i4.0
IL_004F: stfld Flags2 Vehicle::m_flags2
IL_0054: ldarg.s 6
IL_0056: brfalse => Label1
IL_005B: ldarg.0
IL_005C: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0061: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0066: ldarg.1
IL_0067: ldind.u2
IL_0068: ldelema Vehicle
IL_006D: dup
IL_006E: ldfld Flags Vehicle::m_flags
IL_0073: ldc.i4.s 32
IL_0075: or
IL_0076: stfld Flags Vehicle::m_flags
IL_007B: Label1
IL_007B: ldarg.s 7
IL_007D: brfalse => Label2
IL_0082: ldarg.0
IL_0083: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0088: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_008D: ldarg.1
IL_008E: ldind.u2
IL_008F: ldelema Vehicle
IL_0094: dup
IL_0095: ldfld Flags Vehicle::m_flags
IL_009A: ldc.i4.s 16
IL_009C: or
IL_009D: stfld Flags Vehicle::m_flags
IL_00A2: Label2
IL_00A2: ldarg.0
IL_00A3: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00A8: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00AD: ldarg.1
IL_00AE: ldind.u2
IL_00AF: ldelema Vehicle
IL_00B4: ldarg.3
IL_00B5: call System.Void Vehicle::set_Info(VehicleInfo value)
IL_00BA: ldarg.0
IL_00BB: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00C0: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00C5: ldarg.1
IL_00C6: ldind.u2
IL_00C7: ldelema Vehicle
IL_00CC: ldloc.1
IL_00CD: stfld Frame Vehicle::m_frame0
IL_00D2: ldarg.0
IL_00D3: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00D8: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00DD: ldarg.1
IL_00DE: ldind.u2
IL_00DF: ldelema Vehicle
IL_00E4: ldloc.1
IL_00E5: stfld Frame Vehicle::m_frame1
IL_00EA: ldarg.0
IL_00EB: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00F0: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00F5: ldarg.1
IL_00F6: ldind.u2
IL_00F7: ldelema Vehicle
IL_00FC: ldloc.1
IL_00FD: stfld Frame Vehicle::m_frame2
IL_0102: ldarg.0
IL_0103: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0108: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_010D: ldarg.1
IL_010E: ldind.u2
IL_010F: ldelema Vehicle
IL_0114: ldloc.1
IL_0115: stfld Frame Vehicle::m_frame3
IL_011A: ldarg.0
IL_011B: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0120: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0125: ldarg.1
IL_0126: ldind.u2
IL_0127: ldelema Vehicle
IL_012C: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_0131: stfld UnityEngine.Vector4 Vehicle::m_targetPos0
IL_0136: ldarg.0
IL_0137: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_013C: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0141: ldarg.1
IL_0142: ldind.u2
IL_0143: ldelema Vehicle
IL_0148: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_014D: stfld UnityEngine.Vector4 Vehicle::m_targetPos1
IL_0152: ldarg.0
IL_0153: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0158: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_015D: ldarg.1
IL_015E: ldind.u2
IL_015F: ldelema Vehicle
IL_0164: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_0169: stfld UnityEngine.Vector4 Vehicle::m_targetPos2
IL_016E: ldarg.0
IL_016F: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0174: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0179: ldarg.1
IL_017A: ldind.u2
IL_017B: ldelema Vehicle
IL_0180: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_0185: stfld UnityEngine.Vector4 Vehicle::m_targetPos3
IL_018A: ldarg.0
IL_018B: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0190: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0195: ldarg.1
IL_0196: ldind.u2
IL_0197: ldelema Vehicle
IL_019C: ldc.i4.0
IL_019D: stfld System.UInt16 Vehicle::m_sourceBuilding
IL_01A2: ldarg.0
IL_01A3: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01A8: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01AD: ldarg.1
IL_01AE: ldind.u2
IL_01AF: ldelema Vehicle
IL_01B4: ldc.i4.0
IL_01B5: stfld System.UInt16 Vehicle::m_targetBuilding
IL_01BA: ldarg.0
IL_01BB: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01C0: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01C5: ldarg.1
IL_01C6: ldind.u2
IL_01C7: ldelema Vehicle
IL_01CC: ldarg.s 5
IL_01CE: conv.u1
IL_01CF: stfld System.Byte Vehicle::m_transferType
IL_01D4: ldarg.0
IL_01D5: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01DA: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01DF: ldarg.1
IL_01E0: ldind.u2
IL_01E1: ldelema Vehicle
IL_01E6: ldc.i4.0
IL_01E7: stfld System.UInt16 Vehicle::m_transferSize
IL_01EC: ldarg.0
IL_01ED: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01F2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01F7: ldarg.1
IL_01F8: ldind.u2
IL_01F9: ldelema Vehicle
IL_01FE: ldc.i4.0
IL_01FF: stfld System.Byte Vehicle::m_waitCounter
IL_0204: ldarg.0
IL_0205: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_020A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_020F: ldarg.1
IL_0210: ldind.u2
IL_0211: ldelema Vehicle
IL_0216: ldc.i4.0
IL_0217: stfld System.Byte Vehicle::m_blockCounter
IL_021C: ldarg.0
IL_021D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0222: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0227: ldarg.1
IL_0228: ldind.u2
IL_0229: ldelema Vehicle
IL_022E: ldc.i4.0
IL_022F: stfld System.UInt16 Vehicle::m_nextGridVehicle
IL_0234: ldarg.0
IL_0235: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_023A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_023F: ldarg.1
IL_0240: ldind.u2
IL_0241: ldelema Vehicle
IL_0246: ldc.i4.0
IL_0247: stfld System.UInt16 Vehicle::m_nextOwnVehicle
IL_024C: ldarg.0
IL_024D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0252: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0257: ldarg.1
IL_0258: ldind.u2
IL_0259: ldelema Vehicle
IL_025E: ldc.i4.0
IL_025F: stfld System.UInt16 Vehicle::m_nextGuestVehicle
IL_0264: ldarg.0
IL_0265: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_026A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_026F: ldarg.1
IL_0270: ldind.u2
IL_0271: ldelema Vehicle
IL_0276: ldc.i4.0
IL_0277: stfld System.UInt16 Vehicle::m_nextLineVehicle
IL_027C: ldarg.0
IL_027D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0282: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0287: ldarg.1
IL_0288: ldind.u2
IL_0289: ldelema Vehicle
IL_028E: ldc.i4.0
IL_028F: stfld System.UInt16 Vehicle::m_transportLine
IL_0294: ldarg.0
IL_0295: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_029A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_029F: ldarg.1
IL_02A0: ldind.u2
IL_02A1: ldelema Vehicle
IL_02A6: ldc.i4.0
IL_02A7: stfld System.UInt16 Vehicle::m_leadingVehicle
IL_02AC: ldarg.0
IL_02AD: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02B2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02B7: ldarg.1
IL_02B8: ldind.u2
IL_02B9: ldelema Vehicle
IL_02BE: ldc.i4.0
IL_02BF: stfld System.UInt16 Vehicle::m_trailingVehicle
IL_02C4: ldarg.0
IL_02C5: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02CA: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02CF: ldarg.1
IL_02D0: ldind.u2
IL_02D1: ldelema Vehicle
IL_02D6: ldc.i4.0
IL_02D7: stfld System.UInt16 Vehicle::m_cargoParent
IL_02DC: ldarg.0
IL_02DD: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02E2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02E7: ldarg.1
IL_02E8: ldind.u2
IL_02E9: ldelema Vehicle
IL_02EE: ldc.i4.0
IL_02EF: stfld System.UInt16 Vehicle::m_firstCargo
IL_02F4: ldarg.0
IL_02F5: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02FA: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02FF: ldarg.1
IL_0300: ldind.u2
IL_0301: ldelema Vehicle
IL_0306: ldc.i4.0
IL_0307: stfld System.UInt16 Vehicle::m_nextCargo
IL_030C: ldarg.0
IL_030D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0312: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0317: ldarg.1
IL_0318: ldind.u2
IL_0319: ldelema Vehicle
IL_031E: ldc.i4.0
IL_031F: stfld System.UInt32 Vehicle::m_citizenUnits
IL_0324: ldarg.0
IL_0325: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_032A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_032F: ldarg.1
IL_0330: ldind.u2
IL_0331: ldelema Vehicle
IL_0336: ldc.i4.0
IL_0337: stfld System.UInt32 Vehicle::m_path
IL_033C: ldarg.0
IL_033D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0342: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0347: ldarg.1
IL_0348: ldind.u2
IL_0349: ldelema Vehicle
IL_034E: ldc.i4.0
IL_034F: stfld System.Byte Vehicle::m_lastFrame
IL_0354: ldarg.0
IL_0355: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_035A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_035F: ldarg.1
IL_0360: ldind.u2
IL_0361: ldelema Vehicle
IL_0366: ldc.i4.0
IL_0367: stfld System.Byte Vehicle::m_pathPositionIndex
IL_036C: ldarg.0
IL_036D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0372: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0377: ldarg.1
IL_0378: ldind.u2
IL_0379: ldelema Vehicle
IL_037E: ldc.i4.0
IL_037F: stfld System.Byte Vehicle::m_lastPathOffset
IL_0384: ldarg.0
IL_0385: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_038A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_038F: ldarg.1
IL_0390: ldind.u2
IL_0391: ldelema Vehicle
IL_0396: ldc.i4.0
IL_0397: stfld System.Byte Vehicle::m_gateIndex
IL_039C: ldarg.0
IL_039D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03A2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03A7: ldarg.1
IL_03A8: ldind.u2
IL_03A9: ldelema Vehicle
IL_03AE: ldc.i4.0
IL_03AF: stfld System.UInt16 Vehicle::m_waterSource
IL_03B4: ldarg.0
IL_03B5: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03BA: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03BF: ldarg.1
IL_03C0: ldind.u2
IL_03C1: ldelema Vehicle
IL_03C6: ldc.i4.0
IL_03C7: stfld System.UInt16 Vehicle::m_touristCount
IL_03CC: ldarg.0
IL_03CD: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03D2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03D7: ldarg.1
IL_03D8: ldind.u2
IL_03D9: ldelema Vehicle
IL_03DE: ldc.i4.0
IL_03DF: stfld System.UInt16 Vehicle::m_custom
IL_03E4: ldarg.3
IL_03E5: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_03EA: ldarg.1
IL_03EB: ldind.u2
IL_03EC: ldarg.0
IL_03ED: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03F2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03F7: ldarg.1
IL_03F8: ldind.u2
IL_03F9: ldelema Vehicle
IL_03FE: callvirt virtual System.Void VehicleAI::CreateVehicle(System.UInt16
vehicleID, Vehicle& data)
IL_0403: ldarg.3
IL_0404: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_0409: ldarg.1
IL_040A: ldind.u2
IL_040B: ldarg.0
IL_040C: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0411: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0416: ldarg.1
IL_0417: ldind.u2
IL_0418: ldelema Vehicle
IL_041D: ldarg.0
IL_041E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0423: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0428: ldarg.1
IL_0429: ldind.u2
IL_042A: ldelema Vehicle
IL_042F: ldflda Frame Vehicle::m_frame0
IL_0434: callvirt virtual System.Void VehicleAI::FrameDataUpdated(System.UInt16
vehicleID, Vehicle& vehicleData, Frame& frameData)
IL_0439: ldarg.0
IL_043A: ldarg.0
IL_043B: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0440: callvirt System.UInt32 Array16`1<Vehicle>::ItemCount()
IL_0445: ldc.i4.1
IL_0446: sub
IL_0447: stfld System.Int32 VehicleManager::m_vehicleCount
IL_044C: ldc.i4.1
IL_044D: br => Label3
IL_0452: Label0
IL_0452: ldarg.1
IL_0453: ldc.i4.0
IL_0454: stind.i2
IL_0455: ldc.i4.0
IL_0456: // end original
IL_0456: Label3
IL_0456: ret
DONE

### Patch: System.Void VehicleManager::ReleaseVehicle(System.UInt16 vehicle)


### Replacement: static System.Void
VehicleManager::VehicleManager.ReleaseVehicle_Patch0(VehicleManager this,
System.UInt16 vehicle)
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: ldarg.0
IL_0003: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0008: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_000D: ldarg.1
IL_000E: ldelema Vehicle
IL_0013: call System.Void
VehicleManager::ReleaseVehicleImplementation(System.UInt16 vehicle, Vehicle& data)
IL_0018: // end original
IL_0018: ret
DONE

### Patch: System.Void NetManager::UpdateSegment(System.UInt16 segment,


System.UInt16 fromNode, System.Int32 level)
### Replacement: static System.Void
NetManager::NetManager.UpdateSegment_Patch0(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<NetSegment> NetManager::m_segments
IL_0030: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0047: ldfld NetSegment[] Array16`1<NetSegment>::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: ret
DONE

### Patch: System.Void NetManager::FinalizeSegment(System.UInt16 segment,


NetSegment& data)
### Replacement: static System.Void
NetManager::NetManager.FinalizeSegment_Patch0(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<NetNode> NetManager::m_nodes
IL_0006: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0021: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_00CD: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_00F3: ldfld NetSegment[] Array16`1<NetSegment>::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<LogChannel>::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: ret
DONE

### Patch: static System.Void RoadBaseAI::TrafficLightSimulationStep(System.UInt16


nodeID, NetNode& data)
### Replacement: static System.Void
RoadBaseAI::RoadBaseAI.TrafficLightSimulationStep_Patch0(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.Int32
IL_0000: Local var 38: System.UInt16
IL_0000: Local var 39: RoadBaseAI/TrafficLightState
IL_0000: Local var 40: RoadBaseAI/TrafficLightState
IL_0000: Local var 41: UnityEngine.Vector3
IL_0000: // start original
IL_0000: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0005: stloc.0
IL_0006: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_000B: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0010: stloc.1
IL_0011: ldarg.1
IL_0012: ldfld System.Byte NetNode::m_maxWaitTime
IL_0017: ldc.i4.3
IL_0018: and
IL_0019: stloc.2
IL_001A: ldarg.1
IL_001B: ldfld System.Byte NetNode::m_maxWaitTime
IL_0020: ldc.i4.2
IL_0021: shr
IL_0022: ldc.i4.7
IL_0023: and
IL_0024: stloc.3
IL_0025: ldarg.1
IL_0026: ldfld System.Byte NetNode::m_maxWaitTime
IL_002B: ldc.i4.5
IL_002C: shr
IL_002D: stloc.s 4 (System.Int32)
IL_002F: ldc.i4.m1
IL_0030: stloc.s 5 (System.Int32)
IL_0032: ldc.i4.m1
IL_0033: stloc.s 6 (System.Int32)
IL_0035: ldc.i4.m1
IL_0036: stloc.s 7 (System.Int32)
IL_0038: ldc.i4.m1
IL_0039: stloc.s 8 (System.Int32)
IL_003B: ldc.i4.m1
IL_003C: stloc.s 9 (System.Int32)
IL_003E: ldc.i4.m1
IL_003F: stloc.s 10 (System.Int32)
IL_0041: ldc.i4.0
IL_0042: stloc.s 11 (System.Int32)
IL_0044: ldc.i4.0
IL_0045: stloc.s 12 (System.Int32)
IL_0047: ldc.i4.0
IL_0048: stloc.s 13 (System.Int32)
IL_004A: ldc.i4.0
IL_004B: stloc.s 14 (System.Int32)
IL_004D: ldc.i4.0
IL_004E: stloc.s 15 (System.Int32)
IL_0050: ldc.i4.0
IL_0051: stloc.s 16 (System.Int32)
IL_0053: br => Label0
IL_0058: Label22
IL_0058: ldarg.1
IL_0059: ldloc.s 16 (System.Int32)
IL_005B: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0060: stloc.s 17 (System.UInt16)
IL_0062: ldloc.s 17 (System.UInt16)
IL_0064: brfalse => Label1
IL_0069: ldc.i4.0
IL_006A: stloc.s 18 (System.Int32)
IL_006C: ldc.i4.0
IL_006D: stloc.s 19 (System.Int32)
IL_006F: ldloc.0
IL_0070: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0075: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_007A: ldloc.s 17 (System.UInt16)
IL_007C: ldelema NetSegment
IL_0081: ldloc.s 17 (System.UInt16)
IL_0083: ldc.i4.s 33
IL_0085: ldc.i4 65601
IL_008A: ldloca.s 18 (System.Int32)
IL_008C: ldloca.s 19 (System.Int32)
IL_008E: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_0093: ldloc.0
IL_0094: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0099: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_009E: ldloc.s 17 (System.UInt16)
IL_00A0: ldelema NetSegment
IL_00A5: ldfld System.UInt16 NetSegment::m_startNode
IL_00AA: ldarg.0
IL_00AB: ceq
IL_00AD: stloc.s 20 (System.Boolean)
IL_00AF: ldloc.s 20 (System.Boolean)
IL_00B1: brfalse => Label2
IL_00B6: ldloc.s 19 (System.Int32)
IL_00B8: ldc.i4.0
IL_00B9: ceq
IL_00BB: ldc.i4.0
IL_00BC: ceq
IL_00BE: br => Label3
IL_00C3: Label2
IL_00C3: ldloc.s 18 (System.Int32)
IL_00C5: ldc.i4.0
IL_00C6: ceq
IL_00C8: ldc.i4.0
IL_00C9: ceq
IL_00CB: Label3
IL_00CB: stloc.s 21 (System.Boolean)
IL_00CD: ldloc.s 20 (System.Boolean)
IL_00CF: brfalse => Label4
IL_00D4: ldloc.s 18 (System.Int32)
IL_00D6: ldc.i4.0
IL_00D7: ceq
IL_00D9: ldc.i4.0
IL_00DA: ceq
IL_00DC: br => Label5
IL_00E1: Label4
IL_00E1: ldloc.s 19 (System.Int32)
IL_00E3: ldc.i4.0
IL_00E4: ceq
IL_00E6: ldc.i4.0
IL_00E7: ceq
IL_00E9: Label5
IL_00E9: stloc.s 22 (System.Boolean)
IL_00EB: ldloc.s 21 (System.Boolean)
IL_00ED: brfalse => Label6
IL_00F2: ldloc.s 11 (System.Int32)
IL_00F4: ldc.i4.1
IL_00F5: ldloc.s 16 (System.Int32)
IL_00F7: ldc.i4.s 31
IL_00F9: and
IL_00FA: shl
IL_00FB: or
IL_00FC: stloc.s 11 (System.Int32)
IL_00FE: Label6
IL_00FE: ldloc.s 22 (System.Boolean)
IL_0100: brfalse => Label7
IL_0105: ldloc.s 12 (System.Int32)
IL_0107: ldc.i4.1
IL_0108: ldloc.s 16 (System.Int32)
IL_010A: ldc.i4.s 31
IL_010C: and
IL_010D: shl
IL_010E: or
IL_010F: stloc.s 12 (System.Int32)
IL_0111: ldloc.s 14 (System.Int32)
IL_0113: ldc.i4.1
IL_0114: add
IL_0115: stloc.s 14 (System.Int32)
IL_0117: Label7
IL_0117: ldarg.0
IL_0118: ldloc.0
IL_0119: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_011E: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0123: ldloc.s 17 (System.UInt16)
IL_0125: ldelema NetSegment
IL_012A: ldloc.1
IL_012B: ldc.i4 256
IL_0130: sub
IL_0131: ldloca.s 23 (RoadBaseAI+TrafficLightState)
IL_0133: ldloca.s 24 (RoadBaseAI+TrafficLightState)
IL_0135: ldloca.s 25 (System.Boolean)
IL_0137: ldloca.s 26 (System.Boolean)
IL_0139: 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_013E: ldloc.s 24 (RoadBaseAI+TrafficLightState)
IL_0140: ldc.i4.2
IL_0141: and
IL_0142: brfalse => Label8
IL_0147: ldloc.s 26 (System.Boolean)
IL_0149: brfalse => Label9
IL_014E: ldloc.s 8 (System.Int32)
IL_0150: ldc.i4.m1
IL_0151: bne.un => Label10
IL_0156: ldloc.s 16 (System.Int32)
IL_0158: stloc.s 8 (System.Int32)
IL_015A: Label10
IL_015A: ldloc.s 10 (System.Int32)
IL_015C: ldc.i4.m1
IL_015D: bne.un => Label11
IL_0162: ldloc.s 15 (System.Int32)
IL_0164: ldloc.s 4 (System.Int32)
IL_0166: blt => Label12
IL_016B: ldloc.s 16 (System.Int32)
IL_016D: stloc.s 10 (System.Int32)
IL_016F: Label8
IL_016F: Label9
IL_016F: Label11
IL_016F: Label12
IL_016F: ldloc.s 15 (System.Int32)
IL_0171: ldc.i4.1
IL_0172: add
IL_0173: stloc.s 15 (System.Int32)
IL_0175: ldloc.s 21 (System.Boolean)
IL_0177: brtrue => Label13
IL_017C: ldloc.s 25 (System.Boolean)
IL_017E: brfalse => Label14
IL_0183: Label13
IL_0183: ldloc.s 23 (RoadBaseAI+TrafficLightState)
IL_0185: ldc.i4.2
IL_0186: and
IL_0187: brtrue => Label15
IL_018C: ldloc.s 16 (System.Int32)
IL_018E: stloc.s 6 (System.Int32)
IL_0190: ldloc.s 25 (System.Boolean)
IL_0192: brfalse => Label16
IL_0197: ldloc.s 16 (System.Int32)
IL_0199: stloc.s 5 (System.Int32)
IL_019B: Label16
IL_019B: br => Label17
IL_01A0: Label15
IL_01A0: ldloc.s 25 (System.Boolean)
IL_01A2: brfalse => Label18
IL_01A7: ldloc.s 7 (System.Int32)
IL_01A9: ldc.i4.m1
IL_01AA: bne.un => Label19
IL_01AF: ldloc.s 16 (System.Int32)
IL_01B1: stloc.s 7 (System.Int32)
IL_01B3: Label19
IL_01B3: ldloc.s 9 (System.Int32)
IL_01B5: ldc.i4.m1
IL_01B6: bne.un => Label20
IL_01BB: ldloc.s 13 (System.Int32)
IL_01BD: ldloc.3
IL_01BE: blt => Label21
IL_01C3: ldloc.s 16 (System.Int32)
IL_01C5: stloc.s 9 (System.Int32)
IL_01C7: Label17
IL_01C7: Label18
IL_01C7: Label20
IL_01C7: Label21
IL_01C7: ldloc.s 13 (System.Int32)
IL_01C9: ldc.i4.1
IL_01CA: add
IL_01CB: stloc.s 13 (System.Int32)
IL_01CD: Label1
IL_01CD: Label14
IL_01CD: ldloc.s 16 (System.Int32)
IL_01CF: ldc.i4.1
IL_01D0: add
IL_01D1: stloc.s 16 (System.Int32)
IL_01D3: Label0
IL_01D3: ldloc.s 16 (System.Int32)
IL_01D5: ldc.i4.8
IL_01D6: blt => Label22
IL_01DB: ldloc.s 9 (System.Int32)
IL_01DD: ldc.i4.m1
IL_01DE: bne.un => Label23
IL_01E3: ldloc.s 7 (System.Int32)
IL_01E5: stloc.s 9 (System.Int32)
IL_01E7: Label23
IL_01E7: ldloc.s 10 (System.Int32)
IL_01E9: ldc.i4.m1
IL_01EA: bne.un => Label24
IL_01EF: ldloc.s 8 (System.Int32)
IL_01F1: stloc.s 10 (System.Int32)
IL_01F3: Label24
IL_01F3: ldloc.s 6 (System.Int32)
IL_01F5: ldc.i4.m1
IL_01F6: beq => Label25
IL_01FB: ldloc.s 5 (System.Int32)
IL_01FD: ldc.i4.m1
IL_01FE: beq => Label26
IL_0203: ldloc.2
IL_0204: ldc.i4.1
IL_0205: bgt => Label27
IL_020A: ldc.i4.m1
IL_020B: stloc.s 9 (System.Int32)
IL_020D: ldc.i4.m1
IL_020E: stloc.s 10 (System.Int32)
IL_0210: ldloc.2
IL_0211: ldc.i4.1
IL_0212: add
IL_0213: stloc.2
IL_0214: Label25
IL_0214: Label26
IL_0214: Label27
IL_0214: ldloc.s 10 (System.Int32)
IL_0216: ldc.i4.m1
IL_0217: beq => Label28
IL_021C: ldloc.s 9 (System.Int32)
IL_021E: ldc.i4.m1
IL_021F: beq => Label29
IL_0224: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0229: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_022E: ldc.i4.3
IL_022F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0234: brfalse => Label30
IL_0239: ldc.i4.m1
IL_023A: stloc.s 10 (System.Int32)
IL_023C: Label28
IL_023C: Label29
IL_023C: Label30
IL_023C: ldloc.s 9 (System.Int32)
IL_023E: ldc.i4.m1
IL_023F: beq => Label31
IL_0244: ldloc.s 9 (System.Int32)
IL_0246: stloc.s 6 (System.Int32)
IL_0248: Label31
IL_0248: ldloc.s 10 (System.Int32)
IL_024A: ldloc.s 6 (System.Int32)
IL_024C: bne.un => Label32
IL_0251: ldc.i4.m1
IL_0252: stloc.s 6 (System.Int32)
IL_0254: Label32
IL_0254: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_0259: stloc.s 27 (UnityEngine.Vector3)
IL_025B: ldloc.s 10 (System.Int32)
IL_025D: ldc.i4.m1
IL_025E: beq => Label33
IL_0263: ldarg.1
IL_0264: ldloc.s 10 (System.Int32)
IL_0266: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_026B: stloc.s 28 (System.UInt16)
IL_026D: ldloc.0
IL_026E: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0273: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0278: ldloc.s 28 (System.UInt16)
IL_027A: ldelema NetSegment
IL_027F: ldarg.0
IL_0280: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0285: stloc.s 27 (UnityEngine.Vector3)
IL_0287: ldloc.s 6 (System.Int32)
IL_0289: ldc.i4.m1
IL_028A: beq => Label34
IL_028F: ldarg.1
IL_0290: ldloc.s 6 (System.Int32)
IL_0292: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0297: stloc.s 28 (System.UInt16)
IL_0299: ldloc.0
IL_029A: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_029F: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02A4: ldloc.s 28 (System.UInt16)
IL_02A6: ldelema NetSegment
IL_02AB: ldarg.0
IL_02AC: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_02B1: stloc.s 29 (UnityEngine.Vector3)
IL_02B3: ldloca.s 29 (UnityEngine.Vector3)
IL_02B5: ldfld System.Single UnityEngine.Vector3::x
IL_02BA: ldloca.s 27 (UnityEngine.Vector3)
IL_02BC: ldfld System.Single UnityEngine.Vector3::x
IL_02C1: mul
IL_02C2: ldloca.s 29 (UnityEngine.Vector3)
IL_02C4: ldfld System.Single UnityEngine.Vector3::z
IL_02C9: ldloca.s 27 (UnityEngine.Vector3)
IL_02CB: ldfld System.Single UnityEngine.Vector3::z
IL_02D0: mul
IL_02D1: add
IL_02D2: ldc.r4 -0.5
IL_02D7: bge.un => Label35
IL_02DC: ldc.i4.m1
IL_02DD: stloc.s 6 (System.Int32)
IL_02DF: Label34
IL_02DF: Label35
IL_02DF: ldloc.s 6 (System.Int32)
IL_02E1: ldc.i4.m1
IL_02E2: bne.un => Label36
IL_02E7: ldc.i4.0
IL_02E8: stloc.s 30 (System.Int32)
IL_02EA: br => Label37
IL_02EF: Label43
IL_02EF: ldloc.s 30 (System.Int32)
IL_02F1: ldloc.s 10 (System.Int32)
IL_02F3: beq => Label38
IL_02F8: ldloc.s 11 (System.Int32)
IL_02FA: ldc.i4.1
IL_02FB: ldloc.s 30 (System.Int32)
IL_02FD: ldc.i4.s 31
IL_02FF: and
IL_0300: shl
IL_0301: and
IL_0302: brfalse => Label39
IL_0307: ldarg.1
IL_0308: ldloc.s 30 (System.Int32)
IL_030A: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_030F: stloc.s 28 (System.UInt16)
IL_0311: ldloc.s 28 (System.UInt16)
IL_0313: brfalse => Label40
IL_0318: ldloc.0
IL_0319: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_031E: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0323: ldloc.s 28 (System.UInt16)
IL_0325: ldelema NetSegment
IL_032A: ldarg.0
IL_032B: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0330: stloc.s 31 (UnityEngine.Vector3)
IL_0332: ldloca.s 31 (UnityEngine.Vector3)
IL_0334: ldfld System.Single UnityEngine.Vector3::x
IL_0339: ldloca.s 27 (UnityEngine.Vector3)
IL_033B: ldfld System.Single UnityEngine.Vector3::x
IL_0340: mul
IL_0341: ldloca.s 31 (UnityEngine.Vector3)
IL_0343: ldfld System.Single UnityEngine.Vector3::z
IL_0348: ldloca.s 27 (UnityEngine.Vector3)
IL_034A: ldfld System.Single UnityEngine.Vector3::z
IL_034F: mul
IL_0350: add
IL_0351: ldc.r4 -0.5
IL_0356: blt.un => Label41
IL_035B: ldloc.s 30 (System.Int32)
IL_035D: stloc.s 6 (System.Int32)
IL_035F: br => Label42
IL_0364: Label38
IL_0364: Label39
IL_0364: Label40
IL_0364: Label41
IL_0364: ldloc.s 30 (System.Int32)
IL_0366: ldc.i4.1
IL_0367: add
IL_0368: stloc.s 30 (System.Int32)
IL_036A: Label37
IL_036A: ldloc.s 30 (System.Int32)
IL_036C: ldc.i4.8
IL_036D: blt => Label43
IL_0372: Label33
IL_0372: Label36
IL_0372: Label42
IL_0372: ldc.i4.m1
IL_0373: stloc.s 32 (System.Int32)
IL_0375: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_037A: stloc.s 33 (UnityEngine.Vector3)
IL_037C: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_0381: stloc.s 34 (UnityEngine.Vector3)
IL_0383: ldloc.s 6 (System.Int32)
IL_0385: ldc.i4.m1
IL_0386: beq => Label44
IL_038B: ldarg.1
IL_038C: ldloc.s 6 (System.Int32)
IL_038E: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0393: stloc.s 35 (System.UInt16)
IL_0395: ldloc.0
IL_0396: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_039B: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_03A0: ldloc.s 35 (System.UInt16)
IL_03A2: ldelema NetSegment
IL_03A7: ldarg.0
IL_03A8: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_03AD: stloc.s 33 (UnityEngine.Vector3)
IL_03AF: ldloc.s 11 (System.Int32)
IL_03B1: ldloc.s 12 (System.Int32)
IL_03B3: and
IL_03B4: ldc.i4.1
IL_03B5: ldloc.s 6 (System.Int32)
IL_03B7: ldc.i4.s 31
IL_03B9: and
IL_03BA: shl
IL_03BB: and
IL_03BC: brfalse => Label45
IL_03C1: ldc.i4.0
IL_03C2: stloc.s 36 (System.Int32)
IL_03C4: br => Label46
IL_03C9: Label57
IL_03C9: ldloc.s 36 (System.Int32)
IL_03CB: ldloc.s 6 (System.Int32)
IL_03CD: beq => Label47
IL_03D2: ldloc.s 36 (System.Int32)
IL_03D4: ldloc.s 10 (System.Int32)
IL_03D6: beq => Label48
IL_03DB: ldloc.s 11 (System.Int32)
IL_03DD: ldloc.s 12 (System.Int32)
IL_03DF: and
IL_03E0: ldc.i4.1
IL_03E1: ldloc.s 36 (System.Int32)
IL_03E3: ldc.i4.s 31
IL_03E5: and
IL_03E6: shl
IL_03E7: and
IL_03E8: brfalse => Label49
IL_03ED: ldarg.1
IL_03EE: ldloc.s 36 (System.Int32)
IL_03F0: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_03F5: stloc.s 35 (System.UInt16)
IL_03F7: ldloc.s 35 (System.UInt16)
IL_03F9: brfalse => Label50
IL_03FE: ldloc.0
IL_03FF: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0404: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0409: ldloc.s 35 (System.UInt16)
IL_040B: ldelema NetSegment
IL_0410: ldarg.0
IL_0411: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0416: stloc.s 34 (UnityEngine.Vector3)
IL_0418: ldloc.s 10 (System.Int32)
IL_041A: ldc.i4.m1
IL_041B: beq => Label51
IL_0420: ldloca.s 34 (UnityEngine.Vector3)
IL_0422: ldfld System.Single UnityEngine.Vector3::x
IL_0427: ldloca.s 27 (UnityEngine.Vector3)
IL_0429: ldfld System.Single UnityEngine.Vector3::x
IL_042E: mul
IL_042F: ldloca.s 34 (UnityEngine.Vector3)
IL_0431: ldfld System.Single UnityEngine.Vector3::z
IL_0436: ldloca.s 27 (UnityEngine.Vector3)
IL_0438: ldfld System.Single UnityEngine.Vector3::z
IL_043D: mul
IL_043E: add
IL_043F: ldc.r4 -0.5
IL_0444: blt.un => Label52
IL_0449: Label51
IL_0449: ldloc.s 14 (System.Int32)
IL_044B: ldc.i4.2
IL_044C: bne.un => Label53
IL_0451: ldloc.s 36 (System.Int32)
IL_0453: stloc.s 32 (System.Int32)
IL_0455: br => Label54
IL_045A: Label53
IL_045A: ldloca.s 34 (UnityEngine.Vector3)
IL_045C: ldfld System.Single UnityEngine.Vector3::x
IL_0461: ldloca.s 33 (UnityEngine.Vector3)
IL_0463: ldfld System.Single UnityEngine.Vector3::x
IL_0468: mul
IL_0469: ldloca.s 34 (UnityEngine.Vector3)
IL_046B: ldfld System.Single UnityEngine.Vector3::z
IL_0470: ldloca.s 33 (UnityEngine.Vector3)
IL_0472: ldfld System.Single UnityEngine.Vector3::z
IL_0477: mul
IL_0478: add
IL_0479: ldc.r4 -0.9396926
IL_047E: bge.un => Label55
IL_0483: ldloc.s 36 (System.Int32)
IL_0485: stloc.s 32 (System.Int32)
IL_0487: br => Label56
IL_048C: Label47
IL_048C: Label48
IL_048C: Label49
IL_048C: Label50
IL_048C: Label52
IL_048C: Label55
IL_048C: ldloc.s 36 (System.Int32)
IL_048E: ldc.i4.1
IL_048F: add
IL_0490: stloc.s 36 (System.Int32)
IL_0492: Label46
IL_0492: ldloc.s 36 (System.Int32)
IL_0494: ldc.i4.8
IL_0495: blt => Label57
IL_049A: Label44
IL_049A: Label45
IL_049A: Label54
IL_049A: Label56
IL_049A: ldc.i4.0
IL_049B: stloc.s 37 (System.Int32)
IL_049D: br => Label58
IL_04A2: Label77
IL_04A2: ldarg.1
IL_04A3: ldloc.s 37 (System.Int32)
IL_04A5: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_04AA: stloc.s 38 (System.UInt16)
IL_04AC: ldloc.s 38 (System.UInt16)
IL_04AE: brfalse => Label59
IL_04B3: ldarg.0
IL_04B4: ldloc.0
IL_04B5: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_04BA: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_04BF: ldloc.s 38 (System.UInt16)
IL_04C1: ldelema NetSegment
IL_04C6: ldloc.1
IL_04C7: ldc.i4 256
IL_04CC: sub
IL_04CD: ldloca.s 39 (RoadBaseAI+TrafficLightState)
IL_04CF: ldloca.s 40 (RoadBaseAI+TrafficLightState)
IL_04D1: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_04D6: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_04D8: ldc.i4.s -2
IL_04DA: and
IL_04DB: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_04DD: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_04DF: ldc.i4.s -2
IL_04E1: and
IL_04E2: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_04E4: ldloc.s 6 (System.Int32)
IL_04E6: ldloc.s 37 (System.Int32)
IL_04E8: beq => Label60
IL_04ED: ldloc.s 32 (System.Int32)
IL_04EF: ldloc.s 37 (System.Int32)
IL_04F1: bne.un => Label61
IL_04F6: Label60
IL_04F6: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_04F8: ldc.i4.2
IL_04F9: and
IL_04FA: brfalse => Label62
IL_04FF: ldc.i4.1
IL_0500: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0502: ldc.i4.0
IL_0503: stloc.2
IL_0504: ldloc.3
IL_0505: ldc.i4.1
IL_0506: add
IL_0507: dup
IL_0508: stloc.3
IL_0509: ldloc.s 13 (System.Int32)
IL_050B: blt => Label63
IL_0510: ldc.i4.0
IL_0511: stloc.3
IL_0512: Label62
IL_0512: Label63
IL_0512: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0514: ldc.i4.2
IL_0515: and
IL_0516: brtrue => Label64
IL_051B: ldc.i4.3
IL_051C: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_051E: Label64
IL_051E: br => Label65
IL_0523: Label61
IL_0523: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0525: ldc.i4.2
IL_0526: and
IL_0527: brtrue => Label66
IL_052C: ldc.i4.3
IL_052D: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_052F: Label66
IL_052F: ldloc.0
IL_0530: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0535: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_053A: ldloc.s 38 (System.UInt16)
IL_053C: ldelema NetSegment
IL_0541: ldarg.0
IL_0542: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0547: stloc.s 41 (UnityEngine.Vector3)
IL_0549: ldloc.s 12 (System.Int32)
IL_054B: ldc.i4.1
IL_054C: ldloc.s 37 (System.Int32)
IL_054E: ldc.i4.s 31
IL_0550: and
IL_0551: shl
IL_0552: and
IL_0553: brfalse => Label67
IL_0558: ldloc.s 10 (System.Int32)
IL_055A: ldloc.s 37 (System.Int32)
IL_055C: beq => Label68
IL_0561: ldloc.s 6 (System.Int32)
IL_0563: ldc.i4.m1
IL_0564: beq => Label69
IL_0569: ldloca.s 41 (UnityEngine.Vector3)
IL_056B: ldfld System.Single UnityEngine.Vector3::x
IL_0570: ldloca.s 33 (UnityEngine.Vector3)
IL_0572: ldfld System.Single UnityEngine.Vector3::x
IL_0577: mul
IL_0578: ldloca.s 41 (UnityEngine.Vector3)
IL_057A: ldfld System.Single UnityEngine.Vector3::z
IL_057F: ldloca.s 33 (UnityEngine.Vector3)
IL_0581: ldfld System.Single UnityEngine.Vector3::z
IL_0586: mul
IL_0587: add
IL_0588: ldc.r4 -0.5
IL_058D: blt => Label70
IL_0592: Label69
IL_0592: ldloc.s 32 (System.Int32)
IL_0594: ldc.i4.m1
IL_0595: beq => Label71
IL_059A: ldloca.s 41 (UnityEngine.Vector3)
IL_059C: ldfld System.Single UnityEngine.Vector3::x
IL_05A1: ldloca.s 34 (UnityEngine.Vector3)
IL_05A3: ldfld System.Single UnityEngine.Vector3::x
IL_05A8: mul
IL_05A9: ldloca.s 41 (UnityEngine.Vector3)
IL_05AB: ldfld System.Single UnityEngine.Vector3::z
IL_05B0: ldloca.s 34 (UnityEngine.Vector3)
IL_05B2: ldfld System.Single UnityEngine.Vector3::z
IL_05B7: mul
IL_05B8: add
IL_05B9: ldc.r4 -0.5
IL_05BE: bge.un => Label72
IL_05C3: Label70
IL_05C3: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05C5: ldc.i4.2
IL_05C6: and
IL_05C7: brtrue => Label73
IL_05CC: ldc.i4.3
IL_05CD: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05CF: Label73
IL_05CF: br => Label74
IL_05D4: Label67
IL_05D4: Label68
IL_05D4: Label71
IL_05D4: Label72
IL_05D4: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05D6: ldc.i4.2
IL_05D7: and
IL_05D8: brfalse => Label75
IL_05DD: ldc.i4.1
IL_05DE: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05E0: ldloc.s 4 (System.Int32)
IL_05E2: ldc.i4.1
IL_05E3: add
IL_05E4: dup
IL_05E5: stloc.s 4 (System.Int32)
IL_05E7: ldloc.s 15 (System.Int32)
IL_05E9: blt => Label76
IL_05EE: ldc.i4.0
IL_05EF: stloc.s 4 (System.Int32)
IL_05F1: Label65
IL_05F1: Label74
IL_05F1: Label75
IL_05F1: Label76
IL_05F1: ldarg.0
IL_05F2: ldloc.0
IL_05F3: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_05F8: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_05FD: ldloc.s 38 (System.UInt16)
IL_05FF: ldelema NetSegment
IL_0604: ldloc.1
IL_0605: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0607: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0609: ldc.i4.0
IL_060A: ldc.i4.0
IL_060B: 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_0610: Label59
IL_0610: ldloc.s 37 (System.Int32)
IL_0612: ldc.i4.1
IL_0613: add
IL_0614: stloc.s 37 (System.Int32)
IL_0616: Label58
IL_0616: ldloc.s 37 (System.Int32)
IL_0618: ldc.i4.8
IL_0619: blt => Label77
IL_061E: ldarg.1
IL_061F: ldloc.s 4 (System.Int32)
IL_0621: ldc.i4.5
IL_0622: shl
IL_0623: ldloc.3
IL_0624: ldc.i4.2
IL_0625: shl
IL_0626: or
IL_0627: ldloc.2
IL_0628: or
IL_0629: conv.u1
IL_062A: stfld System.Byte NetNode::m_maxWaitTime
IL_062F: // end original
IL_062F: ret
DONE

### Patch: static System.Void RoadBaseAI::GetTrafficLightNodeState(System.UInt16


nodeID, NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData, Flags&
flags, UnityEngine.Color& color)
### Replacement: static System.Void
RoadBaseAI::RoadBaseAI.GetTrafficLightNodeState_Patch0(System.UInt16 nodeID,
NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData, Flags& 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: // start original
IL_0000: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0005: ldfld System.UInt32 SimulationManager::m_referenceFrameIndex
IL_000A: ldc.i4.s 15
IL_000C: sub
IL_000D: stloc.2
IL_000E: ldarg.0
IL_000F: ldc.i4.8
IL_0010: shl
IL_0011: ldc.i4 32768
IL_0016: div.un
IL_0017: stloc.3
IL_0018: ldloc.2
IL_0019: ldloc.3
IL_001A: sub
IL_001B: ldc.i4 255
IL_0020: and
IL_0021: stloc.s 4 (System.UInt32)
IL_0023: ldarg.0
IL_0024: ldarg.3
IL_0025: ldloc.2
IL_0026: ldloc.3
IL_0027: sub
IL_0028: ldloca.s 0 (RoadBaseAI+TrafficLightState)
IL_002A: ldloca.s 1 (RoadBaseAI+TrafficLightState)
IL_002C: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_0031: ldarg.s 5
IL_0033: ldc.r4 0.5
IL_0038: stfld System.Single UnityEngine.Color::a
IL_003D: ldloc.0
IL_003E: switch => Labels0,1,2,3
IL_0053: br => Label4
IL_0058: Label0
IL_0058: ldarg.s 5
IL_005A: ldc.r4 1
IL_005F: stfld System.Single UnityEngine.Color::g
IL_0064: br => Label5
IL_0069: Label1
IL_0069: ldloc.s 4 (System.UInt32)
IL_006B: ldc.i4.s 45
IL_006D: bge.un => Label6
IL_0072: ldarg.s 5
IL_0074: ldc.r4 0
IL_0079: stfld System.Single UnityEngine.Color::g
IL_007E: br => Label7
IL_0083: Label6
IL_0083: ldloc.s 4 (System.UInt32)
IL_0085: ldc.i4.s 60
IL_0087: bge.un => Label8
IL_008C: ldarg.s 5
IL_008E: ldc.r4 1
IL_0093: stfld System.Single UnityEngine.Color::r
IL_0098: br => Label9
IL_009D: Label8
IL_009D: ldarg.s 5
IL_009F: ldc.r4 1
IL_00A4: stfld System.Single UnityEngine.Color::g
IL_00A9: Label7
IL_00A9: Label9
IL_00A9: br => Label10
IL_00AE: Label2
IL_00AE: ldarg.s 5
IL_00B0: ldc.r4 0
IL_00B5: stfld System.Single UnityEngine.Color::g
IL_00BA: br => Label11
IL_00BF: Label3
IL_00BF: ldloc.s 4 (System.UInt32)
IL_00C1: ldc.i4.s 45
IL_00C3: bge.un => Label12
IL_00C8: ldarg.s 5
IL_00CA: ldc.r4 1
IL_00CF: stfld System.Single UnityEngine.Color::r
IL_00D4: br => Label13
IL_00D9: Label12
IL_00D9: ldarg.s 5
IL_00DB: ldc.r4 0
IL_00E0: stfld System.Single UnityEngine.Color::g
IL_00E5: Label13
IL_00E5: br => Label14
IL_00EA: Label4
IL_00EA: Label5
IL_00EA: Label10
IL_00EA: Label11
IL_00EA: Label14
IL_00EA: ldloc.1
IL_00EB: switch => Labels15,16,17,18
IL_0100: br => Label19
IL_0105: Label15
IL_0105: ldarg.s 5
IL_0107: ldc.r4 1
IL_010C: stfld System.Single UnityEngine.Color::b
IL_0111: br => Label20
IL_0116: Label16
IL_0116: ldloc.s 4 (System.UInt32)
IL_0118: ldc.i4.s 45
IL_011A: bge.un => Label21
IL_011F: ldarg.s 5
IL_0121: ldc.r4 0
IL_0126: stfld System.Single UnityEngine.Color::b
IL_012B: br => Label22
IL_0130: Label21
IL_0130: ldarg.s 5
IL_0132: ldc.r4 1
IL_0137: stfld System.Single UnityEngine.Color::b
IL_013C: Label22
IL_013C: br => Label23
IL_0141: Label17
IL_0141: ldarg.s 5
IL_0143: ldc.r4 0
IL_0148: stfld System.Single UnityEngine.Color::b
IL_014D: br => Label24
IL_0152: Label18
IL_0152: ldloc.s 4 (System.UInt32)
IL_0154: ldc.i4.s 45
IL_0156: bge.un => Label25
IL_015B: ldloc.s 4 (System.UInt32)
IL_015D: ldc.i4.8
IL_015E: div.un
IL_015F: ldc.i4.1
IL_0160: and
IL_0161: ldc.i4.1
IL_0162: bne.un => Label26
IL_0167: ldarg.s 5
IL_0169: ldc.r4 1
IL_016E: stfld System.Single UnityEngine.Color::b
IL_0173: Label26
IL_0173: br => Label27
IL_0178: Label25
IL_0178: ldarg.s 5
IL_017A: ldc.r4 0
IL_017F: stfld System.Single UnityEngine.Color::b
IL_0184: Label27
IL_0184: br => Label28
IL_0189: // end original
IL_0189: Label19
IL_0189: Label20
IL_0189: Label23
IL_0189: Label24
IL_0189: Label28
IL_0189: ret
DONE

### Patch: virtual System.Void RoadBaseAI::UpdateNode(System.UInt16 nodeID,


NetNode& data)
### Replacement: static System.Void
RoadBaseAI::RoadBaseAI.UpdateNode_Patch0(RoadBaseAI this, System.UInt16 nodeID,
NetNode& data)
IL_0000: Local var 0: Notification/Problem
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 Problem NetNode::m_problems
IL_000E: ldc.i8 72057602627866624
IL_0017: call static Problem Notification::RemoveProblems(Problem problems1,
Problem problems2)
IL_001C: stloc.0
IL_001D: ldc.i4.0
IL_001E: stloc.1
IL_001F: ldc.i4.0
IL_0020: stloc.2
IL_0021: ldarg.2
IL_0022: ldarg.1
IL_0023: ldc.i4.0
IL_0024: ldc.i4.s 33
IL_0026: ldc.i4.1
IL_0027: ldc.i4.1
IL_0028: ldloca.s 1 (System.Int32)
IL_002A: ldloca.s 2 (System.Int32)
IL_002C: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, LaneType laneTypes, VehicleType vehicleTypes,
System.Boolean onePerSegment, System.Int32& forward, System.Int32& backward)
IL_0031: ldarg.2
IL_0032: ldfld Flags NetNode::m_flags
IL_0037: ldc.i4 1024
IL_003C: and
IL_003D: brfalse => Label0
IL_0042: ldarg.2
IL_0043: ldfld System.UInt16 NetNode::m_building
IL_0048: brfalse => Label1
IL_004D: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0052: stloc.3
IL_0053: ldloc.1
IL_0054: brfalse => Label2
IL_0059: ldloc.3
IL_005A: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_005F: ldfld Building[] Array16`1<Building>::m_buffer
IL_0064: ldarg.2
IL_0065: ldfld System.UInt16 NetNode::m_building
IL_006A: ldelema Building
IL_006F: dup
IL_0070: ldfld Flags Building::m_flags
IL_0075: ldc.i4 128
IL_007A: or
IL_007B: stfld Flags Building::m_flags
IL_0080: br => Label3
IL_0085: Label2
IL_0085: ldloc.3
IL_0086: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008B: ldfld Building[] Array16`1<Building>::m_buffer
IL_0090: ldarg.2
IL_0091: ldfld System.UInt16 NetNode::m_building
IL_0096: ldelema Building
IL_009B: dup
IL_009C: ldfld Flags Building::m_flags
IL_00A1: ldc.i4 -129
IL_00A6: and
IL_00A7: stfld Flags Building::m_flags
IL_00AC: Label3
IL_00AC: ldloc.2
IL_00AD: brfalse => Label4
IL_00B2: ldloc.3
IL_00B3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00B8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00BD: ldarg.2
IL_00BE: ldfld System.UInt16 NetNode::m_building
IL_00C3: ldelema Building
IL_00C8: dup
IL_00C9: ldfld Flags Building::m_flags
IL_00CE: ldc.i4.s 64
IL_00D0: or
IL_00D1: stfld Flags Building::m_flags
IL_00D6: br => Label5
IL_00DB: Label4
IL_00DB: ldloc.3
IL_00DC: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00E1: ldfld Building[] Array16`1<Building>::m_buffer
IL_00E6: ldarg.2
IL_00E7: ldfld System.UInt16 NetNode::m_building
IL_00EC: ldelema Building
IL_00F1: dup
IL_00F2: ldfld Flags Building::m_flags
IL_00F7: ldc.i4.s -65
IL_00F9: and
IL_00FA: stfld Flags Building::m_flags
IL_00FF: Label5
IL_00FF: br => Label6
IL_0104: Label0
IL_0104: Label1
IL_0104: ldloc.1
IL_0105: brfalse => Label7
IL_010A: ldloc.2
IL_010B: brfalse => Label8
IL_0110: Label7
IL_0110: ldloc.1
IL_0111: brtrue => Label9
IL_0116: ldloc.2
IL_0117: brfalse => Label10
IL_011C: Label8
IL_011C: ldloc.0
IL_011D: ldc.i4 4096
IL_0122: conv.i8
IL_0123: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0128: stloc.0
IL_0129: Label6
IL_0129: Label9
IL_0129: Label10
IL_0129: ldloc.1
IL_012A: ldc.i4.1
IL_012B: bne.un => Label11
IL_0130: ldarg.2
IL_0131: dup
IL_0132: ldfld Flags NetNode::m_flags
IL_0137: ldc.i4 4194304
IL_013C: or
IL_013D: stfld Flags NetNode::m_flags
IL_0142: br => Label12
IL_0147: Label11
IL_0147: ldarg.2
IL_0148: dup
IL_0149: ldfld Flags NetNode::m_flags
IL_014E: ldc.i4 -4194305
IL_0153: and
IL_0154: stfld Flags NetNode::m_flags
IL_0159: Label12
IL_0159: ldloc.2
IL_015A: ldc.i4.1
IL_015B: bne.un => Label13
IL_0160: ldarg.2
IL_0161: dup
IL_0162: ldfld Flags NetNode::m_flags
IL_0167: ldc.i4 16777216
IL_016C: or
IL_016D: stfld Flags NetNode::m_flags
IL_0172: br => Label14
IL_0177: Label13
IL_0177: ldarg.2
IL_0178: dup
IL_0179: ldfld Flags NetNode::m_flags
IL_017E: ldc.i4 -16777217
IL_0183: and
IL_0184: stfld Flags NetNode::m_flags
IL_0189: Label14
IL_0189: ldarg.2
IL_018A: ldfld Flags NetNode::m_flags
IL_018F: ldc.i4 262144
IL_0194: and
IL_0195: brtrue => Label15
IL_019A: ldc.i4.0
IL_019B: stloc.s 4 (System.Int32)
IL_019D: ldc.i4.0
IL_019E: stloc.1
IL_019F: ldc.i4.0
IL_01A0: stloc.2
IL_01A1: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_01A6: stloc.s 5 (NetManager)
IL_01A8: ldc.i4.0
IL_01A9: stloc.s 6 (System.Int32)
IL_01AB: br => Label16
IL_01B0: Label24
IL_01B0: ldarg.2
IL_01B1: ldloc.s 6 (System.Int32)
IL_01B3: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_01B8: stloc.s 7 (System.UInt16)
IL_01BA: ldloc.s 7 (System.UInt16)
IL_01BC: brfalse => Label17
IL_01C1: ldc.i4.0
IL_01C2: stloc.s 8 (System.Int32)
IL_01C4: ldc.i4.0
IL_01C5: stloc.s 9 (System.Int32)
IL_01C7: ldloc.s 5 (NetManager)
IL_01C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01D3: ldloc.s 7 (System.UInt16)
IL_01D5: ldelema NetSegment
IL_01DA: ldloc.s 7 (System.UInt16)
IL_01DC: ldc.i4.s 33
IL_01DE: ldc.i4.s 64
IL_01E0: ldloca.s 8 (System.Int32)
IL_01E2: ldloca.s 9 (System.Int32)
IL_01E4: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_01E9: ldloc.s 8 (System.Int32)
IL_01EB: brtrue => Label18
IL_01F0: ldloc.s 9 (System.Int32)
IL_01F2: brfalse => Label19
IL_01F7: Label18
IL_01F7: ldloc.s 4 (System.Int32)
IL_01F9: ldc.i4.1
IL_01FA: add
IL_01FB: stloc.s 4 (System.Int32)
IL_01FD: ldloc.s 8 (System.Int32)
IL_01FF: brfalse => Label20
IL_0204: ldc.i4.1
IL_0205: stloc.s 8 (System.Int32)
IL_0207: Label20
IL_0207: ldloc.s 9 (System.Int32)
IL_0209: brfalse => Label21
IL_020E: ldc.i4.1
IL_020F: stloc.s 9 (System.Int32)
IL_0211: Label21
IL_0211: ldloc.s 5 (NetManager)
IL_0213: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0218: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_021D: ldloc.s 7 (System.UInt16)
IL_021F: ldelema NetSegment
IL_0224: ldfld System.UInt16 NetSegment::m_endNode
IL_0229: ldarg.1
IL_022A: bne.un => Label22
IL_022F: ldloc.1
IL_0230: ldloc.s 9 (System.Int32)
IL_0232: add
IL_0233: stloc.1
IL_0234: ldloc.2
IL_0235: ldloc.s 8 (System.Int32)
IL_0237: add
IL_0238: stloc.2
IL_0239: br => Label23
IL_023E: Label22
IL_023E: ldloc.1
IL_023F: ldloc.s 8 (System.Int32)
IL_0241: add
IL_0242: stloc.1
IL_0243: ldloc.2
IL_0244: ldloc.s 9 (System.Int32)
IL_0246: add
IL_0247: stloc.2
IL_0248: Label17
IL_0248: Label19
IL_0248: Label23
IL_0248: ldloc.s 6 (System.Int32)
IL_024A: ldc.i4.1
IL_024B: add
IL_024C: stloc.s 6 (System.Int32)
IL_024E: Label16
IL_024E: ldloc.s 6 (System.Int32)
IL_0250: ldc.i4.8
IL_0251: blt => Label24
IL_0256: ldloc.1
IL_0257: brfalse => Label25
IL_025C: ldloc.2
IL_025D: brfalse => Label26
IL_0262: Label25
IL_0262: ldloc.1
IL_0263: brtrue => Label27
IL_0268: ldloc.2
IL_0269: brtrue => Label28
IL_026E: Label27
IL_026E: ldloc.s 4 (System.Int32)
IL_0270: ldc.i4.1
IL_0271: bne.un => Label29
IL_0276: Label26
IL_0276: Label28
IL_0276: ldloc.0
IL_0277: ldc.i8 8589934592
IL_0280: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0285: stloc.0
IL_0286: Label29
IL_0286: ldc.i4.0
IL_0287: stloc.s 4 (System.Int32)
IL_0289: ldc.i4.0
IL_028A: stloc.1
IL_028B: ldc.i4.0
IL_028C: stloc.2
IL_028D: ldc.i4.0
IL_028E: stloc.s 10 (System.Int32)
IL_0290: br => Label30
IL_0295: Label38
IL_0295: ldarg.2
IL_0296: ldloc.s 10 (System.Int32)
IL_0298: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_029D: stloc.s 11 (System.UInt16)
IL_029F: ldloc.s 11 (System.UInt16)
IL_02A1: brfalse => Label31
IL_02A6: ldc.i4.0
IL_02A7: stloc.s 12 (System.Int32)
IL_02A9: ldc.i4.0
IL_02AA: stloc.s 13 (System.Int32)
IL_02AC: ldloc.s 5 (NetManager)
IL_02AE: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02B3: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02B8: ldloc.s 11 (System.UInt16)
IL_02BA: ldelema NetSegment
IL_02BF: ldloc.s 11 (System.UInt16)
IL_02C1: ldc.i4.s 33
IL_02C3: ldc.i4 65536
IL_02C8: ldloca.s 12 (System.Int32)
IL_02CA: ldloca.s 13 (System.Int32)
IL_02CC: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_02D1: ldloc.s 12 (System.Int32)
IL_02D3: brtrue => Label32
IL_02D8: ldloc.s 13 (System.Int32)
IL_02DA: brfalse => Label33
IL_02DF: Label32
IL_02DF: ldloc.s 4 (System.Int32)
IL_02E1: ldc.i4.1
IL_02E2: add
IL_02E3: stloc.s 4 (System.Int32)
IL_02E5: ldloc.s 12 (System.Int32)
IL_02E7: brfalse => Label34
IL_02EC: ldc.i4.1
IL_02ED: stloc.s 12 (System.Int32)
IL_02EF: Label34
IL_02EF: ldloc.s 13 (System.Int32)
IL_02F1: brfalse => Label35
IL_02F6: ldc.i4.1
IL_02F7: stloc.s 13 (System.Int32)
IL_02F9: Label35
IL_02F9: ldloc.s 5 (NetManager)
IL_02FB: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0300: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0305: ldloc.s 11 (System.UInt16)
IL_0307: ldelema NetSegment
IL_030C: ldfld System.UInt16 NetSegment::m_endNode
IL_0311: ldarg.1
IL_0312: bne.un => Label36
IL_0317: ldloc.1
IL_0318: ldloc.s 13 (System.Int32)
IL_031A: add
IL_031B: stloc.1
IL_031C: ldloc.2
IL_031D: ldloc.s 12 (System.Int32)
IL_031F: add
IL_0320: stloc.2
IL_0321: br => Label37
IL_0326: Label36
IL_0326: ldloc.1
IL_0327: ldloc.s 12 (System.Int32)
IL_0329: add
IL_032A: stloc.1
IL_032B: ldloc.2
IL_032C: ldloc.s 13 (System.Int32)
IL_032E: add
IL_032F: stloc.2
IL_0330: Label31
IL_0330: Label33
IL_0330: Label37
IL_0330: ldloc.s 10 (System.Int32)
IL_0332: ldc.i4.1
IL_0333: add
IL_0334: stloc.s 10 (System.Int32)
IL_0336: Label30
IL_0336: ldloc.s 10 (System.Int32)
IL_0338: ldc.i4.8
IL_0339: blt => Label38
IL_033E: ldloc.1
IL_033F: brfalse => Label39
IL_0344: ldloc.2
IL_0345: brfalse => Label40
IL_034A: Label39
IL_034A: ldloc.1
IL_034B: brtrue => Label41
IL_0350: ldloc.2
IL_0351: brtrue => Label42
IL_0356: Label41
IL_0356: ldloc.s 4 (System.Int32)
IL_0358: ldc.i4.1
IL_0359: bne.un => Label43
IL_035E: Label40
IL_035E: Label42
IL_035E: ldloc.0
IL_035F: ldc.i8 72057594037927936
IL_0368: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_036D: stloc.0
IL_036E: Label15
IL_036E: Label43
IL_036E: ldarg.2
IL_036F: ldloc.0
IL_0370: stfld Problem NetNode::m_problems
IL_0375: // end original
IL_0375: ret
DONE

### Patch: virtual System.Void RoadBaseAI::UpdateLanes(System.UInt16 segmentID,


NetSegment& data, System.Boolean loading)
### Replacement: static System.Void
RoadBaseAI::RoadBaseAI.UpdateLanes_Patch0(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<NetManager>::get_instance()
IL_0005: stloc.0
IL_0006: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::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<NetNode> NetManager::m_nodes
IL_0176: ldfld NetNode[] Array16`1<NetNode>::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: ldarg.2
IL_0192: ldfld UnityEngine.Vector3 NetSegment::m_endDirection
IL_0197: call static UnityEngine.Vector3
UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a)
IL_019C: ldloca.s 12 (System.Int32)
IL_019E: ldloca.s 13 (System.Int32)
IL_01A0: ldloca.s 14 (System.Int32)
IL_01A2: ldloca.s 15 (System.Int32)
IL_01A4: ldloca.s 16 (System.Int32)
IL_01A6: ldloca.s 17 (System.Int32)
IL_01A8: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, Direction directions, LaneType laneTypes, VehicleType
vehicleTypes, UnityEngine.Vector3 direction, System.Int32& left, System.Int32&
forward, System.Int32& right, System.Int32& left2, System.Int32& forward2,
System.Int32& right2)
IL_01AD: ldloc.0
IL_01AE: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_01B3: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_01B8: ldarg.2
IL_01B9: ldfld System.UInt16 NetSegment::m_endNode
IL_01BE: ldelema NetNode
IL_01C3: ldfld Flags NetNode::m_flags
IL_01C8: ldc.i4 1136
IL_01CD: and
IL_01CE: brfalse => Label2
IL_01D3: ldloc.s 12 (System.Int32)
IL_01D5: ldloc.s 13 (System.Int32)
IL_01D7: add
IL_01D8: ldloc.s 14 (System.Int32)
IL_01DA: add
IL_01DB: brtrue => Label3
IL_01E0: ldc.i4.1
IL_01E1: stloc.s 19 (System.Boolean)
IL_01E3: br => Label4
IL_01E8: Label3
IL_01E8: ldc.i4.1
IL_01E9: stloc.s 18 (System.Boolean)
IL_01EB: Label2
IL_01EB: Label4
IL_01EB: ldc.i4.0
IL_01EC: stloc.s 20 (System.Int32)
IL_01EE: ldc.i4.0
IL_01EF: stloc.s 21 (System.Int32)
IL_01F1: ldc.i4.0
IL_01F2: stloc.s 22 (System.Int32)
IL_01F4: ldc.i4.0
IL_01F5: stloc.s 23 (System.Int32)
IL_01F7: ldc.i4.0
IL_01F8: stloc.s 24 (System.Int32)
IL_01FA: ldc.i4.0
IL_01FB: stloc.s 25 (System.Int32)
IL_01FD: ldc.i4.0
IL_01FE: stloc.s 26 (System.Boolean)
IL_0200: ldc.i4.0
IL_0201: stloc.s 27 (System.Boolean)
IL_0203: ldloc.0
IL_0204: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0209: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_020E: ldarg.2
IL_020F: ldfld System.UInt16 NetSegment::m_startNode
IL_0214: ldelema NetNode
IL_0219: ldarg.2
IL_021A: ldfld System.UInt16 NetSegment::m_startNode
IL_021F: ldarg.1
IL_0220: ldc.i4.1
IL_0221: ldc.i4.s 33
IL_0223: ldc.i4.1
IL_0224: ldarg.2
IL_0225: ldfld UnityEngine.Vector3 NetSegment::m_startDirection
IL_022A: call static UnityEngine.Vector3
UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a)
IL_022F: ldloca.s 20 (System.Int32)
IL_0231: ldloca.s 21 (System.Int32)
IL_0233: ldloca.s 22 (System.Int32)
IL_0235: ldloca.s 23 (System.Int32)
IL_0237: ldloca.s 24 (System.Int32)
IL_0239: ldloca.s 25 (System.Int32)
IL_023B: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, Direction directions, LaneType laneTypes, VehicleType
vehicleTypes, UnityEngine.Vector3 direction, System.Int32& left, System.Int32&
forward, System.Int32& right, System.Int32& left2, System.Int32& forward2,
System.Int32& right2)
IL_0240: ldloc.0
IL_0241: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0246: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_024B: ldarg.2
IL_024C: ldfld System.UInt16 NetSegment::m_startNode
IL_0251: ldelema NetNode
IL_0256: ldfld Flags NetNode::m_flags
IL_025B: ldc.i4 1136
IL_0260: and
IL_0261: brfalse => Label5
IL_0266: ldloc.s 20 (System.Int32)
IL_0268: ldloc.s 21 (System.Int32)
IL_026A: add
IL_026B: ldloc.s 22 (System.Int32)
IL_026D: add
IL_026E: brtrue => Label6
IL_0273: ldc.i4.1
IL_0274: stloc.s 27 (System.Boolean)
IL_0276: br => Label7
IL_027B: Label6
IL_027B: ldc.i4.1
IL_027C: stloc.s 26 (System.Boolean)
IL_027E: Label5
IL_027E: Label7
IL_027E: ldc.i4.0
IL_027F: stloc.s 28 (NetLane+Flags)
IL_0281: ldloc.s 15 (System.Int32)
IL_0283: brfalse => Label8
IL_0288: ldloc.s 12 (System.Int32)
IL_028A: brtrue => Label9
IL_028F: ldloc.s 28 (NetLane+Flags)
IL_0291: ldarg.2
IL_0292: ldfld Flags NetSegment::m_flags
IL_0297: ldc.i4.s 16
IL_0299: and
IL_029A: brfalse => Label10
IL_029F: ldc.i4 4096
IL_02A4: br => Label11
IL_02A9: Label10
IL_02A9: ldc.i4 16384
IL_02AE: Label11
IL_02AE: or
IL_02AF: stloc.s 28 (NetLane+Flags)
IL_02B1: Label8
IL_02B1: Label9
IL_02B1: ldloc.s 17 (System.Int32)
IL_02B3: brfalse => Label12
IL_02B8: ldloc.s 14 (System.Int32)
IL_02BA: brtrue => Label13
IL_02BF: ldloc.s 28 (NetLane+Flags)
IL_02C1: ldarg.2
IL_02C2: ldfld Flags NetSegment::m_flags
IL_02C7: ldc.i4.s 16
IL_02C9: and
IL_02CA: brfalse => Label14
IL_02CF: ldc.i4 8192
IL_02D4: br => Label15
IL_02D9: Label14
IL_02D9: ldc.i4 32768
IL_02DE: Label15
IL_02DE: or
IL_02DF: stloc.s 28 (NetLane+Flags)
IL_02E1: Label12
IL_02E1: Label13
IL_02E1: ldloc.s 23 (System.Int32)
IL_02E3: brfalse => Label16
IL_02E8: ldloc.s 20 (System.Int32)
IL_02EA: brtrue => Label17
IL_02EF: ldloc.s 28 (NetLane+Flags)
IL_02F1: ldarg.2
IL_02F2: ldfld Flags NetSegment::m_flags
IL_02F7: ldc.i4.s 16
IL_02F9: and
IL_02FA: brfalse => Label18
IL_02FF: ldc.i4 16384
IL_0304: br => Label19
IL_0309: Label18
IL_0309: ldc.i4 4096
IL_030E: Label19
IL_030E: or
IL_030F: stloc.s 28 (NetLane+Flags)
IL_0311: Label16
IL_0311: Label17
IL_0311: ldloc.s 25 (System.Int32)
IL_0313: brfalse => Label20
IL_0318: ldloc.s 22 (System.Int32)
IL_031A: brtrue => Label21
IL_031F: ldloc.s 28 (NetLane+Flags)
IL_0321: ldarg.2
IL_0322: ldfld Flags NetSegment::m_flags
IL_0327: ldc.i4.s 16
IL_0329: and
IL_032A: brfalse => Label22
IL_032F: ldc.i4 32768
IL_0334: br => Label23
IL_0339: Label22
IL_0339: ldc.i4 8192
IL_033E: Label23
IL_033E: or
IL_033F: stloc.s 28 (NetLane+Flags)
IL_0341: Label20
IL_0341: Label21
IL_0341: ldarg.2
IL_0342: ldfld Flags NetSegment::m_flags
IL_0347: ldc.i4 1073741824
IL_034C: and
IL_034D: brfalse => Label24
IL_0352: ldloc.s 28 (NetLane+Flags)
IL_0354: ldarg.2
IL_0355: ldfld Flags NetSegment::m_flags
IL_035A: ldc.i4.s 16
IL_035C: and
IL_035D: brfalse => Label25
IL_0362: ldc.i4 2048
IL_0367: br => Label26
IL_036C: Label25
IL_036C: ldc.i4 1024
IL_0371: Label26
IL_0371: or
IL_0372: stloc.s 28 (NetLane+Flags)
IL_0374: Label24
IL_0374: ldarg.2
IL_0375: ldfld Flags NetSegment::m_flags
IL_037A: ldc.i4 -2147483648
IL_037F: and
IL_0380: brfalse => Label27
IL_0385: ldloc.s 28 (NetLane+Flags)
IL_0387: ldarg.2
IL_0388: ldfld Flags NetSegment::m_flags
IL_038D: ldc.i4.s 16
IL_038F: and
IL_0390: brfalse => Label28
IL_0395: ldc.i4 1024
IL_039A: br => Label29
IL_039F: Label28
IL_039F: ldc.i4 2048
IL_03A4: Label29
IL_03A4: or
IL_03A5: stloc.s 28 (NetLane+Flags)
IL_03A7: Label27
IL_03A7: ldc.r4 0
IL_03AC: stloc.s 29 (System.Single)
IL_03AE: ldc.r4 0
IL_03B3: stloc.s 30 (System.Single)
IL_03B5: ldc.i4.0
IL_03B6: stloc.s 31 (System.UInt32)
IL_03B8: ldarg.2
IL_03B9: ldfld System.UInt32 NetSegment::m_lanes
IL_03BE: stloc.s 32 (System.UInt32)
IL_03C0: ldc.i4.0
IL_03C1: stloc.s 33 (System.Int32)
IL_03C3: br => Label30
IL_03C8: Label89
IL_03C8: ldloc.s 32 (System.UInt32)
IL_03CA: brtrue => Label31
IL_03CF: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_03D4: ldloca.s 32 (System.UInt32)
IL_03D6: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_03DB: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_03E0: ldarg.1
IL_03E1: ldc.i4.1
IL_03E2: callvirt System.Boolean NetManager::CreateLanes(System.UInt32&
firstLane, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segment,
System.Int32 count)
IL_03E7: brfalse => Label32
IL_03EC: ldloc.s 31 (System.UInt32)
IL_03EE: brfalse => Label33
IL_03F3: ldloc.0
IL_03F4: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_03F9: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_03FE: ldloc.s 31 (System.UInt32)
IL_0400: conv.u
IL_0401: ldelema NetLane
IL_0406: ldloc.s 32 (System.UInt32)
IL_0408: stfld System.UInt32 NetLane::m_nextLane
IL_040D: br => Label34
IL_0412: Label33
IL_0412: ldarg.2
IL_0413: ldloc.s 32 (System.UInt32)
IL_0415: stfld System.UInt32 NetSegment::m_lanes
IL_041A: Label34
IL_041A: br => Label35
IL_041F: Label32
IL_041F: br => Label36
IL_0424: Label31
IL_0424: Label35
IL_0424: ldarg.0
IL_0425: ldfld NetInfo NetAI::m_info
IL_042A: ldfld Lane[] NetInfo::m_lanes
IL_042F: ldloc.s 33 (System.Int32)
IL_0431: ldelem.ref
IL_0432: stloc.s 34 (NetInfo+Lane)
IL_0434: ldloc.s 34 (NetInfo+Lane)
IL_0436: ldfld System.Single Lane::m_position
IL_043B: ldarg.0
IL_043C: ldfld NetInfo NetAI::m_info
IL_0441: ldfld System.Single NetInfo::m_halfWidth
IL_0446: ldc.r4 2
IL_044B: mul
IL_044C: div
IL_044D: ldc.r4 0.5
IL_0452: add
IL_0453: stloc.s 35 (System.Single)
IL_0455: ldarg.2
IL_0456: ldfld Flags NetSegment::m_flags
IL_045B: ldc.i4.s 16
IL_045D: and
IL_045E: brfalse => Label37
IL_0463: ldc.r4 1
IL_0468: ldloc.s 35 (System.Single)
IL_046A: sub
IL_046B: stloc.s 35 (System.Single)
IL_046D: Label37
IL_046D: ldloc.2
IL_046E: ldloc.3
IL_046F: ldloc.2
IL_0470: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0475: ldloc.s 35 (System.Single)
IL_0477: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_047C: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0481: stloc.s 36 (UnityEngine.Vector3)
IL_0483: ldloc.s 6 (UnityEngine.Vector3)
IL_0485: ldloc.s 7 (UnityEngine.Vector3)
IL_0487: ldloc.s 35 (System.Single)
IL_0489: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_048E: stloc.s 37 (UnityEngine.Vector3)
IL_0490: ldloc.s 4 (UnityEngine.Vector3)
IL_0492: ldloc.s 5 (UnityEngine.Vector3)
IL_0494: ldloc.s 4 (UnityEngine.Vector3)
IL_0496: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_049B: ldloc.s 35 (System.Single)
IL_049D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_04A2: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_04A7: stloc.s 38 (UnityEngine.Vector3)
IL_04A9: ldloc.s 8 (UnityEngine.Vector3)
IL_04AB: ldloc.s 9 (UnityEngine.Vector3)
IL_04AD: ldloc.s 35 (System.Single)
IL_04AF: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_04B4: stloc.s 39 (UnityEngine.Vector3)
IL_04B6: ldloca.s 36 (UnityEngine.Vector3)
IL_04B8: dup
IL_04B9: ldfld System.Single UnityEngine.Vector3::y
IL_04BE: ldloc.s 34 (NetInfo+Lane)
IL_04C0: ldfld System.Single Lane::m_verticalOffset
IL_04C5: add
IL_04C6: stfld System.Single UnityEngine.Vector3::y
IL_04CB: ldloca.s 38 (UnityEngine.Vector3)
IL_04CD: dup
IL_04CE: ldfld System.Single UnityEngine.Vector3::y
IL_04D3: ldloc.s 34 (NetInfo+Lane)
IL_04D5: ldfld System.Single Lane::m_verticalOffset
IL_04DA: add
IL_04DB: stfld System.Single UnityEngine.Vector3::y
IL_04E0: ldloc.s 36 (UnityEngine.Vector3)
IL_04E2: ldloc.s 37 (UnityEngine.Vector3)
IL_04E4: ldloc.s 38 (UnityEngine.Vector3)
IL_04E6: ldloc.s 39 (UnityEngine.Vector3)
IL_04E8: ldloc.s 10 (System.Boolean)
IL_04EA: ldloc.s 11 (System.Boolean)
IL_04EC: ldloca.s 40 (UnityEngine.Vector3)
IL_04EE: ldloca.s 41 (UnityEngine.Vector3)
IL_04F0: 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_04F5: ldloc.0
IL_04F6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_04FB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0500: ldloc.s 32 (System.UInt32)
IL_0502: conv.u
IL_0503: ldelema NetLane
IL_0508: ldfld System.UInt16 NetLane::m_flags
IL_050D: stloc.s 42 (NetLane+Flags)
IL_050F: ldloc.s 28 (NetLane+Flags)
IL_0511: stloc.s 43 (NetLane+Flags)
IL_0513: ldloc.s 42 (NetLane+Flags)
IL_0515: ldc.i4 -64753
IL_051A: and
IL_051B: stloc.s 42 (NetLane+Flags)
IL_051D: ldloc.s 34 (NetInfo+Lane)
IL_051F: ldfld Direction Lane::m_finalDirection
IL_0524: ldc.i4.3
IL_0525: and
IL_0526: conv.u1
IL_0527: ldc.i4.2
IL_0528: bne.un => Label38
IL_052D: ldloc.s 43 (NetLane+Flags)
IL_052F: ldc.i4 -2049
IL_0534: and
IL_0535: stloc.s 43 (NetLane+Flags)
IL_0537: Label38
IL_0537: ldloc.s 34 (NetInfo+Lane)
IL_0539: ldfld Direction Lane::m_finalDirection
IL_053E: ldc.i4.3
IL_053F: and
IL_0540: conv.u1
IL_0541: ldc.i4.1
IL_0542: bne.un => Label39
IL_0547: ldloc.s 43 (NetLane+Flags)
IL_0549: ldc.i4 -1025
IL_054E: and
IL_054F: stloc.s 43 (NetLane+Flags)
IL_0551: Label39
IL_0551: ldloc.s 34 (NetInfo+Lane)
IL_0553: ldfld VehicleType Lane::m_vehicleType
IL_0558: ldc.i4 2048
IL_055D: and
IL_055E: brfalse => Label40
IL_0563: ldloc.s 43 (NetLane+Flags)
IL_0565: ldc.i4 -3073
IL_056A: and
IL_056B: stloc.s 43 (NetLane+Flags)
IL_056D: Label40
IL_056D: ldloc.s 42 (NetLane+Flags)
IL_056F: ldloc.s 43 (NetLane+Flags)
IL_0571: or
IL_0572: stloc.s 42 (NetLane+Flags)
IL_0574: ldloc.1
IL_0575: brfalse => Label41
IL_057A: ldloc.s 42 (NetLane+Flags)
IL_057C: ldc.i4.4
IL_057D: or
IL_057E: stloc.s 42 (NetLane+Flags)
IL_0580: br => Label42
IL_0585: Label41
IL_0585: ldloc.s 42 (NetLane+Flags)
IL_0587: ldc.i4.s -5
IL_0589: and
IL_058A: stloc.s 42 (NetLane+Flags)
IL_058C: Label42
IL_058C: ldc.i4.0
IL_058D: stloc.s 44 (System.Int32)
IL_058F: ldc.i4 255
IL_0594: stloc.s 45 (System.Int32)
IL_0596: ldloc.s 34 (NetInfo+Lane)
IL_0598: ldfld LaneType Lane::m_laneType
IL_059D: ldc.i4.s 33
IL_059F: and
IL_05A0: conv.u1
IL_05A1: brfalse => Label43
IL_05A6: ldloc.s 34 (NetInfo+Lane)
IL_05A8: ldfld Direction Lane::m_finalDirection
IL_05AD: ldc.i4.1
IL_05AE: and
IL_05AF: conv.u1
IL_05B0: ldc.i4.0
IL_05B1: ceq
IL_05B3: ldc.i4.0
IL_05B4: ceq
IL_05B6: ldarg.2
IL_05B7: ldfld Flags NetSegment::m_flags
IL_05BC: ldc.i4.s 16
IL_05BE: and
IL_05BF: ldc.i4.0
IL_05C0: ceq
IL_05C2: ceq
IL_05C4: stloc.s 46 (System.Boolean)
IL_05C6: ldloc.s 46 (System.Boolean)
IL_05C8: brfalse => Label44
IL_05CD: ldloc.s 12 (System.Int32)
IL_05CF: stloc.s 47 (System.Int32)
IL_05D1: ldloc.s 13 (System.Int32)
IL_05D3: stloc.s 48 (System.Int32)
IL_05D5: ldloc.s 14 (System.Int32)
IL_05D7: stloc.s 49 (System.Int32)
IL_05D9: br => Label45
IL_05DE: Label44
IL_05DE: ldloc.s 20 (System.Int32)
IL_05E0: stloc.s 47 (System.Int32)
IL_05E2: ldloc.s 21 (System.Int32)
IL_05E4: stloc.s 48 (System.Int32)
IL_05E6: ldloc.s 22 (System.Int32)
IL_05E8: stloc.s 49 (System.Int32)
IL_05EA: Label45
IL_05EA: ldloc.s 34 (NetInfo+Lane)
IL_05EC: ldfld Direction Lane::m_finalDirection
IL_05F1: ldc.i4.1
IL_05F2: and
IL_05F3: conv.u1
IL_05F4: brfalse => Label46
IL_05F9: ldloc.s 34 (NetInfo+Lane)
IL_05FB: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0600: stloc.s 50 (System.Int32)
IL_0602: ldloc.s 34 (NetInfo+Lane)
IL_0604: ldfld System.Int32 Lane::m_similarLaneCount
IL_0609: ldloc.s 34 (NetInfo+Lane)
IL_060B: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0610: sub
IL_0611: ldc.i4.1
IL_0612: sub
IL_0613: stloc.s 51 (System.Int32)
IL_0615: br => Label47
IL_061A: Label46
IL_061A: ldloc.s 34 (NetInfo+Lane)
IL_061C: ldfld System.Int32 Lane::m_similarLaneCount
IL_0621: ldloc.s 34 (NetInfo+Lane)
IL_0623: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0628: sub
IL_0629: ldc.i4.1
IL_062A: sub
IL_062B: stloc.s 50 (System.Int32)
IL_062D: ldloc.s 34 (NetInfo+Lane)
IL_062F: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0634: stloc.s 51 (System.Int32)
IL_0636: Label47
IL_0636: ldloc.s 47 (System.Int32)
IL_0638: ldloc.s 48 (System.Int32)
IL_063A: add
IL_063B: ldloc.s 49 (System.Int32)
IL_063D: add
IL_063E: stloc.s 52 (System.Int32)
IL_0640: ldc.i4 255
IL_0645: stloc.s 44 (System.Int32)
IL_0647: ldc.i4.0
IL_0648: stloc.s 45 (System.Int32)
IL_064A: ldloc.s 52 (System.Int32)
IL_064C: brfalse => Label48
IL_0651: ldloc.s 34 (NetInfo+Lane)
IL_0653: ldfld System.Int32 Lane::m_similarLaneCount
IL_0658: ldloc.s 52 (System.Int32)
IL_065A: ble => Label49
IL_065F: ldloc.s 52 (System.Int32)
IL_0661: ldc.i4.0
IL_0662: ble => Label50
IL_0667: ldloc.s 52 (System.Int32)
IL_0669: ldloc.s 50 (System.Int32)
IL_066B: mul
IL_066C: ldloc.s 34 (NetInfo+Lane)
IL_066E: ldfld System.Int32 Lane::m_similarLaneCount
IL_0673: div
IL_0674: stloc.s 44 (System.Int32)
IL_0676: ldloc.s 52 (System.Int32)
IL_0678: ldloc.s 52 (System.Int32)
IL_067A: ldloc.s 51 (System.Int32)
IL_067C: mul
IL_067D: ldloc.s 34 (NetInfo+Lane)
IL_067F: ldfld System.Int32 Lane::m_similarLaneCount
IL_0684: div
IL_0685: sub
IL_0686: stloc.s 45 (System.Int32)
IL_0688: ldloc.s 42 (NetLane+Flags)
IL_068A: ldc.i4 128
IL_068F: or
IL_0690: stloc.s 42 (NetLane+Flags)
IL_0692: ldloc.s 44 (System.Int32)
IL_0694: ldloc.s 47 (System.Int32)
IL_0696: bge => Label51
IL_069B: ldloc.s 42 (NetLane+Flags)
IL_069D: ldc.i4.s 32
IL_069F: or
IL_06A0: stloc.s 42 (NetLane+Flags)
IL_06A2: Label51
IL_06A2: ldloc.s 52 (System.Int32)
IL_06A4: ldloc.s 45 (System.Int32)
IL_06A6: sub
IL_06A7: ldloc.s 49 (System.Int32)
IL_06A9: bge => Label52
IL_06AE: ldloc.s 42 (NetLane+Flags)
IL_06B0: ldc.i4.s 64
IL_06B2: or
IL_06B3: stloc.s 42 (NetLane+Flags)
IL_06B5: Label52
IL_06B5: ldloc.s 48 (System.Int32)
IL_06B7: brfalse => Label53
IL_06BC: ldloc.s 44 (System.Int32)
IL_06BE: ldloc.s 47 (System.Int32)
IL_06C0: ldloc.s 48 (System.Int32)
IL_06C2: add
IL_06C3: bge => Label54
IL_06C8: ldloc.s 45 (System.Int32)
IL_06CA: ldloc.s 47 (System.Int32)
IL_06CC: ble => Label55
IL_06D1: ldloc.s 42 (NetLane+Flags)
IL_06D3: ldc.i4.s 16
IL_06D5: or
IL_06D6: stloc.s 42 (NetLane+Flags)
IL_06D8: Label53
IL_06D8: Label54
IL_06D8: Label55
IL_06D8: br => Label56
IL_06DD: Label49
IL_06DD: Label50
IL_06DD: ldloc.s 34 (NetInfo+Lane)
IL_06DF: ldfld System.Int32 Lane::m_similarLaneCount
IL_06E4: ldloc.s 52 (System.Int32)
IL_06E6: blt => Label57
IL_06EB: ldloc.s 47 (System.Int32)
IL_06ED: stloc.s 53 (System.Int32)
IL_06EF: ldloc.s 49 (System.Int32)
IL_06F1: stloc.s 54 (System.Int32)
IL_06F3: br => Label58
IL_06F8: Label57
IL_06F8: ldloc.s 47 (System.Int32)
IL_06FA: ldloc.s 34 (NetInfo+Lane)
IL_06FC: ldfld System.Int32 Lane::m_similarLaneCount
IL_0701: mul
IL_0702: ldloc.s 52 (System.Int32)
IL_0704: ldloc.s 48 (System.Int32)
IL_0706: ldc.i4.1
IL_0707: shr
IL_0708: add
IL_0709: div
IL_070A: stloc.s 53 (System.Int32)
IL_070C: ldloc.s 49 (System.Int32)
IL_070E: ldloc.s 34 (NetInfo+Lane)
IL_0710: ldfld System.Int32 Lane::m_similarLaneCount
IL_0715: mul
IL_0716: ldloc.s 52 (System.Int32)
IL_0718: ldloc.s 48 (System.Int32)
IL_071A: ldc.i4.1
IL_071B: shr
IL_071C: add
IL_071D: div
IL_071E: stloc.s 54 (System.Int32)
IL_0720: Label58
IL_0720: ldloc.s 53 (System.Int32)
IL_0722: stloc.s 55 (System.Int32)
IL_0724: ldloc.s 34 (NetInfo+Lane)
IL_0726: ldfld System.Int32 Lane::m_similarLaneCount
IL_072B: ldloc.s 53 (System.Int32)
IL_072D: sub
IL_072E: ldloc.s 54 (System.Int32)
IL_0730: sub
IL_0731: stloc.s 56 (System.Int32)
IL_0733: ldloc.s 54 (System.Int32)
IL_0735: stloc.s 57 (System.Int32)
IL_0737: ldloc.s 56 (System.Int32)
IL_0739: ldc.i4.0
IL_073A: ble => Label59
IL_073F: ldloc.s 47 (System.Int32)
IL_0741: ldloc.s 53 (System.Int32)
IL_0743: ble => Label60
IL_0748: ldloc.s 55 (System.Int32)
IL_074A: ldc.i4.1
IL_074B: add
IL_074C: stloc.s 55 (System.Int32)
IL_074E: Label60
IL_074E: ldloc.s 49 (System.Int32)
IL_0750: ldloc.s 54 (System.Int32)
IL_0752: ble => Label61
IL_0757: ldloc.s 57 (System.Int32)
IL_0759: ldc.i4.1
IL_075A: add
IL_075B: stloc.s 57 (System.Int32)
IL_075D: Label59
IL_075D: Label61
IL_075D: ldloc.s 50 (System.Int32)
IL_075F: ldloc.s 55 (System.Int32)
IL_0761: bge => Label62
IL_0766: ldloc.s 50 (System.Int32)
IL_0768: ldloc.s 47 (System.Int32)
IL_076A: mul
IL_076B: ldloc.s 55 (System.Int32)
IL_076D: add
IL_076E: ldc.i4.1
IL_076F: sub
IL_0770: ldloc.s 55 (System.Int32)
IL_0772: div
IL_0773: stloc.s 58 (System.Int32)
IL_0775: ldloc.s 50 (System.Int32)
IL_0777: ldc.i4.1
IL_0778: add
IL_0779: ldloc.s 47 (System.Int32)
IL_077B: mul
IL_077C: ldloc.s 55 (System.Int32)
IL_077E: add
IL_077F: ldc.i4.1
IL_0780: sub
IL_0781: ldloc.s 55 (System.Int32)
IL_0783: div
IL_0784: stloc.s 59 (System.Int32)
IL_0786: ldloc.s 59 (System.Int32)
IL_0788: ldloc.s 58 (System.Int32)
IL_078A: ble => Label63
IL_078F: ldloc.s 42 (NetLane+Flags)
IL_0791: ldc.i4.s 32
IL_0793: or
IL_0794: stloc.s 42 (NetLane+Flags)
IL_0796: ldloc.s 44 (System.Int32)
IL_0798: ldloc.s 58 (System.Int32)
IL_079A: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_079F: stloc.s 44 (System.Int32)
IL_07A1: ldloc.s 45 (System.Int32)
IL_07A3: ldloc.s 59 (System.Int32)
IL_07A5: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_07AA: stloc.s 45 (System.Int32)
IL_07AC: Label62
IL_07AC: Label63
IL_07AC: ldloc.s 50 (System.Int32)
IL_07AE: ldloc.s 53 (System.Int32)
IL_07B0: blt => Label64
IL_07B5: ldloc.s 51 (System.Int32)
IL_07B7: ldloc.s 54 (System.Int32)
IL_07B9: blt => Label65
IL_07BE: ldloc.s 48 (System.Int32)
IL_07C0: brfalse => Label66
IL_07C5: ldloc.s 34 (NetInfo+Lane)
IL_07C7: ldfld System.Int32 Lane::m_similarLaneCount
IL_07CC: ldloc.s 52 (System.Int32)
IL_07CE: ble => Label67
IL_07D3: ldloc.s 53 (System.Int32)
IL_07D5: ldc.i4.1
IL_07D6: add
IL_07D7: stloc.s 53 (System.Int32)
IL_07D9: Label67
IL_07D9: ldloc.s 47 (System.Int32)
IL_07DB: ldloc.s 50 (System.Int32)
IL_07DD: ldloc.s 53 (System.Int32)
IL_07DF: sub
IL_07E0: ldloc.s 48 (System.Int32)
IL_07E2: mul
IL_07E3: ldloc.s 56 (System.Int32)
IL_07E5: add
IL_07E6: ldc.i4.1
IL_07E7: sub
IL_07E8: ldloc.s 56 (System.Int32)
IL_07EA: div
IL_07EB: add
IL_07EC: stloc.s 60 (System.Int32)
IL_07EE: ldloc.s 47 (System.Int32)
IL_07F0: ldloc.s 50 (System.Int32)
IL_07F2: ldc.i4.1
IL_07F3: add
IL_07F4: ldloc.s 53 (System.Int32)
IL_07F6: sub
IL_07F7: ldloc.s 48 (System.Int32)
IL_07F9: mul
IL_07FA: ldloc.s 56 (System.Int32)
IL_07FC: add
IL_07FD: ldc.i4.1
IL_07FE: sub
IL_07FF: ldloc.s 56 (System.Int32)
IL_0801: div
IL_0802: add
IL_0803: stloc.s 61 (System.Int32)
IL_0805: ldloc.s 61 (System.Int32)
IL_0807: ldloc.s 60 (System.Int32)
IL_0809: ble => Label68
IL_080E: ldloc.s 42 (NetLane+Flags)
IL_0810: ldc.i4.s 16
IL_0812: or
IL_0813: stloc.s 42 (NetLane+Flags)
IL_0815: ldloc.s 44 (System.Int32)
IL_0817: ldloc.s 60 (System.Int32)
IL_0819: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_081E: stloc.s 44 (System.Int32)
IL_0820: ldloc.s 45 (System.Int32)
IL_0822: ldloc.s 61 (System.Int32)
IL_0824: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0829: stloc.s 45 (System.Int32)
IL_082B: Label64
IL_082B: Label65
IL_082B: Label66
IL_082B: Label68
IL_082B: ldloc.s 51 (System.Int32)
IL_082D: ldloc.s 57 (System.Int32)
IL_082F: bge => Label69
IL_0834: ldloc.s 52 (System.Int32)
IL_0836: ldloc.s 51 (System.Int32)
IL_0838: ldc.i4.1
IL_0839: add
IL_083A: ldloc.s 49 (System.Int32)
IL_083C: mul
IL_083D: ldloc.s 57 (System.Int32)
IL_083F: add
IL_0840: ldc.i4.1
IL_0841: sub
IL_0842: ldloc.s 57 (System.Int32)
IL_0844: div
IL_0845: sub
IL_0846: stloc.s 62 (System.Int32)
IL_0848: ldloc.s 52 (System.Int32)
IL_084A: ldloc.s 51 (System.Int32)
IL_084C: ldloc.s 49 (System.Int32)
IL_084E: mul
IL_084F: ldloc.s 57 (System.Int32)
IL_0851: add
IL_0852: ldc.i4.1
IL_0853: sub
IL_0854: ldloc.s 57 (System.Int32)
IL_0856: div
IL_0857: sub
IL_0858: stloc.s 63 (System.Int32)
IL_085A: ldloc.s 63 (System.Int32)
IL_085C: ldloc.s 62 (System.Int32)
IL_085E: ble => Label70
IL_0863: ldloc.s 42 (NetLane+Flags)
IL_0865: ldc.i4.s 64
IL_0867: or
IL_0868: stloc.s 42 (NetLane+Flags)
IL_086A: ldloc.s 44 (System.Int32)
IL_086C: ldloc.s 62 (System.Int32)
IL_086E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0873: stloc.s 44 (System.Int32)
IL_0875: ldloc.s 45 (System.Int32)
IL_0877: ldloc.s 63 (System.Int32)
IL_0879: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_087E: stloc.s 45 (System.Int32)
IL_0880: Label69
IL_0880: Label70
IL_0880: ldarg.0
IL_0881: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_0886: brfalse => Label71
IL_088B: ldloc.s 42 (NetLane+Flags)
IL_088D: ldc.i4.s 96
IL_088F: and
IL_0890: ldc.i4.s 32
IL_0892: bne.un => Label72
IL_0897: ldloc.s 42 (NetLane+Flags)
IL_0899: ldc.i4.s 16
IL_089B: and
IL_089C: brfalse => Label73
IL_08A1: ldloc.s 48 (System.Int32)
IL_08A3: ldc.i4.2
IL_08A4: blt => Label74
IL_08A9: ldloc.s 47 (System.Int32)
IL_08AB: ldc.i4.1
IL_08AC: bne.un => Label75
IL_08B1: Label73
IL_08B1: ldloc.s 45 (System.Int32)
IL_08B3: ldloc.s 44 (System.Int32)
IL_08B5: ldc.i4.1
IL_08B6: add
IL_08B7: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_08BC: stloc.s 45 (System.Int32)
IL_08BE: Label74
IL_08BE: Label75
IL_08BE: br => Label76
IL_08C3: Label72
IL_08C3: ldloc.s 42 (NetLane+Flags)
IL_08C5: ldc.i4.s 96
IL_08C7: and
IL_08C8: ldc.i4.s 64
IL_08CA: bne.un => Label77
IL_08CF: ldloc.s 42 (NetLane+Flags)
IL_08D1: ldc.i4.s 16
IL_08D3: and
IL_08D4: brfalse => Label78
IL_08D9: ldloc.s 48 (System.Int32)
IL_08DB: ldc.i4.2
IL_08DC: blt => Label79
IL_08E1: ldloc.s 49 (System.Int32)
IL_08E3: ldc.i4.1
IL_08E4: bne.un => Label80
IL_08E9: Label78
IL_08E9: ldloc.s 44 (System.Int32)
IL_08EB: ldloc.s 45 (System.Int32)
IL_08ED: ldc.i4.1
IL_08EE: sub
IL_08EF: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_08F4: stloc.s 44 (System.Int32)
IL_08F6: Label48
IL_08F6: Label56
IL_08F6: Label71
IL_08F6: Label76
IL_08F6: Label77
IL_08F6: Label79
IL_08F6: Label80
IL_08F6: ldloc.s 46 (System.Boolean)
IL_08F8: brfalse => Label81
IL_08FD: ldloc.s 18 (System.Boolean)
IL_08FF: brfalse => Label82
IL_0904: ldloc.s 42 (NetLane+Flags)
IL_0906: ldc.i4.s -113
IL_0908: and
IL_0909: stloc.s 42 (NetLane+Flags)
IL_090B: br => Label83
IL_0910: Label82
IL_0910: ldloc.s 19 (System.Boolean)
IL_0912: brfalse => Label84
IL_0917: ldloc.s 42 (NetLane+Flags)
IL_0919: ldc.i4.s 16
IL_091B: or
IL_091C: stloc.s 42 (NetLane+Flags)
IL_091E: Label83
IL_091E: Label84
IL_091E: br => Label85
IL_0923: Label81
IL_0923: ldloc.s 26 (System.Boolean)
IL_0925: brfalse => Label86
IL_092A: ldloc.s 42 (NetLane+Flags)
IL_092C: ldc.i4.s -113
IL_092E: and
IL_092F: stloc.s 42 (NetLane+Flags)
IL_0931: br => Label87
IL_0936: Label86
IL_0936: ldloc.s 27 (System.Boolean)
IL_0938: brfalse => Label88
IL_093D: ldloc.s 42 (NetLane+Flags)
IL_093F: ldc.i4.s 16
IL_0941: or
IL_0942: stloc.s 42 (NetLane+Flags)
IL_0944: Label43
IL_0944: Label85
IL_0944: Label87
IL_0944: Label88
IL_0944: ldloc.0
IL_0945: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_094A: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_094F: ldloc.s 32 (System.UInt32)
IL_0951: conv.u
IL_0952: ldelema NetLane
IL_0957: ldloc.s 36 (UnityEngine.Vector3)
IL_0959: ldloc.s 40 (UnityEngine.Vector3)
IL_095B: ldloc.s 41 (UnityEngine.Vector3)
IL_095D: ldloc.s 38 (UnityEngine.Vector3)
IL_095F: newobj System.Void
ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3
_b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d)
IL_0964: stfld ColossalFramework.Math.Bezier3 NetLane::m_bezier
IL_0969: ldloc.0
IL_096A: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_096F: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0974: ldloc.s 32 (System.UInt32)
IL_0976: conv.u
IL_0977: ldelema NetLane
IL_097C: ldarg.1
IL_097D: stfld System.UInt16 NetLane::m_segment
IL_0982: ldloc.0
IL_0983: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0988: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_098D: ldloc.s 32 (System.UInt32)
IL_098F: conv.u
IL_0990: ldelema NetLane
IL_0995: ldloc.s 42 (NetLane+Flags)
IL_0997: conv.u2
IL_0998: stfld System.UInt16 NetLane::m_flags
IL_099D: ldloc.0
IL_099E: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09A3: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09A8: ldloc.s 32 (System.UInt32)
IL_09AA: conv.u
IL_09AB: ldelema NetLane
IL_09B0: ldloc.s 44 (System.Int32)
IL_09B2: conv.u1
IL_09B3: stfld System.Byte NetLane::m_firstTarget
IL_09B8: ldloc.0
IL_09B9: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09BE: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09C3: ldloc.s 32 (System.UInt32)
IL_09C5: conv.u
IL_09C6: ldelema NetLane
IL_09CB: ldloc.s 45 (System.Int32)
IL_09CD: conv.u1
IL_09CE: stfld System.Byte NetLane::m_lastTarget
IL_09D3: ldloc.s 29 (System.Single)
IL_09D5: ldloc.0
IL_09D6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09DB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09E0: ldloc.s 32 (System.UInt32)
IL_09E2: conv.u
IL_09E3: ldelema NetLane
IL_09E8: call System.Single NetLane::UpdateLength()
IL_09ED: add
IL_09EE: stloc.s 29 (System.Single)
IL_09F0: ldloc.s 30 (System.Single)
IL_09F2: ldc.r4 1
IL_09F7: add
IL_09F8: stloc.s 30 (System.Single)
IL_09FA: ldloc.s 32 (System.UInt32)
IL_09FC: stloc.s 31 (System.UInt32)
IL_09FE: ldloc.0
IL_09FF: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0A04: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0A09: ldloc.s 32 (System.UInt32)
IL_0A0B: conv.u
IL_0A0C: ldelema NetLane
IL_0A11: ldfld System.UInt32 NetLane::m_nextLane
IL_0A16: stloc.s 32 (System.UInt32)
IL_0A18: ldloc.s 33 (System.Int32)
IL_0A1A: ldc.i4.1
IL_0A1B: add
IL_0A1C: stloc.s 33 (System.Int32)
IL_0A1E: Label30
IL_0A1E: ldloc.s 33 (System.Int32)
IL_0A20: ldarg.0
IL_0A21: ldfld NetInfo NetAI::m_info
IL_0A26: ldfld Lane[] NetInfo::m_lanes
IL_0A2B: ldlen
IL_0A2C: conv.i4
IL_0A2D: blt => Label89
IL_0A32: Label36
IL_0A32: ldloc.s 30 (System.Single)
IL_0A34: ldc.r4 0
IL_0A39: beq => Label90
IL_0A3E: ldarg.2
IL_0A3F: ldloc.s 29 (System.Single)
IL_0A41: ldloc.s 30 (System.Single)
IL_0A43: div
IL_0A44: stfld System.Single NetSegment::m_averageLength
IL_0A49: br => Label91
IL_0A4E: Label90
IL_0A4E: ldarg.2
IL_0A4F: ldc.r4 0
IL_0A54: stfld System.Single NetSegment::m_averageLength
IL_0A59: Label91
IL_0A59: ldc.i4.0
IL_0A5A: stloc.s 64 (System.Boolean)
IL_0A5C: ldarg.2
IL_0A5D: ldfld System.Single NetSegment::m_averageLength
IL_0A62: ldc.r4 11
IL_0A67: bge.un => Label92
IL_0A6C: ldloc.0
IL_0A6D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0A72: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A77: ldarg.2
IL_0A78: ldfld System.UInt16 NetSegment::m_startNode
IL_0A7D: ldelema NetNode
IL_0A82: ldfld Flags NetNode::m_flags
IL_0A87: ldc.i4 128
IL_0A8C: and
IL_0A8D: brfalse => Label93
IL_0A92: ldloc.0
IL_0A93: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0A98: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A9D: ldarg.2
IL_0A9E: ldfld System.UInt16 NetSegment::m_endNode
IL_0AA3: ldelema NetNode
IL_0AA8: ldfld Flags NetNode::m_flags
IL_0AAD: ldc.i4 128
IL_0AB2: and
IL_0AB3: brfalse => Label94
IL_0AB8: ldc.i4.1
IL_0AB9: stloc.s 64 (System.Boolean)
IL_0ABB: Label92
IL_0ABB: Label93
IL_0ABB: Label94
IL_0ABB: ldarg.2
IL_0ABC: ldfld System.UInt32 NetSegment::m_lanes
IL_0AC1: stloc.s 32 (System.UInt32)
IL_0AC3: ldc.i4.0
IL_0AC4: stloc.s 65 (System.Int32)
IL_0AC6: br => Label95
IL_0ACB: Label98
IL_0ACB: ldloc.0
IL_0ACC: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0AD1: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0AD6: ldloc.s 32 (System.UInt32)
IL_0AD8: conv.u
IL_0AD9: ldelema NetLane
IL_0ADE: ldfld System.UInt16 NetLane::m_flags
IL_0AE3: ldc.i4.s -9
IL_0AE5: and
IL_0AE6: stloc.s 66 (NetLane+Flags)
IL_0AE8: ldloc.s 64 (System.Boolean)
IL_0AEA: brfalse => Label96
IL_0AEF: ldloc.s 66 (NetLane+Flags)
IL_0AF1: ldc.i4.8
IL_0AF2: or
IL_0AF3: stloc.s 66 (NetLane+Flags)
IL_0AF5: Label96
IL_0AF5: ldloc.0
IL_0AF6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0AFB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0B00: ldloc.s 32 (System.UInt32)
IL_0B02: conv.u
IL_0B03: ldelema NetLane
IL_0B08: ldloc.s 66 (NetLane+Flags)
IL_0B0A: conv.u2
IL_0B0B: stfld System.UInt16 NetLane::m_flags
IL_0B10: ldloc.0
IL_0B11: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0B16: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0B1B: ldloc.s 32 (System.UInt32)
IL_0B1D: conv.u
IL_0B1E: ldelema NetLane
IL_0B23: ldfld System.UInt32 NetLane::m_nextLane
IL_0B28: stloc.s 32 (System.UInt32)
IL_0B2A: ldloc.s 65 (System.Int32)
IL_0B2C: ldc.i4.1
IL_0B2D: add
IL_0B2E: stloc.s 65 (System.Int32)
IL_0B30: Label95
IL_0B30: ldloc.s 65 (System.Int32)
IL_0B32: ldarg.0
IL_0B33: ldfld NetInfo NetAI::m_info
IL_0B38: ldfld Lane[] NetInfo::m_lanes
IL_0B3D: ldlen
IL_0B3E: conv.i4
IL_0B3F: bge => Label97
IL_0B44: ldloc.s 32 (System.UInt32)
IL_0B46: brtrue => Label98
IL_0B4B: Label97
IL_0B4B: ldarg.3
IL_0B4C: brtrue => Label99
IL_0B51: ldarg.2
IL_0B52: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0B57: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0B5C: stloc.s 68 (UnityEngine.Vector3)
IL_0B5E: ldloca.s 68 (UnityEngine.Vector3)
IL_0B60: ldfld System.Single UnityEngine.Vector3::x
IL_0B65: ldc.r4 16
IL_0B6A: sub
IL_0B6B: ldc.r4 64
IL_0B70: div
IL_0B71: ldc.r4 135
IL_0B76: add
IL_0B77: conv.i4
IL_0B78: ldc.i4.0
IL_0B79: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0B7E: stloc.s 67 (System.Int32)
IL_0B80: ldarg.2
IL_0B81: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0B86: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0B8B: stloc.s 70 (UnityEngine.Vector3)
IL_0B8D: ldloca.s 70 (UnityEngine.Vector3)
IL_0B8F: ldfld System.Single UnityEngine.Vector3::z
IL_0B94: ldc.r4 16
IL_0B99: sub
IL_0B9A: ldc.r4 64
IL_0B9F: div
IL_0BA0: ldc.r4 135
IL_0BA5: add
IL_0BA6: conv.i4
IL_0BA7: ldc.i4.0
IL_0BA8: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0BAD: stloc.s 69 (System.Int32)
IL_0BAF: ldarg.2
IL_0BB0: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0BB5: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0BBA: stloc.s 72 (UnityEngine.Vector3)
IL_0BBC: ldloca.s 72 (UnityEngine.Vector3)
IL_0BBE: ldfld System.Single UnityEngine.Vector3::x
IL_0BC3: ldc.r4 16
IL_0BC8: add
IL_0BC9: ldc.r4 64
IL_0BCE: div
IL_0BCF: ldc.r4 135
IL_0BD4: add
IL_0BD5: conv.i4
IL_0BD6: ldc.i4 269
IL_0BDB: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0BE0: stloc.s 71 (System.Int32)
IL_0BE2: ldarg.2
IL_0BE3: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0BE8: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0BED: stloc.s 74 (UnityEngine.Vector3)
IL_0BEF: ldloca.s 74 (UnityEngine.Vector3)
IL_0BF1: ldfld System.Single UnityEngine.Vector3::z
IL_0BF6: ldc.r4 16
IL_0BFB: add
IL_0BFC: ldc.r4 64
IL_0C01: div
IL_0C02: ldc.r4 135
IL_0C07: add
IL_0C08: conv.i4
IL_0C09: ldc.i4 269
IL_0C0E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0C13: stloc.s 73 (System.Int32)
IL_0C15: ldloc.s 69 (System.Int32)
IL_0C17: stloc.s 75 (System.Int32)
IL_0C19: br => Label100
IL_0C1E: Label108
IL_0C1E: ldloc.s 67 (System.Int32)
IL_0C20: stloc.s 76 (System.Int32)
IL_0C22: br => Label101
IL_0C27: Label107
IL_0C27: ldloc.0
IL_0C28: ldfld System.UInt16[] NetManager::m_nodeGrid
IL_0C2D: ldloc.s 75 (System.Int32)
IL_0C2F: ldc.i4 270
IL_0C34: mul
IL_0C35: ldloc.s 76 (System.Int32)
IL_0C37: add
IL_0C38: ldelem.u2
IL_0C39: stloc.s 77 (System.UInt16)
IL_0C3B: ldc.i4.0
IL_0C3C: stloc.s 78 (System.Int32)
IL_0C3E: br => Label102
IL_0C43: Label106
IL_0C43: ldloc.0
IL_0C44: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0C49: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0C4E: ldloc.s 77 (System.UInt16)
IL_0C50: ldelema NetNode
IL_0C55: call NetInfo NetNode::get_Info()
IL_0C5A: stloc.s 79 (NetInfo)
IL_0C5C: ldloc.0
IL_0C5D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0C62: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0C67: ldloc.s 77 (System.UInt16)
IL_0C69: ldelema NetNode
IL_0C6E: ldfld UnityEngine.Vector3 NetNode::m_position
IL_0C73: stloc.s 80 (UnityEngine.Vector3)
IL_0C75: ldarg.2
IL_0C76: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0C7B: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0C80: stloc.s 82 (UnityEngine.Vector3)
IL_0C82: ldloca.s 82 (UnityEngine.Vector3)
IL_0C84: ldfld System.Single UnityEngine.Vector3::x
IL_0C89: ldc.r4 16
IL_0C8E: sub
IL_0C8F: ldloca.s 80 (UnityEngine.Vector3)
IL_0C91: ldfld System.Single UnityEngine.Vector3::x
IL_0C96: sub
IL_0C97: ldarg.2
IL_0C98: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0C9D: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0CA2: stloc.s 83 (UnityEngine.Vector3)
IL_0CA4: ldloca.s 83 (UnityEngine.Vector3)
IL_0CA6: ldfld System.Single UnityEngine.Vector3::z
IL_0CAB: ldc.r4 16
IL_0CB0: sub
IL_0CB1: ldloca.s 80 (UnityEngine.Vector3)
IL_0CB3: ldfld System.Single UnityEngine.Vector3::z
IL_0CB8: sub
IL_0CB9: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0CBE: ldloca.s 80 (UnityEngine.Vector3)
IL_0CC0: ldfld System.Single UnityEngine.Vector3::x
IL_0CC5: ldarg.2
IL_0CC6: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0CCB: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0CD0: stloc.s 84 (UnityEngine.Vector3)
IL_0CD2: ldloca.s 84 (UnityEngine.Vector3)
IL_0CD4: ldfld System.Single UnityEngine.Vector3::x
IL_0CD9: sub
IL_0CDA: ldc.r4 16
IL_0CDF: sub
IL_0CE0: ldloca.s 80 (UnityEngine.Vector3)
IL_0CE2: ldfld System.Single UnityEngine.Vector3::z
IL_0CE7: ldarg.2
IL_0CE8: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0CED: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0CF2: stloc.s 85 (UnityEngine.Vector3)
IL_0CF4: ldloca.s 85 (UnityEngine.Vector3)
IL_0CF6: ldfld System.Single UnityEngine.Vector3::z
IL_0CFB: sub
IL_0CFC: ldc.r4 16
IL_0D01: sub
IL_0D02: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0D07: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0D0C: stloc.s 81 (System.Single)
IL_0D0E: ldloc.s 81 (System.Single)
IL_0D10: ldc.r4 0
IL_0D15: bge.un => Label103
IL_0D1A: ldloc.s 79 (NetInfo)
IL_0D1C: ldfld NetAI NetInfo::m_netAI
IL_0D21: ldloc.s 77 (System.UInt16)
IL_0D23: ldloc.0
IL_0D24: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0D29: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0D2E: ldloc.s 77 (System.UInt16)
IL_0D30: ldelema NetNode
IL_0D35: callvirt virtual System.Void NetAI::NearbyLanesUpdated(System.UInt16
nodeID, NetNode& data)
IL_0D3A: Label103
IL_0D3A: ldloc.0
IL_0D3B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0D40: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0D45: ldloc.s 77 (System.UInt16)
IL_0D47: ldelema NetNode
IL_0D4C: ldfld System.UInt16 NetNode::m_nextGridNode
IL_0D51: stloc.s 77 (System.UInt16)
IL_0D53: ldloc.s 78 (System.Int32)
IL_0D55: ldc.i4.1
IL_0D56: add
IL_0D57: dup
IL_0D58: stloc.s 78 (System.Int32)
IL_0D5A: ldc.i4 32768
IL_0D5F: blt => Label104
IL_0D64: ldc.i4.1
IL_0D65: ldstr "Invalid list detected!\n"
IL_0D6A: call static System.String System.Environment::get_StackTrace()
IL_0D6F: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_0D74: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Error(LogChannel ll, System.String
msg)
IL_0D79: br => Label105
IL_0D7E: Label102
IL_0D7E: Label104
IL_0D7E: ldloc.s 77 (System.UInt16)
IL_0D80: brtrue => Label106
IL_0D85: Label105
IL_0D85: ldloc.s 76 (System.Int32)
IL_0D87: ldc.i4.1
IL_0D88: add
IL_0D89: stloc.s 76 (System.Int32)
IL_0D8B: Label101
IL_0D8B: ldloc.s 76 (System.Int32)
IL_0D8D: ldloc.s 71 (System.Int32)
IL_0D8F: ble => Label107
IL_0D94: ldloc.s 75 (System.Int32)
IL_0D96: ldc.i4.1
IL_0D97: add
IL_0D98: stloc.s 75 (System.Int32)
IL_0D9A: Label100
IL_0D9A: ldloc.s 75 (System.Int32)
IL_0D9C: ldloc.s 73 (System.Int32)
IL_0D9E: ble => Label108
IL_0DA3: ldarg.0
IL_0DA4: ldfld NetInfo NetAI::m_info
IL_0DA9: ldfld System.Boolean NetInfo::m_hasPedestrianLanes
IL_0DAE: brfalse => Label109
IL_0DB3: ldarg.0
IL_0DB4: ldfld NetInfo NetAI::m_info
IL_0DB9: ldfld System.Boolean NetInfo::m_hasForwardVehicleLanes
IL_0DBE: brtrue => Label110
IL_0DC3: ldarg.0
IL_0DC4: ldfld NetInfo NetAI::m_info
IL_0DC9: ldfld System.Boolean NetInfo::m_hasBackwardVehicleLanes
IL_0DCE: brfalse => Label111
IL_0DD3: Label110
IL_0DD3: ldarg.1
IL_0DD4: ldarg.2
IL_0DD5: call static System.Void RoadBaseAI::CheckBuildings(System.UInt16
segmentID, NetSegment& data)
IL_0DDA: // end original
IL_0DDA: Label99
IL_0DDA: Label109
IL_0DDA: Label111
IL_0DDA: 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_Patch0(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: // start original
IL_0000: ldarg.s 4
IL_0002: ldc.i4.2
IL_0003: shl
IL_0004: ldarg.3
IL_0005: or
IL_0006: stloc.0
IL_0007: ldarg.1
IL_0008: ldfld System.UInt16 NetSegment::m_startNode
IL_000D: ldarg.0
IL_000E: bne.un => Label0
IL_0013: ldarg.2
IL_0014: ldc.i4.8
IL_0015: shr.un
IL_0016: ldc.i4.1
IL_0017: and
IL_0018: brtrue => Label1
IL_001D: ldarg.1
IL_001E: ldarg.1
IL_001F: ldfld System.Byte NetSegment::m_trafficLightState0
IL_0024: ldc.i4 240
IL_0029: and
IL_002A: ldloc.0
IL_002B: or
IL_002C: conv.u1
IL_002D: stfld System.Byte NetSegment::m_trafficLightState0
IL_0032: br => Label2
IL_0037: Label1
IL_0037: ldarg.1
IL_0038: ldarg.1
IL_0039: ldfld System.Byte NetSegment::m_trafficLightState1
IL_003E: ldc.i4 240
IL_0043: and
IL_0044: ldloc.0
IL_0045: or
IL_0046: conv.u1
IL_0047: stfld System.Byte NetSegment::m_trafficLightState1
IL_004C: Label2
IL_004C: ldarg.s 5
IL_004E: brfalse => Label3
IL_0053: ldarg.1
IL_0054: dup
IL_0055: ldfld Flags NetSegment::m_flags
IL_005A: ldc.i4 4096
IL_005F: or
IL_0060: stfld Flags NetSegment::m_flags
IL_0065: br => Label4
IL_006A: Label3
IL_006A: ldarg.1
IL_006B: dup
IL_006C: ldfld Flags NetSegment::m_flags
IL_0071: ldc.i4 -4097
IL_0076: and
IL_0077: stfld Flags NetSegment::m_flags
IL_007C: Label4
IL_007C: ldarg.s 6
IL_007E: brfalse => Label5
IL_0083: ldarg.1
IL_0084: dup
IL_0085: ldfld Flags NetSegment::m_flags
IL_008A: ldc.i4 16384
IL_008F: or
IL_0090: stfld Flags NetSegment::m_flags
IL_0095: br => Label6
IL_009A: Label5
IL_009A: ldarg.1
IL_009B: dup
IL_009C: ldfld Flags NetSegment::m_flags
IL_00A1: ldc.i4 -16385
IL_00A6: and
IL_00A7: stfld Flags NetSegment::m_flags
IL_00AC: Label6
IL_00AC: br => Label7
IL_00B1: Label0
IL_00B1: ldarg.2
IL_00B2: ldc.i4.8
IL_00B3: shr.un
IL_00B4: ldc.i4.1
IL_00B5: and
IL_00B6: brtrue => Label8
IL_00BB: ldarg.1
IL_00BC: ldarg.1
IL_00BD: ldfld System.Byte NetSegment::m_trafficLightState0
IL_00C2: ldc.i4.s 15
IL_00C4: and
IL_00C5: ldloc.0
IL_00C6: ldc.i4.4
IL_00C7: shl
IL_00C8: or
IL_00C9: conv.u1
IL_00CA: stfld System.Byte NetSegment::m_trafficLightState0
IL_00CF: br => Label9
IL_00D4: Label8
IL_00D4: ldarg.1
IL_00D5: ldarg.1
IL_00D6: ldfld System.Byte NetSegment::m_trafficLightState1
IL_00DB: ldc.i4.s 15
IL_00DD: and
IL_00DE: ldloc.0
IL_00DF: ldc.i4.4
IL_00E0: shl
IL_00E1: or
IL_00E2: conv.u1
IL_00E3: stfld System.Byte NetSegment::m_trafficLightState1
IL_00E8: Label9
IL_00E8: ldarg.s 5
IL_00EA: brfalse => Label10
IL_00EF: ldarg.1
IL_00F0: dup
IL_00F1: ldfld Flags NetSegment::m_flags
IL_00F6: ldc.i4 8192
IL_00FB: or
IL_00FC: stfld Flags NetSegment::m_flags
IL_0101: br => Label11
IL_0106: Label10
IL_0106: ldarg.1
IL_0107: dup
IL_0108: ldfld Flags NetSegment::m_flags
IL_010D: ldc.i4 -8193
IL_0112: and
IL_0113: stfld Flags NetSegment::m_flags
IL_0118: Label11
IL_0118: ldarg.s 6
IL_011A: brfalse => Label12
IL_011F: ldarg.1
IL_0120: dup
IL_0121: ldfld Flags NetSegment::m_flags
IL_0126: ldc.i4 32768
IL_012B: or
IL_012C: stfld Flags NetSegment::m_flags
IL_0131: br => Label13
IL_0136: Label12
IL_0136: ldarg.1
IL_0137: dup
IL_0138: ldfld Flags NetSegment::m_flags
IL_013D: ldc.i4 -32769
IL_0142: and
IL_0143: stfld Flags NetSegment::m_flags
IL_0148: // end original
IL_0148: Label7
IL_0148: Label13
IL_0148: ret
DONE

### Patch: virtual System.Void RoadBaseAI::SimulationStep(System.UInt16 segmentID,


NetSegment& data)
### Replacement: static System.Void
RoadBaseAI::RoadBaseAI.SimulationStep_Patch0(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/Problem
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: // start original
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: ldarg.2
IL_0003: call virtual System.Void PlayerNetAI::SimulationStep(System.UInt16
segmentID, NetSegment& data)
IL_0008: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_000D: stloc.0
IL_000E: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0013: stloc.1
IL_0014: ldarg.2
IL_0015: ldfld Problem NetSegment::m_problems
IL_001A: ldc.i4 805306368
IL_001F: conv.i8
IL_0020: call static Problem Notification::RemoveProblems(Problem problems1,
Problem problems2)
IL_0025: stloc.2
IL_0026: ldarg.2
IL_0027: ldfld Flags NetSegment::m_flags
IL_002C: ldc.i4 2048
IL_0031: and
IL_0032: brfalse => Label0
IL_0037: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_003C: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0041: ldc.i4.s 16
IL_0043: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0048: brtrue => Label1
IL_004D: ldarg.2
IL_004E: dup
IL_004F: ldfld Flags NetSegment::m_flags
IL_0054: ldc.i4 -2049
IL_0059: and
IL_005A: stfld Flags NetSegment::m_flags
IL_005F: Label0
IL_005F: Label1
IL_005F: ldc.r4 0
IL_0064: stloc.3
IL_0065: ldarg.2
IL_0066: ldfld System.UInt32 NetSegment::m_lanes
IL_006B: stloc.s 4 (System.UInt32)
IL_006D: ldc.i4.0
IL_006E: stloc.s 5 (System.Int32)
IL_0070: br => Label2
IL_0075: Label6
IL_0075: ldarg.0
IL_0076: ldfld NetInfo NetAI::m_info
IL_007B: ldfld Lane[] NetInfo::m_lanes
IL_0080: ldloc.s 5 (System.Int32)
IL_0082: ldelem.ref
IL_0083: stloc.s 6 (NetInfo+Lane)
IL_0085: ldloc.s 6 (NetInfo+Lane)
IL_0087: ldfld LaneType Lane::m_laneType
IL_008C: ldc.i4.s 33
IL_008E: and
IL_008F: conv.u1
IL_0090: brfalse => Label3
IL_0095: ldloc.s 6 (NetInfo+Lane)
IL_0097: ldfld VehicleType Lane::m_vehicleType
IL_009C: ldc.i4.s -33
IL_009E: and
IL_009F: brfalse => Label4
IL_00A4: ldloc.3
IL_00A5: ldloc.1
IL_00A6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00AB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00B0: ldloc.s 4 (System.UInt32)
IL_00B2: conv.u
IL_00B3: ldelema NetLane
IL_00B8: ldfld System.Single NetLane::m_length
IL_00BD: add
IL_00BE: stloc.3
IL_00BF: Label3
IL_00BF: Label4
IL_00BF: ldloc.1
IL_00C0: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00C5: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00CA: ldloc.s 4 (System.UInt32)
IL_00CC: conv.u
IL_00CD: ldelema NetLane
IL_00D2: ldfld System.UInt32 NetLane::m_nextLane
IL_00D7: stloc.s 4 (System.UInt32)
IL_00D9: ldloc.s 5 (System.Int32)
IL_00DB: ldc.i4.1
IL_00DC: add
IL_00DD: stloc.s 5 (System.Int32)
IL_00DF: Label2
IL_00DF: ldloc.s 5 (System.Int32)
IL_00E1: ldarg.0
IL_00E2: ldfld NetInfo NetAI::m_info
IL_00E7: ldfld Lane[] NetInfo::m_lanes
IL_00EC: ldlen
IL_00ED: conv.i4
IL_00EE: bge => Label5
IL_00F3: ldloc.s 4 (System.UInt32)
IL_00F5: brtrue => Label6
IL_00FA: Label5
IL_00FA: ldc.i4.0
IL_00FB: stloc.s 7 (System.Int32)
IL_00FD: ldc.i4.0
IL_00FE: stloc.s 8 (System.Int32)
IL_0100: ldarg.2
IL_0101: ldfld System.UInt16 NetSegment::m_trafficBuffer
IL_0106: ldc.i4 65535
IL_010B: bne.un => Label7
IL_0110: ldarg.2
IL_0111: ldfld Flags NetSegment::m_flags
IL_0116: ldc.i4 2097152
IL_011B: and
IL_011C: brtrue => Label8
IL_0121: ldarg.2
IL_0122: dup
IL_0123: ldfld Flags NetSegment::m_flags
IL_0128: ldc.i4 2097152
IL_012D: or
IL_012E: stfld Flags NetSegment::m_flags
IL_0133: ldarg.2
IL_0134: ldloc.0
IL_0135: dup
IL_0136: ldfld System.UInt32 SimulationManager::m_currentBuildIndex
IL_013B: dup
IL_013C: stloc.s 9 (System.UInt32)
IL_013E: ldc.i4.1
IL_013F: add
IL_0140: stfld System.UInt32 SimulationManager::m_currentBuildIndex
IL_0145: ldloc.s 9 (System.UInt32)
IL_0147: stfld System.UInt32 NetSegment::m_modifiedIndex
IL_014C: Label8
IL_014C: br => Label9
IL_0151: Label7
IL_0151: ldarg.2
IL_0152: dup
IL_0153: ldfld Flags NetSegment::m_flags
IL_0158: ldc.i4 -2097153
IL_015D: and
IL_015E: stfld Flags NetSegment::m_flags
IL_0163: ldloc.3
IL_0164: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_0169: ldc.i4.4
IL_016A: shl
IL_016B: stloc.s 10 (System.Int32)
IL_016D: ldloc.s 10 (System.Int32)
IL_016F: brfalse => Label10
IL_0174: ldarg.2
IL_0175: ldfld System.UInt16 NetSegment::m_trafficBuffer
IL_017A: ldc.i4.s 100
IL_017C: mul
IL_017D: ldloc.s 10 (System.Int32)
IL_017F: div
IL_0180: ldc.i4.s 100
IL_0182: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0187: conv.u1
IL_0188: stloc.s 7 (System.Int32)
IL_018A: ldarg.2
IL_018B: ldfld System.UInt16 NetSegment::m_noiseBuffer
IL_0190: ldc.i4 250
IL_0195: mul
IL_0196: ldloc.s 10 (System.Int32)
IL_0198: div
IL_0199: ldc.i4.s 100
IL_019B: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01A0: conv.u1
IL_01A1: stloc.s 8 (System.Int32)
IL_01A3: Label9
IL_01A3: Label10
IL_01A3: ldarg.2
IL_01A4: ldc.i4.0
IL_01A5: stfld System.UInt16 NetSegment::m_trafficBuffer
IL_01AA: ldarg.2
IL_01AB: ldc.i4.0
IL_01AC: stfld System.UInt16 NetSegment::m_noiseBuffer
IL_01B1: ldloc.s 7 (System.Int32)
IL_01B3: ldarg.2
IL_01B4: ldfld System.Byte NetSegment::m_trafficDensity
IL_01B9: ble => Label11
IL_01BE: ldarg.2
IL_01BF: ldarg.2
IL_01C0: ldfld System.Byte NetSegment::m_trafficDensity
IL_01C5: ldc.i4.5
IL_01C6: add
IL_01C7: ldloc.s 7 (System.Int32)
IL_01C9: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01CE: conv.u1
IL_01CF: stfld System.Byte NetSegment::m_trafficDensity
IL_01D4: br => Label12
IL_01D9: Label11
IL_01D9: ldloc.s 7 (System.Int32)
IL_01DB: ldarg.2
IL_01DC: ldfld System.Byte NetSegment::m_trafficDensity
IL_01E1: bge => Label13
IL_01E6: ldarg.2
IL_01E7: ldarg.2
IL_01E8: ldfld System.Byte NetSegment::m_trafficDensity
IL_01ED: ldc.i4.5
IL_01EE: sub
IL_01EF: ldloc.s 7 (System.Int32)
IL_01F1: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_01F6: conv.u1
IL_01F7: stfld System.Byte NetSegment::m_trafficDensity
IL_01FC: Label12
IL_01FC: Label13
IL_01FC: ldloc.s 8 (System.Int32)
IL_01FE: ldarg.2
IL_01FF: ldfld System.Byte NetSegment::m_noiseDensity
IL_0204: ble => Label14
IL_0209: ldarg.2
IL_020A: ldarg.2
IL_020B: ldfld System.Byte NetSegment::m_noiseDensity
IL_0210: ldc.i4.2
IL_0211: add
IL_0212: ldloc.s 8 (System.Int32)
IL_0214: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0219: conv.u1
IL_021A: stfld System.Byte NetSegment::m_noiseDensity
IL_021F: br => Label15
IL_0224: Label14
IL_0224: ldloc.s 8 (System.Int32)
IL_0226: ldarg.2
IL_0227: ldfld System.Byte NetSegment::m_noiseDensity
IL_022C: bge => Label16
IL_0231: ldarg.2
IL_0232: ldarg.2
IL_0233: ldfld System.Byte NetSegment::m_noiseDensity
IL_0238: ldc.i4.2
IL_0239: sub
IL_023A: ldloc.s 8 (System.Int32)
IL_023C: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0241: conv.u1
IL_0242: stfld System.Byte NetSegment::m_noiseDensity
IL_0247: Label15
IL_0247: Label16
IL_0247: ldloc.1
IL_0248: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_024D: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0252: ldarg.2
IL_0253: ldfld System.UInt16 NetSegment::m_startNode
IL_0258: ldelema NetNode
IL_025D: ldfld UnityEngine.Vector3 NetNode::m_position
IL_0262: stloc.s 11 (UnityEngine.Vector3)
IL_0264: ldloc.1
IL_0265: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_026A: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_026F: ldarg.2
IL_0270: ldfld System.UInt16 NetSegment::m_endNode
IL_0275: ldelema NetNode
IL_027A: ldfld UnityEngine.Vector3 NetNode::m_position
IL_027F: stloc.s 12 (UnityEngine.Vector3)
IL_0281: ldloc.s 11 (UnityEngine.Vector3)
IL_0283: ldloc.s 12 (UnityEngine.Vector3)
IL_0285: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_028A: ldc.r4 0.5
IL_028F: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_0294: stloc.s 13 (UnityEngine.Vector3)
IL_0296: ldc.i4.0
IL_0297: stloc.s 14 (System.Boolean)
IL_0299: ldarg.0
IL_029A: ldfld NetInfo NetAI::m_info
IL_029F: ldfld Flags NetInfo::m_setVehicleFlags
IL_02A4: ldc.i4 268435456
IL_02A9: and
IL_02AA: brtrue => Label17
IL_02AF: call static TerrainManager
ColossalFramework.Singleton`1<TerrainManager>::get_instance()
IL_02B4: ldloc.s 13 (UnityEngine.Vector3)
IL_02B6: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_02BB: callvirt System.Single TerrainManager::WaterLevel(UnityEngine.Vector2
position)
IL_02C0: stloc.s 15 (System.Single)
IL_02C2: ldloc.s 15 (System.Single)
IL_02C4: ldloca.s 13 (UnityEngine.Vector3)
IL_02C6: ldfld System.Single UnityEngine.Vector3::y
IL_02CB: ldc.r4 1
IL_02D0: add
IL_02D1: ble.un => Label18
IL_02D6: ldloc.s 15 (System.Single)
IL_02D8: ldc.r4 0
IL_02DD: ble.un => Label19
IL_02E2: ldc.i4.1
IL_02E3: stloc.s 14 (System.Boolean)
IL_02E5: ldarg.2
IL_02E6: dup
IL_02E7: ldfld Flags NetSegment::m_flags
IL_02EC: ldc.i4 4194304
IL_02F1: or
IL_02F2: stfld Flags NetSegment::m_flags
IL_02F7: ldloc.2
IL_02F8: ldc.i8 4611686018695823360
IL_0301: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0306: stloc.2
IL_0307: ldarg.2
IL_0308: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_030D: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0312: stloc.s 16 (UnityEngine.Vector3)
IL_0314: ldarg.2
IL_0315: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_031A: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_031F: stloc.s 17 (UnityEngine.Vector3)
IL_0321: ldloca.s 16 (UnityEngine.Vector3)
IL_0323: ldfld System.Single UnityEngine.Vector3::x
IL_0328: ldloca.s 16 (UnityEngine.Vector3)
IL_032A: ldfld System.Single UnityEngine.Vector3::z
IL_032F: ldloca.s 17 (UnityEngine.Vector3)
IL_0331: ldfld System.Single UnityEngine.Vector3::x
IL_0336: ldloca.s 17 (UnityEngine.Vector3)
IL_0338: ldfld System.Single UnityEngine.Vector3::z
IL_033D: call static System.Void RoadBaseAI::FloodParkedCars(System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0342: br => Label20
IL_0347: Label18
IL_0347: Label19
IL_0347: ldarg.2
IL_0348: dup
IL_0349: ldfld Flags NetSegment::m_flags
IL_034E: ldc.i4 -4194305
IL_0353: and
IL_0354: stfld Flags NetSegment::m_flags
IL_0359: ldloc.s 15 (System.Single)
IL_035B: ldloca.s 13 (UnityEngine.Vector3)
IL_035D: ldfld System.Single UnityEngine.Vector3::y
IL_0362: ble.un => Label21
IL_0367: ldloc.s 15 (System.Single)
IL_0369: ldc.r4 0
IL_036E: ble.un => Label22
IL_0373: ldc.i4.1
IL_0374: stloc.s 14 (System.Boolean)
IL_0376: ldloc.2
IL_0377: ldc.i4 268435456
IL_037C: conv.i8
IL_037D: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0382: stloc.2
IL_0383: Label17
IL_0383: Label20
IL_0383: Label21
IL_0383: Label22
IL_0383: call static DistrictManager
ColossalFramework.Singleton`1<DistrictManager>::get_instance()
IL_0388: stloc.s 18 (DistrictManager)
IL_038A: ldloc.s 18 (DistrictManager)
IL_038C: ldloc.s 13 (UnityEngine.Vector3)
IL_038E: callvirt System.Byte DistrictManager::GetDistrict(UnityEngine.Vector3
worldPos)
IL_0393: stloc.s 19 (System.Byte)
IL_0395: ldloc.s 18 (DistrictManager)
IL_0397: ldfld Array8`1<District> DistrictManager::m_districts
IL_039C: ldfld District[] Array8`1<District>::m_buffer
IL_03A1: ldloc.s 19 (System.Byte)
IL_03A3: ldelema District
IL_03A8: ldfld CityPlanning District::m_cityPlanningPolicies
IL_03AD: stloc.s 20 (DistrictPolicies+CityPlanning)
IL_03AF: ldc.i4.s 100
IL_03B1: ldarg.2
IL_03B2: ldfld System.Byte NetSegment::m_noiseDensity
IL_03B7: ldc.i4.s 100
IL_03B9: sub
IL_03BA: ldarg.2
IL_03BB: ldfld System.Byte NetSegment::m_noiseDensity
IL_03C0: ldc.i4.s 100
IL_03C2: sub
IL_03C3: mul
IL_03C4: ldc.i4.s 100
IL_03C6: div
IL_03C7: sub
IL_03C8: stloc.s 21 (System.Int32)
IL_03CA: ldarg.0
IL_03CB: ldfld NetInfo NetAI::m_info
IL_03D0: ldfld VehicleType NetInfo::m_vehicleTypes
IL_03D5: ldc.i4.1
IL_03D6: and
IL_03D7: brfalse => Label23
IL_03DC: ldarg.0
IL_03DD: ldfld NetInfo NetAI::m_info
IL_03E2: ldfld Flags NetInfo::m_setVehicleFlags
IL_03E7: ldc.i4 268435456
IL_03EC: and
IL_03ED: brtrue => Label24
IL_03F2: ldloc.s 14 (System.Boolean)
IL_03F4: brfalse => Label25
IL_03F9: ldarg.2
IL_03FA: ldfld Flags NetSegment::m_flags
IL_03FF: ldc.i4 2099200
IL_0404: and
IL_0405: brtrue => Label26
IL_040A: ldloc.0
IL_040B: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0410: ldc.i4.s 10
IL_0412: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0417: brtrue => Label27
IL_041C: ldloca.s 22 (TransferManager+TransferOffer)
IL_041E: initobj TransferManager+TransferOffer
IL_0424: ldloca.s 22 (TransferManager+TransferOffer)
IL_0426: ldc.i4.4
IL_0427: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_042C: ldloca.s 22 (TransferManager+TransferOffer)
IL_042E: ldarg.1
IL_042F: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_0434: ldloca.s 22 (TransferManager+TransferOffer)
IL_0436: ldloc.s 13 (UnityEngine.Vector3)
IL_0438: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_043D: ldloca.s 22 (TransferManager+TransferOffer)
IL_043F: ldc.i4.1
IL_0440: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_0445: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_044A: ldc.i4.s 73
IL_044C: ldloc.s 22 (TransferManager+TransferOffer)
IL_044E: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason
material, TransferOffer offer)
IL_0453: Label25
IL_0453: Label26
IL_0453: Label27
IL_0453: ldarg.2
IL_0454: ldfld System.Byte NetSegment::m_wetness
IL_0459: stloc.s 23 (System.Int32)
IL_045B: ldloc.1
IL_045C: ldfld System.Boolean NetManager::m_treatWetAsSnow
IL_0461: brtrue => Label28
IL_0466: ldloc.s 14 (System.Boolean)
IL_0468: brfalse => Label29
IL_046D: ldc.i4 255
IL_0472: stloc.s 23 (System.Int32)
IL_0474: br => Label30
IL_0479: Label29
IL_0479: ldloc.s 23 (System.Int32)
IL_047B: ldc.i4.s 63
IL_047D: add
IL_047E: ldc.i4.5
IL_047F: shr
IL_0480: neg
IL_0481: stloc.s 24 (System.Int32)
IL_0483: call static WeatherManager
ColossalFramework.Singleton`1<WeatherManager>::get_instance()
IL_0488: ldloc.s 13 (UnityEngine.Vector3)
IL_048A: ldc.i4.0
IL_048B: callvirt System.Single
WeatherManager::SampleRainIntensity(UnityEngine.Vector3 pos, System.Boolean
ignoreWeather)
IL_0490: stloc.s 25 (System.Single)
IL_0492: ldloc.s 25 (System.Single)
IL_0494: ldc.r4 0
IL_0499: beq => Label31
IL_049E: ldloc.s 25 (System.Single)
IL_04A0: ldc.r4 4000
IL_04A5: mul
IL_04A6: ldc.r4 1000
IL_04AB: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_04B0: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_04B5: stloc.s 26 (System.Int32)
IL_04B7: ldloc.s 24 (System.Int32)
IL_04B9: ldloc.0
IL_04BA: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_04BF: ldloc.s 26 (System.Int32)
IL_04C1: ldloc.s 26 (System.Int32)
IL_04C3: ldc.i4.s 99
IL_04C5: add
IL_04C6: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_04CB: ldc.i4.s 100
IL_04CD: div
IL_04CE: add
IL_04CF: stloc.s 24 (System.Int32)
IL_04D1: Label31
IL_04D1: ldloc.s 23 (System.Int32)
IL_04D3: ldloc.s 24 (System.Int32)
IL_04D5: add
IL_04D6: ldc.i4.0
IL_04D7: ldc.i4 255
IL_04DC: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_04E1: stloc.s 23 (System.Int32)
IL_04E3: Label30
IL_04E3: br => Label32
IL_04E8: Label28
IL_04E8: ldarg.0
IL_04E9: ldfld System.Boolean RoadBaseAI::m_accumulateSnow
IL_04EE: brfalse => Label33
IL_04F3: ldloc.s 14 (System.Boolean)
IL_04F5: brfalse => Label34
IL_04FA: ldc.i4 128
IL_04FF: stloc.s 23 (System.Int32)
IL_0501: br => Label35
IL_0506: Label34
IL_0506: call static WeatherManager
ColossalFramework.Singleton`1<WeatherManager>::get_instance()
IL_050B: ldloc.s 13 (UnityEngine.Vector3)
IL_050D: ldc.i4.0
IL_050E: callvirt System.Single
WeatherManager::SampleRainIntensity(UnityEngine.Vector3 pos, System.Boolean
ignoreWeather)
IL_0513: stloc.s 27 (System.Single)
IL_0515: ldloc.s 27 (System.Single)
IL_0517: ldc.r4 0
IL_051C: beq => Label36
IL_0521: ldloc.s 27 (System.Single)
IL_0523: ldc.r4 400
IL_0528: mul
IL_0529: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_052E: stloc.s 28 (System.Int32)
IL_0530: ldloc.0
IL_0531: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0536: ldloc.s 28 (System.Int32)
IL_0538: ldloc.s 28 (System.Int32)
IL_053A: ldc.i4.s 99
IL_053C: add
IL_053D: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_0542: ldc.i4.s 100
IL_0544: div
IL_0545: stloc.s 29 (System.Int32)
IL_0547: call static UnlockManager
ColossalFramework.Singleton`1<UnlockManager>::get_instance()
IL_054C: ldc.i4.s 24
IL_054E: callvirt System.Boolean UnlockManager::Unlocked(Feature feature)
IL_0553: brfalse => Label37
IL_0558: ldloc.s 23 (System.Int32)
IL_055A: ldloc.s 29 (System.Int32)
IL_055C: add
IL_055D: ldc.i4 255
IL_0562: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0567: stloc.s 23 (System.Int32)
IL_0569: br => Label38
IL_056E: Label37
IL_056E: ldloc.s 23 (System.Int32)
IL_0570: ldloc.s 29 (System.Int32)
IL_0572: add
IL_0573: ldc.i4 128
IL_0578: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_057D: stloc.s 23 (System.Int32)
IL_057F: Label38
IL_057F: br => Label39
IL_0584: Label36
IL_0584: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0589: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_058E: ldc.i4.4
IL_058F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0594: brtrue => Label40
IL_0599: ldloc.s 23 (System.Int32)
IL_059B: ldc.i4.1
IL_059C: sub
IL_059D: ldc.i4.0
IL_059E: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_05A3: stloc.s 23 (System.Int32)
IL_05A5: Label39
IL_05A5: Label40
IL_05A5: ldloc.s 23 (System.Int32)
IL_05A7: ldc.i4.s 64
IL_05A9: blt => Label41
IL_05AE: ldarg.2
IL_05AF: ldfld Flags NetSegment::m_flags
IL_05B4: ldc.i4 6293504
IL_05B9: and
IL_05BA: brtrue => Label42
IL_05BF: ldloc.0
IL_05C0: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_05C5: ldc.i4.s 10
IL_05C7: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_05CC: brtrue => Label43
IL_05D1: ldloca.s 30 (TransferManager+TransferOffer)
IL_05D3: initobj TransferManager+TransferOffer
IL_05D9: ldloca.s 30 (TransferManager+TransferOffer)
IL_05DB: ldloc.s 23 (System.Int32)
IL_05DD: ldc.i4.s 50
IL_05DF: div
IL_05E0: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_05E5: ldloca.s 30 (TransferManager+TransferOffer)
IL_05E7: ldarg.1
IL_05E8: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_05ED: ldloca.s 30 (TransferManager+TransferOffer)
IL_05EF: ldloc.s 13 (UnityEngine.Vector3)
IL_05F1: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_05F6: ldloca.s 30 (TransferManager+TransferOffer)
IL_05F8: ldc.i4.1
IL_05F9: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_05FE: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_0603: ldc.i4.s 64
IL_0605: ldloc.s 30 (TransferManager+TransferOffer)
IL_0607: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason
material, TransferOffer offer)
IL_060C: Label41
IL_060C: Label42
IL_060C: Label43
IL_060C: ldloc.s 23 (System.Int32)
IL_060E: ldc.i4 192
IL_0613: blt => Label44
IL_0618: ldloc.2
IL_0619: ldc.i4 536870912
IL_061E: conv.i8
IL_061F: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0624: stloc.2
IL_0625: Label44
IL_0625: ldloc.s 18 (DistrictManager)
IL_0627: ldfld Array8`1<District> DistrictManager::m_districts
IL_062C: ldfld District[] Array8`1<District>::m_buffer
IL_0631: ldloc.s 19 (System.Byte)
IL_0633: ldelema District
IL_0638: ldflda DistrictProductionData District::m_productionData
IL_063D: dup
IL_063E: ldfld System.UInt32 DistrictProductionData::m_tempSnowCover
IL_0643: ldloc.s 23 (System.Int32)
IL_0645: add
IL_0646: stfld System.UInt32 DistrictProductionData::m_tempSnowCover
IL_064B: Label32
IL_064B: Label33
IL_064B: Label35
IL_064B: ldloc.s 23 (System.Int32)
IL_064D: ldarg.2
IL_064E: ldfld System.Byte NetSegment::m_wetness
IL_0653: beq => Label45
IL_0658: ldarg.2
IL_0659: ldfld System.Byte NetSegment::m_wetness
IL_065E: ldloc.s 23 (System.Int32)
IL_0660: sub
IL_0661: call static System.Int32 UnityEngine.Mathf::Abs(System.Int32 value)
IL_0666: ldc.i4.s 10
IL_0668: ble => Label46
IL_066D: ldarg.2
IL_066E: ldloc.s 23 (System.Int32)
IL_0670: conv.u1
IL_0671: stfld System.Byte NetSegment::m_wetness
IL_0676: ldsfld InstanceID InstanceID::Empty
IL_067B: stloc.s 31 (InstanceID)
IL_067D: ldloca.s 31 (InstanceID)
IL_067F: ldarg.1
IL_0680: call System.Void InstanceID::set_NetSegment(System.UInt16 value)
IL_0685: ldloc.1
IL_0686: ldloc.s 31 (InstanceID)
IL_0688: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_068D: ldloca.s 31 (InstanceID)
IL_068F: ldarg.2
IL_0690: ldfld System.UInt16 NetSegment::m_startNode
IL_0695: call System.Void InstanceID::set_NetNode(System.UInt16 value)
IL_069A: ldloc.1
IL_069B: ldloc.s 31 (InstanceID)
IL_069D: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06A2: ldloca.s 31 (InstanceID)
IL_06A4: ldarg.2
IL_06A5: ldfld System.UInt16 NetSegment::m_endNode
IL_06AA: call System.Void InstanceID::set_NetNode(System.UInt16 value)
IL_06AF: ldloc.1
IL_06B0: ldloc.s 31 (InstanceID)
IL_06B2: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06B7: br => Label47
IL_06BC: Label46
IL_06BC: ldarg.2
IL_06BD: ldloc.s 23 (System.Int32)
IL_06BF: conv.u1
IL_06C0: stfld System.Byte NetSegment::m_wetness
IL_06C5: ldloc.1
IL_06C6: ldc.i4 256
IL_06CB: stfld System.Int32 NetManager::m_wetnessChanged
IL_06D0: Label24
IL_06D0: Label45
IL_06D0: Label47
IL_06D0: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_06D2: ldc.i4 1024
IL_06D7: and
IL_06D8: brfalse => Label48
IL_06DD: ldloc.s 21 (System.Int32)
IL_06DF: ldc.i4.3
IL_06E0: mul
IL_06E1: ldc.i4.1
IL_06E2: add
IL_06E3: ldc.i4.1
IL_06E4: shr
IL_06E5: stloc.s 21 (System.Int32)
IL_06E7: ldc.i4 700
IL_06EC: ldc.i4.s 50
IL_06EE: ldarg.2
IL_06EF: ldfld System.Byte NetSegment::m_trafficDensity
IL_06F4: ldc.i4.6
IL_06F5: mul
IL_06F6: add
IL_06F7: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_06FC: stloc.s 32 (System.Int32)
IL_06FE: br => Label49
IL_0703: Label48
IL_0703: ldc.i4 500
IL_0708: ldc.i4.s 50
IL_070A: ldarg.2
IL_070B: ldfld System.Byte NetSegment::m_trafficDensity
IL_0710: ldc.i4.4
IL_0711: mul
IL_0712: add
IL_0713: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0718: stloc.s 32 (System.Int32)
IL_071A: Label49
IL_071A: ldarg.0
IL_071B: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_0720: brtrue => Label50
IL_0725: ldloc.0
IL_0726: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_072B: ldloc.s 32 (System.Int32)
IL_072D: ldloc.s 32 (System.Int32)
IL_072F: ldc.i4.s 99
IL_0731: add
IL_0732: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_0737: ldc.i4.s 100
IL_0739: div
IL_073A: stloc.s 33 (System.Int32)
IL_073C: ldarg.2
IL_073D: ldarg.2
IL_073E: ldfld System.Byte NetSegment::m_condition
IL_0743: ldloc.s 33 (System.Int32)
IL_0745: sub
IL_0746: ldc.i4.0
IL_0747: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_074C: conv.u1
IL_074D: stfld System.Byte NetSegment::m_condition
IL_0752: ldarg.2
IL_0753: ldfld System.Byte NetSegment::m_condition
IL_0758: ldc.i4 192
IL_075D: bge => Label51
IL_0762: ldarg.2
IL_0763: ldfld Flags NetSegment::m_flags
IL_0768: ldc.i4 6293504
IL_076D: and
IL_076E: brtrue => Label52
IL_0773: ldloc.0
IL_0774: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0779: ldc.i4.s 20
IL_077B: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0780: brtrue => Label53
IL_0785: ldloca.s 34 (TransferManager+TransferOffer)
IL_0787: initobj TransferManager+TransferOffer
IL_078D: ldloca.s 34 (TransferManager+TransferOffer)
IL_078F: ldc.i4 255
IL_0794: ldarg.2
IL_0795: ldfld System.Byte NetSegment::m_condition
IL_079A: sub
IL_079B: ldc.i4.s 50
IL_079D: div
IL_079E: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_07A3: ldloca.s 34 (TransferManager+TransferOffer)
IL_07A5: ldarg.1
IL_07A6: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_07AB: ldloca.s 34 (TransferManager+TransferOffer)
IL_07AD: ldloc.s 13 (UnityEngine.Vector3)
IL_07AF: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_07B4: ldloca.s 34 (TransferManager+TransferOffer)
IL_07B6: ldc.i4.1
IL_07B7: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_07BC: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_07C1: ldc.i4.s 66
IL_07C3: ldloc.s 34 (TransferManager+TransferOffer)
IL_07C5: callvirt System.Void TransferManager::AddIncomingOffer(TransferReason
material, TransferOffer offer)
IL_07CA: Label23
IL_07CA: Label50
IL_07CA: Label51
IL_07CA: Label52
IL_07CA: Label53
IL_07CA: ldarg.0
IL_07CB: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_07D0: brtrue => Label54
IL_07D5: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_07D7: ldc.i4.s 32
IL_07D9: and
IL_07DA: brfalse => Label55
IL_07DF: ldarg.2
IL_07E0: dup
IL_07E1: ldfld Flags NetSegment::m_flags
IL_07E6: ldc.i4 1048576
IL_07EB: or
IL_07EC: stfld Flags NetSegment::m_flags
IL_07F1: br => Label56
IL_07F6: Label55
IL_07F6: ldarg.2
IL_07F7: dup
IL_07F8: ldfld Flags NetSegment::m_flags
IL_07FD: ldc.i4 -1048577
IL_0802: and
IL_0803: stfld Flags NetSegment::m_flags
IL_0808: Label56
IL_0808: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_080A: ldc.i4 128
IL_080F: and
IL_0810: brfalse => Label57
IL_0815: ldarg.2
IL_0816: dup
IL_0817: ldfld Flags NetSegment::m_flags
IL_081C: ldc.i4 8388608
IL_0821: or
IL_0822: stfld Flags NetSegment::m_flags
IL_0827: br => Label58
IL_082C: Label57
IL_082C: ldarg.2
IL_082D: dup
IL_082E: ldfld Flags NetSegment::m_flags
IL_0833: ldc.i4 -8388609
IL_0838: and
IL_0839: stfld Flags NetSegment::m_flags
IL_083E: Label58
IL_083E: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_0840: ldc.i4 512
IL_0845: and
IL_0846: brfalse => Label59
IL_084B: ldarg.2
IL_084C: dup
IL_084D: ldfld Flags NetSegment::m_flags
IL_0852: ldc.i4 16777216
IL_0857: or
IL_0858: stfld Flags NetSegment::m_flags
IL_085D: br => Label60
IL_0862: Label59
IL_0862: ldarg.2
IL_0863: dup
IL_0864: ldfld Flags NetSegment::m_flags
IL_0869: ldc.i4 -16777217
IL_086E: and
IL_086F: stfld Flags NetSegment::m_flags
IL_0874: Label60
IL_0874: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_0876: ldc.i4 65536
IL_087B: and
IL_087C: brfalse => Label61
IL_0881: ldarg.2
IL_0882: dup
IL_0883: ldfld Flags NetSegment::m_flags
IL_0888: ldc.i4 256
IL_088D: or
IL_088E: stfld Flags NetSegment::m_flags
IL_0893: br => Label62
IL_0898: Label61
IL_0898: ldarg.2
IL_0899: dup
IL_089A: ldfld Flags NetSegment::m_flags
IL_089F: ldc.i4 -257
IL_08A4: and
IL_08A5: stfld Flags NetSegment::m_flags
IL_08AA: Label54
IL_08AA: Label62
IL_08AA: ldarg.0
IL_08AB: ldfld System.Int32 RoadBaseAI::m_noiseAccumulation
IL_08B0: ldloc.s 21 (System.Int32)
IL_08B2: mul
IL_08B3: ldc.i4.s 100
IL_08B5: div
IL_08B6: stloc.s 35 (System.Int32)
IL_08B8: ldloc.s 35 (System.Int32)
IL_08BA: brfalse => Label63
IL_08BF: ldloc.s 11 (UnityEngine.Vector3)
IL_08C1: ldloc.s 12 (UnityEngine.Vector3)
IL_08C3: call static System.Single
UnityEngine.Vector3::Distance(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_08C8: stloc.s 36 (System.Single)
IL_08CA: ldloc.s 36 (System.Single)
IL_08CC: ldarg.0
IL_08CD: ldfld System.Single RoadBaseAI::m_noiseRadius
IL_08D2: div
IL_08D3: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single
f)
IL_08D8: stloc.s 37 (System.Int32)
IL_08DA: ldc.i4.0
IL_08DB: stloc.s 38 (System.Int32)
IL_08DD: br => Label64
IL_08E2: Label65
IL_08E2: ldloc.s 11 (UnityEngine.Vector3)
IL_08E4: ldloc.s 12 (UnityEngine.Vector3)
IL_08E6: ldloc.s 38 (System.Int32)
IL_08E8: ldc.i4.1
IL_08E9: add
IL_08EA: conv.r4
IL_08EB: ldloc.s 37 (System.Int32)
IL_08ED: ldc.i4.1
IL_08EE: add
IL_08EF: conv.r4
IL_08F0: div
IL_08F1: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_08F6: stloc.s 39 (UnityEngine.Vector3)
IL_08F8: call static ImmaterialResourceManager
ColossalFramework.Singleton`1<ImmaterialResourceManager>::get_instance()
IL_08FD: ldc.i4.8
IL_08FE: ldloc.s 35 (System.Int32)
IL_0900: ldloc.s 39 (UnityEngine.Vector3)
IL_0902: ldarg.0
IL_0903: ldfld System.Single RoadBaseAI::m_noiseRadius
IL_0908: callvirt System.Int32 ImmaterialResourceManager::AddResource(Resource
resource, System.Int32 rate, UnityEngine.Vector3 position, System.Single radius)
IL_090D: pop
IL_090E: ldloc.s 38 (System.Int32)
IL_0910: ldc.i4.1
IL_0911: add
IL_0912: stloc.s 38 (System.Int32)
IL_0914: Label64
IL_0914: ldloc.s 38 (System.Int32)
IL_0916: ldloc.s 37 (System.Int32)
IL_0918: blt => Label65
IL_091D: Label63
IL_091D: ldarg.2
IL_091E: ldfld System.Byte NetSegment::m_trafficDensity
IL_0923: ldc.i4.s 50
IL_0925: blt => Label66
IL_092A: ldarg.2
IL_092B: ldfld System.Single NetSegment::m_averageLength
IL_0930: ldc.r4 25
IL_0935: bge.un => Label67
IL_093A: ldloc.1
IL_093B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0940: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0945: ldarg.2
IL_0946: ldfld System.UInt16 NetSegment::m_startNode
IL_094B: ldelema NetNode
IL_0950: ldfld Flags NetNode::m_flags
IL_0955: ldc.i4 10485760
IL_095A: and
IL_095B: ldc.i4 8388608
IL_0960: bne.un => Label68
IL_0965: ldloc.1
IL_0966: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_096B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0970: ldarg.2
IL_0971: ldfld System.UInt16 NetSegment::m_endNode
IL_0976: ldelema NetNode
IL_097B: ldfld Flags NetNode::m_flags
IL_0980: ldc.i4 10485760
IL_0985: and
IL_0986: ldc.i4 8388608
IL_098B: bne.un => Label69
IL_0990: call static GuideManager
ColossalFramework.Singleton`1<GuideManager>::get_instance()
IL_0995: ldfld GuideController SimulationManagerBase`2<GuideManager,
GuideController>::m_properties
IL_099A: stloc.s 40 (GuideController)
IL_099C: ldloc.s 40 (GuideController)
IL_099E: brfalse => Label70
IL_09A3: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_09A8: ldfld NetSegmentInstanceGuide NetManager::m_shortRoadTraffic
IL_09AD: ldloc.s 40 (GuideController)
IL_09AF: ldfld GuideInfo GuideController::m_shortRoadTraffic
IL_09B4: ldarg.1
IL_09B5: ldc.i4.0
IL_09B6: callvirt System.Void NetSegmentInstanceGuide::Activate(GuideInfo
guideInfo, System.UInt16 segmentID, System.Boolean ignoreID)
IL_09BB: Label66
IL_09BB: Label67
IL_09BB: Label68
IL_09BB: Label69
IL_09BB: Label70
IL_09BB: ldarg.2
IL_09BC: ldfld Flags NetSegment::m_flags
IL_09C1: ldc.i4.8
IL_09C2: and
IL_09C3: brfalse => Label71
IL_09C8: call static GuideManager
ColossalFramework.Singleton`1<GuideManager>::get_instance()
IL_09CD: ldfld GuideController SimulationManagerBase`2<GuideManager,
GuideController>::m_properties
IL_09D2: stloc.s 41 (GuideController)
IL_09D4: ldloc.s 41 (GuideController)
IL_09D6: brfalse => Label72
IL_09DB: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_09E0: ldfld NetSegmentInstanceGuide NetManager::m_roadDestroyed
IL_09E5: ldloc.s 41 (GuideController)
IL_09E7: ldfld GuideInfo GuideController::m_roadDestroyed
IL_09EC: ldarg.1
IL_09ED: ldc.i4.0
IL_09EE: callvirt System.Void NetSegmentInstanceGuide::Activate(GuideInfo
guideInfo, System.UInt16 segmentID, System.Boolean ignoreID)
IL_09F3: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_09F8: ldfld ServiceTypeGuide NetManager::m_roadDestroyed2
IL_09FD: ldloc.s 41 (GuideController)
IL_09FF: ldfld GuideInfo GuideController::m_roadDestroyed2
IL_0A04: ldarg.0
IL_0A05: ldfld NetInfo NetAI::m_info
IL_0A0A: ldfld ItemClass NetInfo::m_class
IL_0A0F: ldfld Service ItemClass::m_service
IL_0A14: callvirt System.Void ServiceTypeGuide::Activate(GuideInfo guideInfo,
Service service)
IL_0A19: Label72
IL_0A19: ldloc.0
IL_0A1A: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0A1F: ldc.i4.8
IL_0A20: shr.un
IL_0A21: ldc.i4.s 15
IL_0A23: and
IL_0A24: conv.u8
IL_0A25: ldarg.1
IL_0A26: ldc.i4.s 15
IL_0A28: and
IL_0A29: conv.i8
IL_0A2A: bne.un => Label73
IL_0A2F: ldarg.2
IL_0A30: ldfld System.Single NetSegment::m_averageLength
IL_0A35: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_0A3A: stloc.s 42 (System.Int32)
IL_0A3C: call static StatisticsManager
ColossalFramework.Singleton`1<StatisticsManager>::get_instance()
IL_0A41: ldc.i4.s 53
IL_0A43: callvirt StatisticBase StatisticsManager::Acquire(StatisticType type)
IL_0A48: stloc.s 43 (StatisticBase)
IL_0A4A: ldloc.s 43 (StatisticBase)
IL_0A4C: ldloc.s 42 (System.Int32)
IL_0A4E: callvirt abstract virtual System.Void StatisticBase::Add(System.Int32
delta)
IL_0A53: Label71
IL_0A53: Label73
IL_0A53: ldarg.2
IL_0A54: ldloc.2
IL_0A55: stfld Problem NetSegment::m_problems
IL_0A5A: // end original
IL_0A5A: ret
DONE

### Patch: static System.Void


TrainTrackBaseAI::LevelCrossingSimulationStep(System.UInt16 nodeID, NetNode& data)
### Replacement: static System.Void
TrainTrackBaseAI::TrainTrackBaseAI.LevelCrossingSimulationStep_Patch0(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: // start original
IL_0000: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0005: stloc.0
IL_0006: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_000B: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldc.i4.0
IL_0014: stloc.3
IL_0015: ldc.i4.0
IL_0016: stloc.s 4 (System.Int32)
IL_0018: br => Label0
IL_001D: Label12
IL_001D: ldarg.1
IL_001E: ldloc.s 4 (System.Int32)
IL_0020: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0025: stloc.s 5 (System.UInt16)
IL_0027: ldloc.s 5 (System.UInt16)
IL_0029: brfalse => Label1
IL_002E: ldloc.0
IL_002F: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0034: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0039: ldloc.s 5 (System.UInt16)
IL_003B: ldelema NetSegment
IL_0040: call NetInfo NetSegment::get_Info()
IL_0045: stloc.s 6 (NetInfo)
IL_0047: ldloc.s 6 (NetInfo)
IL_0049: ldfld ItemClass NetInfo::m_class
IL_004E: ldfld Service ItemClass::m_service
IL_0053: ldc.i4.s 9
IL_0055: beq => Label2
IL_005A: ldloc.s 6 (NetInfo)
IL_005C: ldfld Lane[] NetInfo::m_lanes
IL_0061: brfalse => Label3
IL_0066: ldloc.0
IL_0067: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_006C: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0071: ldloc.s 5 (System.UInt16)
IL_0073: ldelema NetSegment
IL_0078: ldfld System.UInt16 NetSegment::m_startNode
IL_007D: ldarg.0
IL_007E: ceq
IL_0080: stloc.s 7 (System.Boolean)
IL_0082: ldloc.0
IL_0083: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0088: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_008D: ldloc.s 5 (System.UInt16)
IL_008F: ldelema NetSegment
IL_0094: ldfld System.UInt32 NetSegment::m_lanes
IL_0099: stloc.s 8 (System.UInt32)
IL_009B: ldc.i4.0
IL_009C: stloc.s 9 (System.Int32)
IL_009E: br => Label4
IL_00A3: Label10
IL_00A3: ldloc.s 6 (NetInfo)
IL_00A5: ldfld Lane[] NetInfo::m_lanes
IL_00AA: ldloc.s 9 (System.Int32)
IL_00AC: ldelem.ref
IL_00AD: ldfld LaneType Lane::m_laneType
IL_00B2: ldc.i4.1
IL_00B3: bne.un => Label5
IL_00B8: ldloc.0
IL_00B9: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00BE: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00C3: ldloc.s 8 (System.UInt32)
IL_00C5: conv.u
IL_00C6: ldelema NetLane
IL_00CB: ldloc.s 7 (System.Boolean)
IL_00CD: brfalse => Label6
IL_00D2: ldc.r4 0
IL_00D7: br => Label7
IL_00DC: Label6
IL_00DC: ldc.r4 1
IL_00E1: Label7
IL_00E1: call UnityEngine.Vector3 NetLane::CalculatePosition(System.Single
laneOffset)
IL_00E6: stloc.s 10 (UnityEngine.Vector3)
IL_00E8: ldloc.s 10 (UnityEngine.Vector3)
IL_00EA: call static System.Boolean
TrainTrackBaseAI::CheckOverlap(UnityEngine.Vector3 pos)
IL_00EF: brfalse => Label8
IL_00F4: ldc.i4.1
IL_00F5: stloc.2
IL_00F6: Label5
IL_00F6: Label8
IL_00F6: ldloc.0
IL_00F7: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00FC: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0101: ldloc.s 8 (System.UInt32)
IL_0103: conv.u
IL_0104: ldelema NetLane
IL_0109: ldfld System.UInt32 NetLane::m_nextLane
IL_010E: stloc.s 8 (System.UInt32)
IL_0110: ldloc.s 9 (System.Int32)
IL_0112: ldc.i4.1
IL_0113: add
IL_0114: stloc.s 9 (System.Int32)
IL_0116: Label4
IL_0116: ldloc.s 9 (System.Int32)
IL_0118: ldloc.s 6 (NetInfo)
IL_011A: ldfld Lane[] NetInfo::m_lanes
IL_011F: ldlen
IL_0120: conv.i4
IL_0121: bge => Label9
IL_0126: ldloc.s 8 (System.UInt32)
IL_0128: brtrue => Label10
IL_012D: Label3
IL_012D: Label9
IL_012D: ldarg.0
IL_012E: ldloc.0
IL_012F: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0134: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0139: ldloc.s 5 (System.UInt16)
IL_013B: ldelema NetSegment
IL_0140: ldloc.1
IL_0141: ldc.i4 256
IL_0146: sub
IL_0147: ldloca.s 11 (RoadBaseAI+TrafficLightState)
IL_0149: ldloca.s 12 (RoadBaseAI+TrafficLightState)
IL_014B: ldloca.s 13 (System.Boolean)
IL_014D: ldloca.s 14 (System.Boolean)
IL_014F: 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_0154: ldloc.s 13 (System.Boolean)
IL_0156: brfalse => Label11
IL_015B: ldc.i4.1
IL_015C: stloc.2
IL_015D: Label1
IL_015D: Label2
IL_015D: Label11
IL_015D: ldloc.s 4 (System.Int32)
IL_015F: ldc.i4.1
IL_0160: add
IL_0161: stloc.s 4 (System.Int32)
IL_0163: Label0
IL_0163: ldloc.s 4 (System.Int32)
IL_0165: ldc.i4.8
IL_0166: blt => Label12
IL_016B: ldloc.2
IL_016C: stloc.3
IL_016D: ldc.i4.0
IL_016E: stloc.s 15 (System.Int32)
IL_0170: br => Label13
IL_0175: Label27
IL_0175: ldarg.1
IL_0176: ldloc.s 15 (System.Int32)
IL_0178: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_017D: stloc.s 16 (System.UInt16)
IL_017F: ldloc.s 16 (System.UInt16)
IL_0181: brfalse => Label14
IL_0186: ldloc.0
IL_0187: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_018C: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0191: ldloc.s 16 (System.UInt16)
IL_0193: ldelema NetSegment
IL_0198: call NetInfo NetSegment::get_Info()
IL_019D: stloc.s 17 (NetInfo)
IL_019F: ldarg.0
IL_01A0: ldloc.0
IL_01A1: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01A6: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01AB: ldloc.s 16 (System.UInt16)
IL_01AD: ldelema NetSegment
IL_01B2: ldloc.1
IL_01B3: ldc.i4 256
IL_01B8: sub
IL_01B9: ldloca.s 18 (RoadBaseAI+TrafficLightState)
IL_01BB: ldloca.s 19 (RoadBaseAI+TrafficLightState)
IL_01BD: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_01C2: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01C4: ldc.i4.s -2
IL_01C6: and
IL_01C7: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01C9: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_01CB: ldc.i4.s -2
IL_01CD: and
IL_01CE: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_01D0: ldloc.s 17 (NetInfo)
IL_01D2: ldfld ItemClass NetInfo::m_class
IL_01D7: ldfld Service ItemClass::m_service
IL_01DC: ldc.i4.s 9
IL_01DE: bne.un => Label15
IL_01E3: ldloc.3
IL_01E4: brfalse => Label16
IL_01E9: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01EB: ldc.i4.2
IL_01EC: and
IL_01ED: brtrue => Label17
IL_01F2: ldc.i4.3
IL_01F3: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01F5: Label17
IL_01F5: br => Label18
IL_01FA: Label16
IL_01FA: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01FC: ldc.i4.2
IL_01FD: and
IL_01FE: brfalse => Label19
IL_0203: ldc.i4.1
IL_0204: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0206: Label18
IL_0206: Label19
IL_0206: ldc.i4.0
IL_0207: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0209: br => Label20
IL_020E: Label15
IL_020E: ldloc.3
IL_020F: brfalse => Label21
IL_0214: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0216: ldc.i4.2
IL_0217: and
IL_0218: brfalse => Label22
IL_021D: ldc.i4.1
IL_021E: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0220: Label22
IL_0220: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0222: ldc.i4.2
IL_0223: and
IL_0224: brtrue => Label23
IL_0229: ldc.i4.3
IL_022A: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_022C: Label23
IL_022C: br => Label24
IL_0231: Label21
IL_0231: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0233: ldc.i4.2
IL_0234: and
IL_0235: brtrue => Label25
IL_023A: ldc.i4.3
IL_023B: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_023D: Label25
IL_023D: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_023F: ldc.i4.2
IL_0240: and
IL_0241: brfalse => Label26
IL_0246: ldc.i4.1
IL_0247: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0249: Label20
IL_0249: Label24
IL_0249: Label26
IL_0249: ldarg.0
IL_024A: ldloc.0
IL_024B: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0250: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0255: ldloc.s 16 (System.UInt16)
IL_0257: ldelema NetSegment
IL_025C: ldloc.1
IL_025D: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_025F: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0261: ldc.i4.0
IL_0262: ldc.i4.0
IL_0263: 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_0268: Label14
IL_0268: ldloc.s 15 (System.Int32)
IL_026A: ldc.i4.1
IL_026B: add
IL_026C: stloc.s 15 (System.Int32)
IL_026E: Label13
IL_026E: ldloc.s 15 (System.Int32)
IL_0270: ldc.i4.8
IL_0271: blt => Label27
IL_0276: // end original
IL_0276: ret
DONE

### Patch: virtual System.Void HumanAI::ArriveAtDestination(System.UInt16


instanceID, CitizenInstance& citizenData, System.Boolean success)
### Replacement: static System.Void
HumanAI::HumanAI.ArriveAtDestination_Patch0(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: // start original
IL_0000: ldarg.2
IL_0001: ldfld System.UInt32 CitizenInstance::m_citizen
IL_0006: stloc.0
IL_0007: ldloc.0
IL_0008: brfalse => Label0
IL_000D: call static CitizenManager
ColossalFramework.Singleton`1<CitizenManager>::get_instance()
IL_0012: stloc.1
IL_0013: ldloc.1
IL_0014: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0019: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_001E: ldloc.0
IL_001F: conv.u
IL_0020: ldelema Citizen
IL_0025: ldloc.0
IL_0026: ldc.i4.0
IL_0027: ldc.i4.0
IL_0028: call System.Void Citizen::SetVehicle(System.UInt32 citizenID,
System.UInt16 vehicleID, System.UInt32 unitID)
IL_002D: ldarg.2
IL_002E: ldfld Flags CitizenInstance::m_flags
IL_0033: ldc.i4 134217728
IL_0038: and
IL_0039: brfalse => Label1
IL_003E: ldarg.3
IL_003F: brfalse => Label2
IL_0044: ldarg.2
IL_0045: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_004A: stloc.2
IL_004B: ldloc.2
IL_004C: brfalse => Label3
IL_0051: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0056: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_005B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0060: ldloc.2
IL_0061: ldelema NetNode
IL_0066: ldfld System.UInt16 NetNode::m_transportLine
IL_006B: stloc.3
IL_006C: ldloc.3
IL_006D: brfalse => Label4
IL_0072: call static TransportManager
ColossalFramework.Singleton`1<TransportManager>::get_instance()
IL_0077: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_007C: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_0081: ldloc.3
IL_0082: ldelema TransportLine
IL_0087: call TransportInfo TransportLine::get_Info()
IL_008C: stloc.s 4 (TransportInfo)
IL_008E: ldloc.s 4 (TransportInfo)
IL_0090: ldfld VehicleType TransportInfo::m_vehicleType
IL_0095: brtrue => Label5
IL_009A: ldarg.1
IL_009B: ldc.i4.1
IL_009C: and
IL_009D: brtrue => Label6
IL_00A2: ldloc.2
IL_00A3: call static System.UInt16 TransportLine::GetNextStop(System.UInt16
stop)
IL_00A8: stloc.2
IL_00A9: br => Label7
IL_00AE: Label6
IL_00AE: ldloc.2
IL_00AF: call static System.UInt16 TransportLine::GetPrevStop(System.UInt16
stop)
IL_00B4: stloc.2
IL_00B5: Label7
IL_00B5: ldloc.2
IL_00B6: brfalse => Label8
IL_00BB: ldarg.2
IL_00BC: dup
IL_00BD: ldfld Flags CitizenInstance::m_flags
IL_00C2: ldc.i4 268435456
IL_00C7: or
IL_00C8: stfld Flags CitizenInstance::m_flags
IL_00CD: ldarg.0
IL_00CE: ldarg.1
IL_00CF: ldarg.2
IL_00D0: ldloc.2
IL_00D1: ldc.i4.1
IL_00D2: callvirt virtual System.Void CitizenAI::SetTarget(System.UInt16
instanceID, CitizenInstance& data, System.UInt16 targetIndex, System.Boolean
targetIsNode)
IL_00D7: br => Label16
IL_00DC: Label8
IL_00DC: br => Label9
IL_00E1: Label5
IL_00E1: ldarg.2
IL_00E2: dup
IL_00E3: ldfld Flags CitizenInstance::m_flags
IL_00E8: ldc.i4 268435456
IL_00ED: or
IL_00EE: stfld Flags CitizenInstance::m_flags
IL_00F3: ldarg.0
IL_00F4: ldarg.1
IL_00F5: ldarg.2
IL_00F6: ldloc.2
IL_00F7: call System.Void HumanAI::WaitTouristVehicle(System.UInt16
instanceID, CitizenInstance& citizenData, System.UInt16 stop)
IL_00FC: br => Label17
IL_0101: Label2
IL_0101: Label3
IL_0101: Label4
IL_0101: Label9
IL_0101: br => Label10
IL_0106: Label1
IL_0106: ldarg.3
IL_0107: brfalse => Label11
IL_010C: ldloc.1
IL_010D: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0112: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0117: ldloc.0
IL_0118: conv.u
IL_0119: ldelema Citizen
IL_011E: ldloc.0
IL_011F: ldarg.2
IL_0120: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_0125: call System.Void Citizen::SetLocationByBuilding(System.UInt32
citizenID, System.UInt16 buildingID)
IL_012A: Label11
IL_012A: ldarg.2
IL_012B: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_0130: brfalse => Label12
IL_0135: ldloc.1
IL_0136: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_013B: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0140: ldloc.0
IL_0141: conv.u
IL_0142: ldelema Citizen
IL_0147: call Location Citizen::get_CurrentLocation()
IL_014C: ldc.i4.2
IL_014D: bne.un => Label13
IL_0152: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0157: stloc.s 5 (BuildingManager)
IL_0159: ldloc.s 5 (BuildingManager)
IL_015B: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0160: ldfld Building[] Array16`1<Building>::m_buffer
IL_0165: ldarg.2
IL_0166: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_016B: ldelema Building
IL_0170: call BuildingInfo Building::get_Info()
IL_0175: stloc.s 6 (BuildingInfo)
IL_0177: ldloc.s 6 (BuildingInfo)
IL_0179: ldfld BuildingAI BuildingInfo::m_buildingAI
IL_017E: ldarg.2
IL_017F: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_0184: ldloc.s 5 (BuildingManager)
IL_0186: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_018B: ldfld Building[] Array16`1<Building>::m_buffer
IL_0190: ldarg.2
IL_0191: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_0196: ldelema Building
IL_019B: ldloc.0
IL_019C: callvirt virtual System.Void BuildingAI::VisitorEnter(System.UInt16
buildingID, Building& data, System.UInt32 citizen)
IL_01A1: Label0
IL_01A1: Label10
IL_01A1: Label12
IL_01A1: Label13
IL_01A1: ldarg.2
IL_01A2: ldfld Flags CitizenInstance::m_flags
IL_01A7: ldc.i4.s 64
IL_01A9: and
IL_01AA: brfalse => Label14
IL_01AF: ldarg.3
IL_01B0: brtrue => Label15
IL_01B5: Label14
IL_01B5: ldarg.0
IL_01B6: ldarg.1
IL_01B7: ldarg.2
IL_01B8: ldc.i4.0
IL_01B9: callvirt virtual System.Void CitizenAI::SetSource(System.UInt16
instanceID, CitizenInstance& data, System.UInt16 sourceBuilding)
IL_01BE: ldarg.0
IL_01BF: ldarg.1
IL_01C0: ldarg.2
IL_01C1: ldc.i4.0
IL_01C2: call System.Void CitizenAI::SetTarget(System.UInt16 instanceID,
CitizenInstance& data, System.UInt16 targetBuilding)
IL_01C7: ldarg.2
IL_01C8: ldarg.1
IL_01C9: call System.Void CitizenInstance::Unspawn(System.UInt16 instanceID)
IL_01CE: // end original
IL_01CE: Label15
IL_01CE: Label16
IL_01CE: Label17
IL_01CE: ret
DONE

### Patch: virtual System.Void CommonBuildingAI::SimulationStep(System.UInt16


buildingID, Building& data)
### Replacement: static System.Void
CommonBuildingAI::CommonBuildingAI.SimulationStep_Patch0(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: // start original
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: ldarg.2
IL_0003: call virtual System.Void BuildingAI::SimulationStep(System.UInt16
buildingID, Building& data)
IL_0008: ldarg.2
IL_0009: ldfld Flags Building::m_flags
IL_000E: ldc.i4 524288
IL_0013: and
IL_0014: brfalse => Label0
IL_0019: ldarg.1
IL_001A: ldc.i4.8
IL_001B: shl
IL_001C: ldc.i4 49152
IL_0021: div.un
IL_0022: stloc.0
IL_0023: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0028: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_002D: ldloc.0
IL_002E: sub
IL_002F: stloc.1
IL_0030: ldarg.2
IL_0031: ldfld Flags Building::m_flags
IL_0036: ldc.i4 4194304
IL_003B: and
IL_003C: brfalse => Label1
IL_0041: ldarg.2
IL_0042: ldloc.1
IL_0043: ldc.i4 256
IL_0048: sub
IL_0049: call Frame Building::GetFrameData(System.UInt32 simulationFrame)
IL_004E: stloc.2
IL_004F: ldloca.s 2 (Building+Frame)
IL_0051: ldfld System.Byte Frame::m_constructState
IL_0056: brtrue => Label2
IL_005B: Label1
IL_005B: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0060: ldarg.1
IL_0061: callvirt System.Void BuildingManager::ReleaseBuilding(System.UInt16
building)
IL_0066: // end original
IL_0066: Label0
IL_0066: Label2
IL_0066: ret
DONE

### Patch: System.Void RoadWorldInfoPanel::OnAdjustRoadButton()


### Replacement: static System.Void
RoadWorldInfoPanel::RoadWorldInfoPanel.OnAdjustRoadButton_Patch0(RoadWorldInfoPanel
this)
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: ldc.i4.s 30
IL_0007: ldc.i4.2
IL_0008: callvirt System.Void InfoManager::SetCurrentMode(InfoMode mode,
SubInfoMode subMode)
IL_000D: ldarg.0
IL_000E: call System.Void WorldInfoPanel::Hide()
IL_0013: // end original
IL_0013: ret
DONE

### Patch: System.Void NetSegment::CalculateSegment(System.UInt16 segmentID)


### Replacement: static System.Void
NetSegment::NetSegment.CalculateSegment_Patch0(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<NetManager>::get_instance()
IL_0036: stloc.0
IL_0037: ldloc.0
IL_0038: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0074: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16>
NetManager::m_updateNameVisibility
IL_00CF: ldarg.1
IL_00D0: callvirt System.Boolean
System.Collections.Generic.HashSet`1<System.UInt16>::Add(System.UInt16 item)
IL_00D5: pop
IL_00D6: // end original
IL_00D6: Label0
IL_00D6: ret
DONE

### Patch: System.Void LoadAssetPanel::OnLoad()


### Replacement: static System.Void
LoadAssetPanel::LoadAssetPanel.OnLoad_Patch0(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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<CustomAssetMetaData>::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<CustomAssetMetaData>::GetListingMetaData(System.Int32 index)
IL_0037: stloc.0
IL_0038: ldarg.0
IL_0039: ldloc.0
IL_003A: call System.Void
LoadSavePanelBase`1<CustomAssetMetaData>::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<CustomAssetMetaData>::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<SimulationManager>::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<SimulationManager>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_010B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<VehicleInfo>::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<VehicleInfo>::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<VehicleInfo>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_023B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<BuildingInfo>::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<BuildingInfo>::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<BuildingInfo>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_036B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<BuildingInfo>::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<BuildingInfo>::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<BuildingInfo>::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<BuildingManager>::get_instance()
IL_0482: callvirt virtual System.Void SimulationManagerBase`2<BuildingManager,
BuildingProperties>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_04A5: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<BuildingInfo>::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<CitizenInfo>::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<VehicleInfo>::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<PropInfo>::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<TreeInfo>::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<NetInfo>::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: ret
DONE

### Patch: System.Void InfoManager::SetMode(InfoMode mode, SubInfoMode subMode)


### Replacement: static System.Void
InfoManager::InfoManager.SetMode_Patch0(InfoManager this, InfoMode mode,
SubInfoMode subMode)
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: stfld InfoMode InfoManager::m_currentMode
IL_0007: ldarg.0
IL_0008: ldarg.2
IL_0009: stfld SubInfoMode InfoManager::m_currentSubMode
IL_000E: ldarg.1
IL_000F: ldc.i4.1
IL_0010: sub
IL_0011: 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
IL_00AA: br => Label37
IL_00AF: Label0
IL_00AF: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00B4: ldc.i4.0
IL_00B5: ldc.i4.0
IL_00B6: ldc.i4.m1
IL_00B7: ldc.r4 300
IL_00BC: ldc.i4.0
IL_00BD: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_00C2: br => Label38
IL_00C7: Label1
IL_00C7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00CC: ldc.i4.0
IL_00CD: ldc.i4.0
IL_00CE: ldc.i4.m1
IL_00CF: ldc.r4 300
IL_00D4: ldc.i4.0
IL_00D5: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_00DA: br => Label39
IL_00DF: Label2
IL_00DF: ldarg.2
IL_00E0: brtrue => Label40
IL_00E5: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00EA: ldc.i4.s 15
IL_00EC: ldc.i4.0
IL_00ED: ldc.i4.0
IL_00EE: ldc.r4 500
IL_00F3: ldc.i4.0
IL_00F4: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_00F9: br => Label41
IL_00FE: Label40
IL_00FE: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0103: ldc.i4.0
IL_0104: ldc.i4.0
IL_0105: ldc.i4.m1
IL_0106: ldc.r4 300
IL_010B: ldc.i4.0
IL_010C: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0111: Label41
IL_0111: br => Label42
IL_0116: Label3
IL_0116: ldarg.2
IL_0117: ldc.i4.1
IL_0118: bne.un => Label43
IL_011D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0122: ldc.i4.s 14
IL_0124: ldc.i4.0
IL_0125: ldc.i4.1
IL_0126: ldc.r4 500
IL_012B: ldc.i4.0
IL_012C: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0131: br => Label44
IL_0136: Label43
IL_0136: ldarg.2
IL_0137: ldc.i4.3
IL_0138: bne.un => Label45
IL_013D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0142: ldc.i4.s 14
IL_0144: ldc.i4.0
IL_0145: ldc.i4.4
IL_0146: ldc.r4 500
IL_014B: ldc.i4.0
IL_014C: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0151: br => Label46
IL_0156: Label45
IL_0156: ldarg.2
IL_0157: ldc.i4.2
IL_0158: bne.un => Label47
IL_015D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0162: ldc.i4.s 14
IL_0164: ldc.i4.0
IL_0165: ldc.i4.3
IL_0166: ldc.r4 500
IL_016B: ldc.i4.0
IL_016C: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0171: br => Label48
IL_0176: Label47
IL_0176: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_017B: ldc.i4.s 14
IL_017D: ldc.i4.0
IL_017E: ldc.i4.0
IL_017F: ldc.r4 500
IL_0184: ldc.i4.0
IL_0185: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_018A: Label44
IL_018A: Label46
IL_018A: Label48
IL_018A: br => Label49
IL_018F: Label12
IL_018F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0194: ldc.i4.0
IL_0195: ldc.i4.0
IL_0196: ldc.i4.m1
IL_0197: ldc.r4 300
IL_019C: ldc.i4.0
IL_019D: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01A2: br => Label50
IL_01A7: Label4
IL_01A7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01AC: ldc.i4.0
IL_01AD: ldc.i4.0
IL_01AE: ldc.i4.m1
IL_01AF: ldc.r4 300
IL_01B4: ldc.i4.0
IL_01B5: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01BA: br => Label51
IL_01BF: Label5
IL_01BF: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01C4: ldc.i4.0
IL_01C5: ldc.i4.0
IL_01C6: ldc.i4.m1
IL_01C7: ldc.r4 300
IL_01CC: ldc.i4.0
IL_01CD: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01D2: br => Label52
IL_01D7: Label8
IL_01D7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01DC: ldc.i4.0
IL_01DD: ldc.i4.0
IL_01DE: ldc.i4.m1
IL_01DF: ldc.r4 300
IL_01E4: ldc.i4.0
IL_01E5: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01EA: br => Label53
IL_01EF: Label6
IL_01EF: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01F4: ldc.i4.0
IL_01F5: ldc.i4.0
IL_01F6: ldc.i4.m1
IL_01F7: ldc.r4 300
IL_01FC: ldc.i4.0
IL_01FD: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0202: br => Label54
IL_0207: Label7
IL_0207: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_020C: ldc.i4.0
IL_020D: ldc.i4.0
IL_020E: ldc.i4.m1
IL_020F: ldc.r4 300
IL_0214: ldc.i4.0
IL_0215: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_021A: br => Label55
IL_021F: Label9
IL_021F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0224: ldc.i4.0
IL_0225: ldc.i4.0
IL_0226: ldc.i4.m1
IL_0227: ldc.r4 300
IL_022C: ldc.i4.0
IL_022D: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0232: br => Label56
IL_0237: Label10
IL_0237: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_023C: ldc.i4.0
IL_023D: ldc.i4.0
IL_023E: ldc.i4.m1
IL_023F: ldc.r4 300
IL_0244: ldc.i4.0
IL_0245: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_024A: br => Label57
IL_024F: Label11
IL_024F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0254: ldc.i4.0
IL_0255: ldc.i4.0
IL_0256: ldc.i4.m1
IL_0257: ldc.r4 300
IL_025C: ldc.i4.0
IL_025D: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0262: br => Label58
IL_0267: Label14
IL_0267: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_026C: ldc.i4.0
IL_026D: ldc.i4.0
IL_026E: ldc.i4.m1
IL_026F: ldc.r4 300
IL_0274: ldc.i4.0
IL_0275: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_027A: br => Label59
IL_027F: Label17
IL_027F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0284: ldc.i4.s 18
IL_0286: ldc.i4.0
IL_0287: ldc.i4.0
IL_0288: ldc.r4 500
IL_028D: ldc.i4.0
IL_028E: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0293: br => Label60
IL_0298: Label19
IL_0298: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_029D: ldc.i4.0
IL_029E: ldc.i4.0
IL_029F: ldc.i4.m1
IL_02A0: ldc.r4 300
IL_02A5: ldc.i4.1
IL_02A6: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02AB: br => Label61
IL_02B0: Label18
IL_02B0: ldarg.2
IL_02B1: ldc.i4.1
IL_02B2: bne.un => Label62
IL_02B7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02BC: ldc.i4.s 16
IL_02BE: ldc.i4.0
IL_02BF: ldc.i4.1
IL_02C0: ldc.r4 500
IL_02C5: ldc.i4.1
IL_02C6: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02CB: br => Label63
IL_02D0: Label62
IL_02D0: ldarg.2
IL_02D1: ldc.i4.2
IL_02D2: bne.un => Label64
IL_02D7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02DC: ldc.i4.s 16
IL_02DE: ldc.i4.0
IL_02DF: ldc.i4.2
IL_02E0: ldc.r4 500
IL_02E5: ldc.i4.1
IL_02E6: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02EB: br => Label65
IL_02F0: Label64
IL_02F0: ldarg.2
IL_02F1: brtrue => Label66
IL_02F6: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02FB: ldc.i4.s 16
IL_02FD: ldc.i4.0
IL_02FE: ldc.i4.0
IL_02FF: ldc.r4 500
IL_0304: ldc.i4.1
IL_0305: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_030A: br => Label67
IL_030F: Label66
IL_030F: ldarg.2
IL_0310: ldc.i4.4
IL_0311: bne.un => Label68
IL_0316: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_031B: ldc.i4.s 16
IL_031D: ldc.i4.0
IL_031E: ldc.i4.3
IL_031F: ldc.r4 500
IL_0324: ldc.i4.1
IL_0325: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_032A: br => Label69
IL_032F: Label68
IL_032F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0334: ldc.i4.s 16
IL_0336: ldc.i4.0
IL_0337: ldc.i4.2
IL_0338: ldc.r4 500
IL_033D: ldc.i4.1
IL_033E: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0343: Label63
IL_0343: Label65
IL_0343: Label67
IL_0343: Label69
IL_0343: br => Label70
IL_0348: Label16
IL_0348: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_034D: ldc.i4.0
IL_034E: ldc.i4.0
IL_034F: ldc.i4.m1
IL_0350: ldc.r4 300
IL_0355: ldc.i4.0
IL_0356: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_035B: br => Label71
IL_0360: Label13
IL_0360: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0365: ldc.i4.0
IL_0366: ldc.i4.0
IL_0367: ldc.i4.m1
IL_0368: ldc.r4 300
IL_036D: ldc.i4.0
IL_036E: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0373: br => Label72
IL_0378: Label15
IL_0378: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_037D: ldc.i4.s 13
IL_037F: ldc.i4.0
IL_0380: ldc.i4.m1
IL_0381: ldc.r4 2000
IL_0386: ldc.i4.0
IL_0387: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_038C: br => Label73
IL_0391: Label20
IL_0391: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0396: ldc.i4.0
IL_0397: ldc.i4.0
IL_0398: ldc.i4.m1
IL_0399: ldc.r4 300
IL_039E: ldc.i4.0
IL_039F: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03A4: br => Label74
IL_03A9: Label21
IL_03A9: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03AE: ldc.i4.0
IL_03AF: ldc.i4.0
IL_03B0: ldc.i4.m1
IL_03B1: ldc.r4 300
IL_03B6: ldc.i4.0
IL_03B7: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03BC: br => Label75
IL_03C1: Label22
IL_03C1: ldarg.2
IL_03C2: brtrue => Label76
IL_03C7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03CC: ldc.i4.s 9
IL_03CE: ldc.i4.0
IL_03CF: ldc.i4.1
IL_03D0: ldc.r4 2000
IL_03D5: ldc.i4.0
IL_03D6: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03DB: br => Label77
IL_03E0: Label76
IL_03E0: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03E5: ldc.i4.0
IL_03E6: ldc.i4.0
IL_03E7: ldc.i4.m1
IL_03E8: ldc.r4 300
IL_03ED: ldc.i4.0
IL_03EE: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03F3: Label77
IL_03F3: br => Label78
IL_03F8: Label23
IL_03F8: ldarg.2
IL_03F9: brtrue => Label79
IL_03FE: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0403: ldc.i4.s 9
IL_0405: ldc.i4.0
IL_0406: ldc.i4.3
IL_0407: ldc.r4 2000
IL_040C: ldc.i4.0
IL_040D: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0412: br => Label80
IL_0417: Label79
IL_0417: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_041C: ldc.i4.0
IL_041D: ldc.i4.0
IL_041E: ldc.i4.m1
IL_041F: ldc.r4 300
IL_0424: ldc.i4.0
IL_0425: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_042A: Label80
IL_042A: br => Label81
IL_042F: Label24
IL_042F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0434: ldc.i4.s 20
IL_0436: ldc.i4.0
IL_0437: ldc.i4.3
IL_0438: ldc.r4 500
IL_043D: ldc.i4.1
IL_043E: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0443: br => Label82
IL_0448: Label25
IL_0448: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_044D: ldc.i4.0
IL_044E: ldc.i4.0
IL_044F: ldc.i4.m1
IL_0450: ldc.r4 300
IL_0455: ldc.i4.0
IL_0456: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_045B: br => Label83
IL_0460: Label26
IL_0460: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0465: ldc.i4.s 20
IL_0467: ldc.i4.0
IL_0468: ldc.i4.1
IL_0469: ldc.r4 2000
IL_046E: ldc.i4.0
IL_046F: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0474: br => Label84
IL_0479: Label27
IL_0479: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_047E: ldc.i4.0
IL_047F: ldc.i4.0
IL_0480: ldc.i4.m1
IL_0481: ldc.r4 300
IL_0486: ldc.i4.0
IL_0487: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_048C: br => Label85
IL_0491: Label28
IL_0491: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0496: ldc.i4.0
IL_0497: ldc.i4.0
IL_0498: ldc.i4.m1
IL_0499: ldc.r4 300
IL_049E: ldc.i4.0
IL_049F: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04A4: br => Label86
IL_04A9: Label29
IL_04A9: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04AE: ldc.i4.0
IL_04AF: ldc.i4.0
IL_04B0: ldc.i4.m1
IL_04B1: ldc.r4 300
IL_04B6: ldc.i4.0
IL_04B7: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04BC: br => Label87
IL_04C1: Label30
IL_04C1: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04C6: ldc.i4.0
IL_04C7: ldc.i4.0
IL_04C8: ldc.i4.m1
IL_04C9: ldc.r4 300
IL_04CE: ldc.i4.0
IL_04CF: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04D4: br => Label88
IL_04D9: Label31
IL_04D9: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04DE: ldc.i4.0
IL_04DF: ldc.i4.0
IL_04E0: ldc.i4.m1
IL_04E1: ldc.r4 300
IL_04E6: ldc.i4.0
IL_04E7: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04EC: br => Label89
IL_04F1: Label32
IL_04F1: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04F6: ldc.i4.s 12
IL_04F8: ldc.i4.s 17
IL_04FA: ldc.i4.1
IL_04FB: ldc.r4 2000
IL_0500: ldc.i4.0
IL_0501: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0506: br => Label90
IL_050B: Label33
IL_050B: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0510: ldc.i4.0
IL_0511: ldc.i4.0
IL_0512: ldc.i4.m1
IL_0513: ldc.r4 300
IL_0518: ldc.i4.0
IL_0519: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_051E: br => Label91
IL_0523: Label34
IL_0523: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0528: ldc.i4.s 19
IL_052A: ldc.i4.s 28
IL_052C: ldc.i4.1
IL_052D: ldc.r4 500
IL_0532: ldc.i4.0
IL_0533: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0538: br => Label92
IL_053D: Label35
IL_053D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0542: ldc.i4.0
IL_0543: ldc.i4.0
IL_0544: ldc.i4.m1
IL_0545: ldc.r4 300
IL_054A: ldc.i4.0
IL_054B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0550: br => Label93
IL_0555: Label36
IL_0555: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_055A: ldc.i4.0
IL_055B: ldc.i4.0
IL_055C: ldc.i4.m1
IL_055D: ldc.r4 300
IL_0562: ldc.i4.0
IL_0563: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0568: br => Label94
IL_056D: Label37
IL_056D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0572: ldc.i4.0
IL_0573: ldc.i4.0
IL_0574: ldc.i4.m1
IL_0575: ldc.r4 300
IL_057A: ldc.i4.0
IL_057B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0580: br => Label95
IL_0585: // end original
IL_0585: Label38
IL_0585: Label39
IL_0585: Label42
IL_0585: Label49
IL_0585: Label50
IL_0585: Label51
IL_0585: Label52
IL_0585: Label53
IL_0585: Label54
IL_0585: Label55
IL_0585: Label56
IL_0585: Label57
IL_0585: Label58
IL_0585: Label59
IL_0585: Label60
IL_0585: Label61
IL_0585: Label70
IL_0585: Label71
IL_0585: Label72
IL_0585: Label73
IL_0585: Label74
IL_0585: Label75
IL_0585: Label78
IL_0585: Label81
IL_0585: Label82
IL_0585: Label83
IL_0585: Label84
IL_0585: Label85
IL_0585: Label86
IL_0585: Label87
IL_0585: Label88
IL_0585: Label89
IL_0585: Label90
IL_0585: Label91
IL_0585: Label92
IL_0585: Label93
IL_0585: Label94
IL_0585: Label95
IL_0585: ret
DONE

### Patch: virtual System.Void DefaultTool::OnToolGUI(UnityEngine.Event e)


### Replacement: static System.Void
DefaultTool::DefaultTool.OnToolGUI_Patch0(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<SimulationManager>::get_instance()
IL_0046: ldarg.0
IL_0047: ldftn System.Void DefaultTool::<OnToolGUI>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<InstanceManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<BuildingManager>::get_instance()
IL_017E: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0183: ldfld Building[] Array16`1<Building>::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<SimulationManager>::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<SimulationManager>::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::<OnToolGUI>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<SimulationManager>::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::<OnToolGUI>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<LogChannel>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<BuildingManager>::get_instance()
IL_04D2: stloc.s 13 (BuildingManager)
IL_04D4: ldloc.s 13 (BuildingManager)
IL_04D6: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_04DB: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_04FA: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0555: ldfld Building[] Array16`1<Building>::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<VehicleManager>::get_instance()
IL_0590: stloc.s 16 (VehicleManager)
IL_0592: ldloc.s 16 (VehicleManager)
IL_0594: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0599: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_05B8: ldfld Vehicle[] Array16`1<Vehicle>::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})"
IL_05DD: ldc.i4.2
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: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_0601: stloc.s 12 (System.String)
IL_0603: ldloc.s 17 (VehicleInfo)
IL_0605: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_060A: ldloc.s 8 (System.UInt16)
IL_060C: ldloc.s 16 (VehicleManager)
IL_060E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0613: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0618: ldloc.s 8 (System.UInt16)
IL_061A: ldelema Vehicle
IL_061F: callvirt virtual System.String VehicleAI::GetDebugString(System.UInt16
vehicleID, Vehicle& data)
IL_0624: stloc.s 18 (System.String)
IL_0626: ldloc.s 18 (System.String)
IL_0628: brfalse => Label68
IL_062D: ldloc.s 12 (System.String)
IL_062F: ldstr "\n"
IL_0634: ldloc.s 18 (System.String)
IL_0636: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_063B: stloc.s 12 (System.String)
IL_063D: Label66
IL_063D: Label67
IL_063D: Label68
IL_063D: br => Label69
IL_0642: Label65
IL_0642: ldloc.s 9 (System.UInt16)
IL_0644: brfalse => Label70
IL_0649: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_064E: stloc.s 19 (VehicleManager)
IL_0650: ldloc.s 19 (VehicleManager)
IL_0652: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_0657: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_065C: ldloc.s 9 (System.UInt16)
IL_065E: ldelema VehicleParked
IL_0663: ldfld System.UInt16 VehicleParked::m_flags
IL_0668: ldc.i4.1
IL_0669: and
IL_066A: brfalse => Label71
IL_066F: ldloc.s 19 (VehicleManager)
IL_0671: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_0676: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_067B: ldloc.s 9 (System.UInt16)
IL_067D: ldelema VehicleParked
IL_0682: call VehicleInfo VehicleParked::get_Info()
IL_0687: stloc.s 20 (VehicleInfo)
IL_0689: ldloc.s 20 (VehicleInfo)
IL_068B: ldnull
IL_068C: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0691: brfalse => Label72
IL_0696: ldstr "{0} ({1})"
IL_069B: ldc.i4.2
IL_069C: newarr System.Object
IL_06A1: dup
IL_06A2: ldc.i4.0
IL_06A3: ldloc.s 20 (VehicleInfo)
IL_06A5: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_06AA: callvirt System.String UnityEngine.Object::get_name()
IL_06AF: stelem.ref
IL_06B0: dup
IL_06B1: ldc.i4.1
IL_06B2: ldloc.s 9 (System.UInt16)
IL_06B4: box System.UInt16
IL_06B9: stelem.ref
IL_06BA: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_06BF: stloc.s 12 (System.String)
IL_06C1: ldloc.s 20 (VehicleInfo)
IL_06C3: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_06C8: ldloc.s 9 (System.UInt16)
IL_06CA: ldloc.s 19 (VehicleManager)
IL_06CC: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_06D1: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_06D6: ldloc.s 9 (System.UInt16)
IL_06D8: ldelema VehicleParked
IL_06DD: callvirt virtual System.String VehicleAI::GetDebugString(System.UInt16
parkedVehicleID, VehicleParked& data)
IL_06E2: stloc.s 21 (System.String)
IL_06E4: ldloc.s 21 (System.String)
IL_06E6: brfalse => Label73
IL_06EB: ldloc.s 12 (System.String)
IL_06ED: ldstr "\n"
IL_06F2: ldloc.s 21 (System.String)
IL_06F4: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_06F9: stloc.s 12 (System.String)
IL_06FB: Label71
IL_06FB: Label72
IL_06FB: Label73
IL_06FB: br => Label74
IL_0700: Label70
IL_0700: ldloc.s 10 (System.UInt16)
IL_0702: brfalse => Label75
IL_0707: call static CitizenManager
ColossalFramework.Singleton`1<CitizenManager>::get_instance()
IL_070C: stloc.s 22 (CitizenManager)
IL_070E: ldloc.s 22 (CitizenManager)
IL_0710: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0715: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_071A: ldloc.s 10 (System.UInt16)
IL_071C: ldelema CitizenInstance
IL_0721: ldfld Flags CitizenInstance::m_flags
IL_0726: ldc.i4.1
IL_0727: and
IL_0728: brfalse => Label76
IL_072D: ldloc.s 22 (CitizenManager)
IL_072F: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0734: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0739: ldloc.s 10 (System.UInt16)
IL_073B: ldelema CitizenInstance
IL_0740: call CitizenInfo CitizenInstance::get_Info()
IL_0745: stloc.s 23 (CitizenInfo)
IL_0747: ldloc.s 23 (CitizenInfo)
IL_0749: ldnull
IL_074A: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_074F: brfalse => Label77
IL_0754: ldstr "{0} ({1})"
IL_0759: ldc.i4.2
IL_075A: newarr System.Object
IL_075F: dup
IL_0760: ldc.i4.0
IL_0761: ldloc.s 23 (CitizenInfo)
IL_0763: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_0768: callvirt System.String UnityEngine.Object::get_name()
IL_076D: stelem.ref
IL_076E: dup
IL_076F: ldc.i4.1
IL_0770: ldloc.s 10 (System.UInt16)
IL_0772: box System.UInt16
IL_0777: stelem.ref
IL_0778: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_077D: stloc.s 12 (System.String)
IL_077F: ldloc.s 23 (CitizenInfo)
IL_0781: ldfld CitizenAI CitizenInfo::m_citizenAI
IL_0786: ldloc.s 10 (System.UInt16)
IL_0788: ldloc.s 22 (CitizenManager)
IL_078A: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_078F: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0794: ldloc.s 10 (System.UInt16)
IL_0796: ldelema CitizenInstance
IL_079B: callvirt virtual System.String CitizenAI::GetDebugString(System.UInt16
instanceID, CitizenInstance& data)
IL_07A0: stloc.s 24 (System.String)
IL_07A2: ldloc.s 24 (System.String)
IL_07A4: brfalse => Label78
IL_07A9: ldloc.s 12 (System.String)
IL_07AB: ldstr "\n"
IL_07B0: ldloc.s 24 (System.String)
IL_07B2: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_07B7: stloc.s 12 (System.String)
IL_07B9: Label76
IL_07B9: Label77
IL_07B9: Label78
IL_07B9: br => Label79
IL_07BE: Label75
IL_07BE: ldloc.s 11 (System.UInt16)
IL_07C0: brfalse => Label80
IL_07C5: call static TransportManager
ColossalFramework.Singleton`1<TransportManager>::get_instance()
IL_07CA: stloc.s 25 (TransportManager)
IL_07CC: ldloc.s 25 (TransportManager)
IL_07CE: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_07D3: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_07D8: ldloc.s 11 (System.UInt16)
IL_07DA: ldelema TransportLine
IL_07DF: ldfld Flags TransportLine::m_flags
IL_07E4: ldc.i4.1
IL_07E5: and
IL_07E6: brfalse => Label81
IL_07EB: ldloc.s 25 (TransportManager)
IL_07ED: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_07F2: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_07F7: ldloc.s 11 (System.UInt16)
IL_07F9: ldelema TransportLine
IL_07FE: call TransportInfo TransportLine::get_Info()
IL_0803: stloc.s 26 (TransportInfo)
IL_0805: ldloc.s 26 (TransportInfo)
IL_0807: ldnull
IL_0808: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_080D: brfalse => Label82
IL_0812: ldstr "{0} ({1})"
IL_0817: ldc.i4.2
IL_0818: newarr System.Object
IL_081D: dup
IL_081E: ldc.i4.0
IL_081F: ldloc.s 26 (TransportInfo)
IL_0821: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_0826: callvirt System.String UnityEngine.Object::get_name()
IL_082B: stelem.ref
IL_082C: dup
IL_082D: ldc.i4.1
IL_082E: ldloc.s 11 (System.UInt16)
IL_0830: box System.UInt16
IL_0835: stelem.ref
IL_0836: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_083B: stloc.s 12 (System.String)
IL_083D: ldloc.s 25 (TransportManager)
IL_083F: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_0844: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_0849: ldloc.s 11 (System.UInt16)
IL_084B: ldelema TransportLine
IL_0850: ldloc.s 11 (System.UInt16)
IL_0852: call System.String TransportLine::GetDebugString(System.UInt16
lineID)
IL_0857: stloc.s 27 (System.String)
IL_0859: ldloc.s 27 (System.String)
IL_085B: brfalse => Label83
IL_0860: ldloc.s 12 (System.String)
IL_0862: ldstr "\n"
IL_0867: ldloc.s 27 (System.String)
IL_0869: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_086E: stloc.s 12 (System.String)
IL_0870: Label64
IL_0870: Label69
IL_0870: Label74
IL_0870: Label79
IL_0870: Label80
IL_0870: Label81
IL_0870: Label82
IL_0870: Label83
IL_0870: ldloc.s 12 (System.String)
IL_0872: brfalse => Label84
IL_0877: ldloc.s 6 (InstanceID)
IL_0879: ldloca.s 28 (UnityEngine.Vector3)
IL_087B: ldloca.s 29 (UnityEngine.Quaternion)
IL_087D: ldloca.s 30 (UnityEngine.Vector3)
IL_087F: call static System.Boolean InstanceManager::GetPosition(InstanceID
id, UnityEngine.Vector3& position, UnityEngine.Quaternion& rotation,
UnityEngine.Vector3& size)
IL_0884: brtrue => Label85
IL_0889: ldarg.0
IL_088A: ldfld UnityEngine.Vector3 DefaultTool::m_mousePosition
IL_088F: stloc.s 28 (UnityEngine.Vector3)
IL_0891: Label85
IL_0891: call static UnityEngine.Camera UnityEngine.Camera::get_main()
IL_0896: ldloc.s 28 (UnityEngine.Vector3)
IL_0898: callvirt UnityEngine.Vector3
UnityEngine.Camera::WorldToScreenPoint(UnityEngine.Vector3 position)
IL_089D: stloc.s 31 (UnityEngine.Vector3)
IL_089F: ldloca.s 31 (UnityEngine.Vector3)
IL_08A1: call static System.Int32 UnityEngine.Screen::get_height()
IL_08A6: conv.r4
IL_08A7: ldloca.s 31 (UnityEngine.Vector3)
IL_08A9: ldfld System.Single UnityEngine.Vector3::y
IL_08AE: sub
IL_08AF: stfld System.Single UnityEngine.Vector3::y
IL_08B4: call static UnityEngine.Color UnityEngine.GUI::get_color()
IL_08B9: stloc.s 32 (UnityEngine.Color)
IL_08BB: call static UnityEngine.Color UnityEngine.Color::get_cyan()
IL_08C0: call static System.Void UnityEngine.GUI::set_color(UnityEngine.Color
value)
IL_08C5: ldloca.s 31 (UnityEngine.Vector3)
IL_08C7: ldfld System.Single UnityEngine.Vector3::x
IL_08CC: ldloca.s 31 (UnityEngine.Vector3)
IL_08CE: ldfld System.Single UnityEngine.Vector3::y
IL_08D3: ldc.r4 500
IL_08D8: ldc.r4 500
IL_08DD: newobj System.Void UnityEngine.Rect::.ctor(System.Single x,
System.Single y, System.Single width, System.Single height)
IL_08E2: ldloc.s 12 (System.String)
IL_08E4: call static UnityEngine.Color UnityEngine.Color::get_black()
IL_08E9: call static UnityEngine.Color UnityEngine.Color::get_cyan()
IL_08EE: call static UnityEngine.GUISkin UnityEngine.GUI::get_skin()
IL_08F3: callvirt UnityEngine.GUIStyle UnityEngine.GUISkin::get_label()
IL_08F8: ldc.r4 2
IL_08FD: 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_0902: ldloc.s 32 (UnityEngine.Color)
IL_0904: call static System.Void UnityEngine.GUI::set_color(UnityEngine.Color
value)
IL_0909: // end original
IL_0909: Label57
IL_0909: Label58
IL_0909: Label59
IL_0909: Label84
IL_0909: ret
DONE

### Patch: virtual System.Void DefaultTool::RenderOverlay(CameraInfo cameraInfo)


### Replacement: static System.Void
DefaultTool::DefaultTool.RenderOverlay_Patch0(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<PropManager>::get_instance()
IL_0079: ldfld Array16`1<PropInstance> PropManager::m_props
IL_007E: ldfld PropInstance[] Array16`1<PropInstance>::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<TreeManager>::get_instance()
IL_012C: ldfld Array32`1<TreeInstance> TreeManager::m_trees
IL_0131: ldfld TreeInstance[] Array32`1<TreeInstance>::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<BuildingManager>::get_instance()
IL_01E6: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01EB: ldfld Building[] Array16`1<Building>::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<DisasterManager>::get_instance()
IL_03A3: ldfld FastList`1<DisasterData> DisasterManager::m_disasters
IL_03A8: ldfld DisasterData[] FastList`1<DisasterData>::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<NetManager>::get_instance()
IL_04A6: stloc.s 24 (NetManager)
IL_04A8: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_04AD: stloc.s 25 (BuildingManager)
IL_04AF: ldloc.s 25 (BuildingManager)
IL_04B1: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_04B6: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_04F6: ldfld Building[] Array16`1<Building>::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<NetNode> NetManager::m_nodes
IL_0520: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_0543: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0562: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0582: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_05AA: ldfld NetNode[] Array16`1<NetNode>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_05F6: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0618: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0637: ldfld Building[] Array16`1<Building>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_0693: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06AD: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06C7: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06F2: ldfld Building[] Array16`1<Building>::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<NetNode> NetManager::m_nodes
IL_071C: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_073F: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_075E: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_077F: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_07A9: ldfld NetNode[] Array16`1<NetNode>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_07F5: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0817: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0831: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_084B: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0865: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0890: ldfld Building[] Array16`1<Building>::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<LogChannel>::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<NetManager>::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<RenderManager>::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<NetSegment> NetManager::m_segments
IL_09A8: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_09CC: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_09D1: ldloc.s 45 (NetManager)
IL_09D3: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_09D8: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_0A01: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A06: ldloc.s 45 (NetManager)
IL_0A08: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0A0D: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0A73: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0A92: ldfld NetSegment[] Array16`1<NetSegment>::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<ToolManager>::get_instance()
IL_0C1C: ldflda DrawCallData SimulationManagerBase`2<ToolManager,
ToolController>::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<RenderManager>::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<NetSegment> NetManager::m_segments
IL_0C75: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0C96: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0CF4: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0D18: ldfld NetSegment[] Array16`1<NetSegment>::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<TreeManager>::get_instance()
IL_0D40: stloc.s 67 (TreeManager)
IL_0D42: ldloc.s 67 (TreeManager)
IL_0D44: ldfld Array32`1<TreeInstance> TreeManager::m_trees
IL_0D49: ldfld TreeInstance[] Array32`1<TreeInstance>::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<TreeInstance> TreeManager::m_trees
IL_0D64: ldfld TreeInstance[] Array32`1<TreeInstance>::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<PropManager>::get_instance()
IL_0E07: stloc.s 75 (PropManager)
IL_0E09: ldloc.s 75 (PropManager)
IL_0E0B: ldfld Array16`1<PropInstance> PropManager::m_props
IL_0E10: ldfld PropInstance[] Array16`1<PropInstance>::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<PropInstance> PropManager::m_props
IL_0E2A: ldfld PropInstance[] Array16`1<PropInstance>::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<PropInstance> PropManager::m_props
IL_0E44: ldfld PropInstance[] Array16`1<PropInstance>::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<VehicleManager>::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<Vehicle> VehicleManager::m_vehicles
IL_0F0E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0F38: ldfld Vehicle[] Array16`1<Vehicle>::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<VehicleManager>::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<VehicleParked> VehicleManager::m_parkedVehicles
IL_0F87: ldfld VehicleParked[] Array16`1<VehicleParked>::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<VehicleParked> VehicleManager::m_parkedVehicles
IL_0FB1: ldfld VehicleParked[] Array16`1<VehicleParked>::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<CitizenManager>::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<CitizenInstance> CitizenManager::m_instances
IL_1000: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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<CitizenInstance> CitizenManager::m_instances
IL_102A: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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<InfoManager>::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<DistrictManager>::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<InfoManager>::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<DistrictManager>::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<DisasterManager>::get_instance()
IL_1129: stloc.s 104 (DisasterManager)
IL_112B: ldloc.s 104 (DisasterManager)
IL_112D: ldfld FastList`1<DisasterData> DisasterManager::m_disasters
IL_1132: ldfld DisasterData[] FastList`1<DisasterData>::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<DisasterData> DisasterManager::m_disasters
IL_114C: ldfld DisasterData[] FastList`1<DisasterData>::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<DisasterData> DisasterManager::m_disasters
IL_1166: ldfld DisasterData[] FastList`1<DisasterData>::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: ret
DONE

### Patch: System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen)


### Replacement: static System.Void
CitizenManager::CitizenManager.ReleaseCitizen_Patch0(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<Citizen> CitizenManager::m_citizens
IL_0008: ldfld Citizen[] Array32`1<Citizen>::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: ret
DONE

### Patch: System.Void CitizenManager::ReleaseCitizenInstance(System.UInt16


instance)
### Replacement: static System.Void
CitizenManager::CitizenManager.ReleaseCitizenInstance_Patch0(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<CitizenInstance> CitizenManager::m_instances
IL_0008: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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: ret
DONE

### 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<NetManager>::get_instance()
IL_0010: stloc.0
IL_0011: ldloc.0
IL_0012: ldfld FastList`1<System.UInt16> NetManager::m_tempNodeBuffer
IL_0017: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_001C: ldloc.0
IL_001D: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_0022: callvirt System.Void FastList`1<System.UInt16>::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<System.UInt16> 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<System.UInt16> 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<System.UInt16> 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<System.UInt16>::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<NodePosition> 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<NodePosition> 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<System.UInt16> NetManager::m_tempNodeBuffer
IL_022C: ldloc.s 9 (System.UInt16)
IL_022E: callvirt System.Void FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_0268: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_02AC: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16> 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<System.UInt16> 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<NodePosition> 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<NodePosition> 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<System.UInt16> NetManager::m_tempNodeBuffer
IL_056B: ldloc.s 20 (System.UInt16)
IL_056D: callvirt System.Void FastList`1<System.UInt16>::Add(System.UInt16 item)
IL_0572: ldloc.0
IL_0573: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_0578: ldloc.s 21 (System.UInt16)
IL_057A: callvirt System.Void FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_05B6: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_05FC: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_0646: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_067B: ldfld NetSegment[] Array16`1<NetSegment>::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<System.UInt16> NetManager::m_tempNodeBuffer
IL_06D4: ldfld System.UInt16[] FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_06E4: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_071D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_073E: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_075D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0788: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16> NetManager::m_tempNodeBuffer
IL_07C2: ldfld System.Int32 FastList`1<System.UInt16>::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<System.UInt16> NetManager::m_tempSegmentBuffer
IL_07DA: ldfld System.UInt16[] FastList`1<System.UInt16>::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<NetSegment> NetManager::m_segments
IL_07EA: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_080F: ldfld NetSegment[] Array16`1<NetSegment>::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<ToolManager>::get_instance()
IL_083B: ldfld ToolController SimulationManagerBase`2<ToolManager,
ToolController>::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<NetSegment> NetManager::m_segments
IL_0852: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0879: ldfld NetSegment[] Array16`1<NetSegment>::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<System.UInt16> NetManager::m_tempSegmentBuffer
IL_08A9: ldfld System.Int32 FastList`1<System.UInt16>::m_size
IL_08AE: blt => Label60
IL_08B3: ldloc.0
IL_08B4: ldfld FastList`1<System.UInt16> NetManager::m_tempNodeBuffer
IL_08B9: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_08BE: ldloc.0
IL_08BF: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_08C4: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_08C9: // end original
IL_08C9: Label0
IL_08C9: ret
DONE

### Harmony id=de.viathinksoft.tmpe, version=2.0.1.0, location=E:\Games\data-


0000000016F5EE20, env/clr=2.0.50727.1433, platform=Win32NT,
ptrsize:runtime/env=8/Bits64, Windows
### Started from System.Void TrafficManager.Patcher::Install(), location E:\Games\
data-0000000017B22040
### At 2022-11-05 01.43.57
### 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<Vehicle> VehicleManager::m_vehicles
IL_0042: ldloca.s 0 (System.UInt16)
IL_0044: ldarg.2
IL_0045: callvirt System.Boolean Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0066: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_007E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_009D: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_00C4: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_00E4: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_00FC: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0114: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_012C: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0144: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_015C: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0178: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0194: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_01B0: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_01CC: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_01E4: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_01FC: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0216: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_022E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0246: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_025E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0276: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_028E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_02A6: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_02BE: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_02D6: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_02EE: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0306: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_031E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0336: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_034E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0366: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_037E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0396: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_03AE: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_03C6: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_03DE: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_03F6: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_040E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_042E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_044D: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0452: ldarg.1
IL_0453: ldind.u2
IL_0454: ldelema Vehicle
IL_0459: ldarg.0
IL_045A: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_045F: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_047C: callvirt System.UInt32 Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0012: ldfld Vehicle[] Array16`1<Vehicle>::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<NetSegment> NetManager::m_segments
IL_0030: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0047: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_0006: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0021: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_00CD: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_00F3: ldfld NetSegment[] Array16`1<NetSegment>::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<LogChannel>::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 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.Int32
IL_0000: Local var 38: System.UInt16
IL_0000: Local var 39: RoadBaseAI/TrafficLightState
IL_0000: Local var 40: RoadBaseAI/TrafficLightState
IL_0000: Local var 41: UnityEngine.Vector3
IL_0000: Local var 42: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 42 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 42 (System.Boolean)
IL_000E: ldloc 42 (System.Boolean)
IL_0012: brfalse => Label1
IL_0017: ldnull
IL_0018: ldarg 0
IL_001C: ldarg 1
IL_0020: call static System.Boolean
TrafficManager.Patch._TrainTrackBase.LevelCrossingSimulationStepPatch::Prefix(Train
TrackBaseAI __instance, System.UInt16 nodeID, NetNode& data)
IL_0025: stloc 42 (System.Boolean)
IL_0029: Label1
IL_0029: nop
IL_002A: ldloc 42 (System.Boolean)
IL_002E: brfalse => Label0
IL_0033: // start original
IL_0033: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0038: stloc.0
IL_0039: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_003E: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0043: stloc.1
IL_0044: ldarg.1
IL_0045: ldfld System.Byte NetNode::m_maxWaitTime
IL_004A: ldc.i4.3
IL_004B: and
IL_004C: stloc.2
IL_004D: ldarg.1
IL_004E: ldfld System.Byte NetNode::m_maxWaitTime
IL_0053: ldc.i4.2
IL_0054: shr
IL_0055: ldc.i4.7
IL_0056: and
IL_0057: stloc.3
IL_0058: ldarg.1
IL_0059: ldfld System.Byte NetNode::m_maxWaitTime
IL_005E: ldc.i4.5
IL_005F: shr
IL_0060: stloc.s 4 (System.Int32)
IL_0062: ldc.i4.m1
IL_0063: stloc.s 5 (System.Int32)
IL_0065: ldc.i4.m1
IL_0066: stloc.s 6 (System.Int32)
IL_0068: ldc.i4.m1
IL_0069: stloc.s 7 (System.Int32)
IL_006B: ldc.i4.m1
IL_006C: stloc.s 8 (System.Int32)
IL_006E: ldc.i4.m1
IL_006F: stloc.s 9 (System.Int32)
IL_0071: ldc.i4.m1
IL_0072: stloc.s 10 (System.Int32)
IL_0074: ldc.i4.0
IL_0075: stloc.s 11 (System.Int32)
IL_0077: ldc.i4.0
IL_0078: stloc.s 12 (System.Int32)
IL_007A: ldc.i4.0
IL_007B: stloc.s 13 (System.Int32)
IL_007D: ldc.i4.0
IL_007E: stloc.s 14 (System.Int32)
IL_0080: ldc.i4.0
IL_0081: stloc.s 15 (System.Int32)
IL_0083: ldc.i4.0
IL_0084: stloc.s 16 (System.Int32)
IL_0086: br => Label2
IL_008B: Label24
IL_008B: ldarg.1
IL_008C: ldloc.s 16 (System.Int32)
IL_008E: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0093: stloc.s 17 (System.UInt16)
IL_0095: ldloc.s 17 (System.UInt16)
IL_0097: brfalse => Label3
IL_009C: ldc.i4.0
IL_009D: stloc.s 18 (System.Int32)
IL_009F: ldc.i4.0
IL_00A0: stloc.s 19 (System.Int32)
IL_00A2: ldloc.0
IL_00A3: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_00A8: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00AD: ldloc.s 17 (System.UInt16)
IL_00AF: ldelema NetSegment
IL_00B4: ldloc.s 17 (System.UInt16)
IL_00B6: ldc.i4.s 33
IL_00B8: ldc.i4 65601
IL_00BD: ldloca.s 18 (System.Int32)
IL_00BF: ldloca.s 19 (System.Int32)
IL_00C1: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_00C6: ldloc.0
IL_00C7: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_00CC: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00D1: ldloc.s 17 (System.UInt16)
IL_00D3: ldelema NetSegment
IL_00D8: ldfld System.UInt16 NetSegment::m_startNode
IL_00DD: ldarg.0
IL_00DE: ceq
IL_00E0: stloc.s 20 (System.Boolean)
IL_00E2: ldloc.s 20 (System.Boolean)
IL_00E4: brfalse => Label4
IL_00E9: ldloc.s 19 (System.Int32)
IL_00EB: ldc.i4.0
IL_00EC: ceq
IL_00EE: ldc.i4.0
IL_00EF: ceq
IL_00F1: br => Label5
IL_00F6: Label4
IL_00F6: ldloc.s 18 (System.Int32)
IL_00F8: ldc.i4.0
IL_00F9: ceq
IL_00FB: ldc.i4.0
IL_00FC: ceq
IL_00FE: Label5
IL_00FE: stloc.s 21 (System.Boolean)
IL_0100: ldloc.s 20 (System.Boolean)
IL_0102: brfalse => Label6
IL_0107: ldloc.s 18 (System.Int32)
IL_0109: ldc.i4.0
IL_010A: ceq
IL_010C: ldc.i4.0
IL_010D: ceq
IL_010F: br => Label7
IL_0114: Label6
IL_0114: ldloc.s 19 (System.Int32)
IL_0116: ldc.i4.0
IL_0117: ceq
IL_0119: ldc.i4.0
IL_011A: ceq
IL_011C: Label7
IL_011C: stloc.s 22 (System.Boolean)
IL_011E: ldloc.s 21 (System.Boolean)
IL_0120: brfalse => Label8
IL_0125: ldloc.s 11 (System.Int32)
IL_0127: ldc.i4.1
IL_0128: ldloc.s 16 (System.Int32)
IL_012A: ldc.i4.s 31
IL_012C: and
IL_012D: shl
IL_012E: or
IL_012F: stloc.s 11 (System.Int32)
IL_0131: Label8
IL_0131: ldloc.s 22 (System.Boolean)
IL_0133: brfalse => Label9
IL_0138: ldloc.s 12 (System.Int32)
IL_013A: ldc.i4.1
IL_013B: ldloc.s 16 (System.Int32)
IL_013D: ldc.i4.s 31
IL_013F: and
IL_0140: shl
IL_0141: or
IL_0142: stloc.s 12 (System.Int32)
IL_0144: ldloc.s 14 (System.Int32)
IL_0146: ldc.i4.1
IL_0147: add
IL_0148: stloc.s 14 (System.Int32)
IL_014A: Label9
IL_014A: ldarg.0
IL_014B: ldloc.0
IL_014C: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0151: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0156: ldloc.s 17 (System.UInt16)
IL_0158: ldelema NetSegment
IL_015D: ldloc.1
IL_015E: ldc.i4 256
IL_0163: sub
IL_0164: ldloca.s 23 (RoadBaseAI+TrafficLightState)
IL_0166: ldloca.s 24 (RoadBaseAI+TrafficLightState)
IL_0168: ldloca.s 25 (System.Boolean)
IL_016A: ldloca.s 26 (System.Boolean)
IL_016C: 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_0171: ldloc.s 24 (RoadBaseAI+TrafficLightState)
IL_0173: ldc.i4.2
IL_0174: and
IL_0175: brfalse => Label10
IL_017A: ldloc.s 26 (System.Boolean)
IL_017C: brfalse => Label11
IL_0181: ldloc.s 8 (System.Int32)
IL_0183: ldc.i4.m1
IL_0184: bne.un => Label12
IL_0189: ldloc.s 16 (System.Int32)
IL_018B: stloc.s 8 (System.Int32)
IL_018D: Label12
IL_018D: ldloc.s 10 (System.Int32)
IL_018F: ldc.i4.m1
IL_0190: bne.un => Label13
IL_0195: ldloc.s 15 (System.Int32)
IL_0197: ldloc.s 4 (System.Int32)
IL_0199: blt => Label14
IL_019E: ldloc.s 16 (System.Int32)
IL_01A0: stloc.s 10 (System.Int32)
IL_01A2: Label10
IL_01A2: Label11
IL_01A2: Label13
IL_01A2: Label14
IL_01A2: ldloc.s 15 (System.Int32)
IL_01A4: ldc.i4.1
IL_01A5: add
IL_01A6: stloc.s 15 (System.Int32)
IL_01A8: ldloc.s 21 (System.Boolean)
IL_01AA: brtrue => Label15
IL_01AF: ldloc.s 25 (System.Boolean)
IL_01B1: brfalse => Label16
IL_01B6: Label15
IL_01B6: ldloc.s 23 (RoadBaseAI+TrafficLightState)
IL_01B8: ldc.i4.2
IL_01B9: and
IL_01BA: brtrue => Label17
IL_01BF: ldloc.s 16 (System.Int32)
IL_01C1: stloc.s 6 (System.Int32)
IL_01C3: ldloc.s 25 (System.Boolean)
IL_01C5: brfalse => Label18
IL_01CA: ldloc.s 16 (System.Int32)
IL_01CC: stloc.s 5 (System.Int32)
IL_01CE: Label18
IL_01CE: br => Label19
IL_01D3: Label17
IL_01D3: ldloc.s 25 (System.Boolean)
IL_01D5: brfalse => Label20
IL_01DA: ldloc.s 7 (System.Int32)
IL_01DC: ldc.i4.m1
IL_01DD: bne.un => Label21
IL_01E2: ldloc.s 16 (System.Int32)
IL_01E4: stloc.s 7 (System.Int32)
IL_01E6: Label21
IL_01E6: ldloc.s 9 (System.Int32)
IL_01E8: ldc.i4.m1
IL_01E9: bne.un => Label22
IL_01EE: ldloc.s 13 (System.Int32)
IL_01F0: ldloc.3
IL_01F1: blt => Label23
IL_01F6: ldloc.s 16 (System.Int32)
IL_01F8: stloc.s 9 (System.Int32)
IL_01FA: Label19
IL_01FA: Label20
IL_01FA: Label22
IL_01FA: Label23
IL_01FA: ldloc.s 13 (System.Int32)
IL_01FC: ldc.i4.1
IL_01FD: add
IL_01FE: stloc.s 13 (System.Int32)
IL_0200: Label3
IL_0200: Label16
IL_0200: ldloc.s 16 (System.Int32)
IL_0202: ldc.i4.1
IL_0203: add
IL_0204: stloc.s 16 (System.Int32)
IL_0206: Label2
IL_0206: ldloc.s 16 (System.Int32)
IL_0208: ldc.i4.8
IL_0209: blt => Label24
IL_020E: ldloc.s 9 (System.Int32)
IL_0210: ldc.i4.m1
IL_0211: bne.un => Label25
IL_0216: ldloc.s 7 (System.Int32)
IL_0218: stloc.s 9 (System.Int32)
IL_021A: Label25
IL_021A: ldloc.s 10 (System.Int32)
IL_021C: ldc.i4.m1
IL_021D: bne.un => Label26
IL_0222: ldloc.s 8 (System.Int32)
IL_0224: stloc.s 10 (System.Int32)
IL_0226: Label26
IL_0226: ldloc.s 6 (System.Int32)
IL_0228: ldc.i4.m1
IL_0229: beq => Label27
IL_022E: ldloc.s 5 (System.Int32)
IL_0230: ldc.i4.m1
IL_0231: beq => Label28
IL_0236: ldloc.2
IL_0237: ldc.i4.1
IL_0238: bgt => Label29
IL_023D: ldc.i4.m1
IL_023E: stloc.s 9 (System.Int32)
IL_0240: ldc.i4.m1
IL_0241: stloc.s 10 (System.Int32)
IL_0243: ldloc.2
IL_0244: ldc.i4.1
IL_0245: add
IL_0246: stloc.2
IL_0247: Label27
IL_0247: Label28
IL_0247: Label29
IL_0247: ldloc.s 10 (System.Int32)
IL_0249: ldc.i4.m1
IL_024A: beq => Label30
IL_024F: ldloc.s 9 (System.Int32)
IL_0251: ldc.i4.m1
IL_0252: beq => Label31
IL_0257: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_025C: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0261: ldc.i4.3
IL_0262: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0267: brfalse => Label32
IL_026C: ldc.i4.m1
IL_026D: stloc.s 10 (System.Int32)
IL_026F: Label30
IL_026F: Label31
IL_026F: Label32
IL_026F: ldloc.s 9 (System.Int32)
IL_0271: ldc.i4.m1
IL_0272: beq => Label33
IL_0277: ldloc.s 9 (System.Int32)
IL_0279: stloc.s 6 (System.Int32)
IL_027B: Label33
IL_027B: ldloc.s 10 (System.Int32)
IL_027D: ldloc.s 6 (System.Int32)
IL_027F: bne.un => Label34
IL_0284: ldc.i4.m1
IL_0285: stloc.s 6 (System.Int32)
IL_0287: Label34
IL_0287: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_028C: stloc.s 27 (UnityEngine.Vector3)
IL_028E: ldloc.s 10 (System.Int32)
IL_0290: ldc.i4.m1
IL_0291: beq => Label35
IL_0296: ldarg.1
IL_0297: ldloc.s 10 (System.Int32)
IL_0299: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_029E: stloc.s 28 (System.UInt16)
IL_02A0: ldloc.0
IL_02A1: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02A6: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02AB: ldloc.s 28 (System.UInt16)
IL_02AD: ldelema NetSegment
IL_02B2: ldarg.0
IL_02B3: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_02B8: stloc.s 27 (UnityEngine.Vector3)
IL_02BA: ldloc.s 6 (System.Int32)
IL_02BC: ldc.i4.m1
IL_02BD: beq => Label36
IL_02C2: ldarg.1
IL_02C3: ldloc.s 6 (System.Int32)
IL_02C5: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_02CA: stloc.s 28 (System.UInt16)
IL_02CC: ldloc.0
IL_02CD: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02D2: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02D7: ldloc.s 28 (System.UInt16)
IL_02D9: ldelema NetSegment
IL_02DE: ldarg.0
IL_02DF: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_02E4: stloc.s 29 (UnityEngine.Vector3)
IL_02E6: ldloca.s 29 (UnityEngine.Vector3)
IL_02E8: ldfld System.Single UnityEngine.Vector3::x
IL_02ED: ldloca.s 27 (UnityEngine.Vector3)
IL_02EF: ldfld System.Single UnityEngine.Vector3::x
IL_02F4: mul
IL_02F5: ldloca.s 29 (UnityEngine.Vector3)
IL_02F7: ldfld System.Single UnityEngine.Vector3::z
IL_02FC: ldloca.s 27 (UnityEngine.Vector3)
IL_02FE: ldfld System.Single UnityEngine.Vector3::z
IL_0303: mul
IL_0304: add
IL_0305: ldc.r4 -0.5
IL_030A: bge.un => Label37
IL_030F: ldc.i4.m1
IL_0310: stloc.s 6 (System.Int32)
IL_0312: Label36
IL_0312: Label37
IL_0312: ldloc.s 6 (System.Int32)
IL_0314: ldc.i4.m1
IL_0315: bne.un => Label38
IL_031A: ldc.i4.0
IL_031B: stloc.s 30 (System.Int32)
IL_031D: br => Label39
IL_0322: Label45
IL_0322: ldloc.s 30 (System.Int32)
IL_0324: ldloc.s 10 (System.Int32)
IL_0326: beq => Label40
IL_032B: ldloc.s 11 (System.Int32)
IL_032D: ldc.i4.1
IL_032E: ldloc.s 30 (System.Int32)
IL_0330: ldc.i4.s 31
IL_0332: and
IL_0333: shl
IL_0334: and
IL_0335: brfalse => Label41
IL_033A: ldarg.1
IL_033B: ldloc.s 30 (System.Int32)
IL_033D: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0342: stloc.s 28 (System.UInt16)
IL_0344: ldloc.s 28 (System.UInt16)
IL_0346: brfalse => Label42
IL_034B: ldloc.0
IL_034C: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0351: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0356: ldloc.s 28 (System.UInt16)
IL_0358: ldelema NetSegment
IL_035D: ldarg.0
IL_035E: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0363: stloc.s 31 (UnityEngine.Vector3)
IL_0365: ldloca.s 31 (UnityEngine.Vector3)
IL_0367: ldfld System.Single UnityEngine.Vector3::x
IL_036C: ldloca.s 27 (UnityEngine.Vector3)
IL_036E: ldfld System.Single UnityEngine.Vector3::x
IL_0373: mul
IL_0374: ldloca.s 31 (UnityEngine.Vector3)
IL_0376: ldfld System.Single UnityEngine.Vector3::z
IL_037B: ldloca.s 27 (UnityEngine.Vector3)
IL_037D: ldfld System.Single UnityEngine.Vector3::z
IL_0382: mul
IL_0383: add
IL_0384: ldc.r4 -0.5
IL_0389: blt.un => Label43
IL_038E: ldloc.s 30 (System.Int32)
IL_0390: stloc.s 6 (System.Int32)
IL_0392: br => Label44
IL_0397: Label40
IL_0397: Label41
IL_0397: Label42
IL_0397: Label43
IL_0397: ldloc.s 30 (System.Int32)
IL_0399: ldc.i4.1
IL_039A: add
IL_039B: stloc.s 30 (System.Int32)
IL_039D: Label39
IL_039D: ldloc.s 30 (System.Int32)
IL_039F: ldc.i4.8
IL_03A0: blt => Label45
IL_03A5: Label35
IL_03A5: Label38
IL_03A5: Label44
IL_03A5: ldc.i4.m1
IL_03A6: stloc.s 32 (System.Int32)
IL_03A8: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_03AD: stloc.s 33 (UnityEngine.Vector3)
IL_03AF: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_03B4: stloc.s 34 (UnityEngine.Vector3)
IL_03B6: ldloc.s 6 (System.Int32)
IL_03B8: ldc.i4.m1
IL_03B9: beq => Label46
IL_03BE: ldarg.1
IL_03BF: ldloc.s 6 (System.Int32)
IL_03C1: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_03C6: stloc.s 35 (System.UInt16)
IL_03C8: ldloc.0
IL_03C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_03CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_03D3: ldloc.s 35 (System.UInt16)
IL_03D5: ldelema NetSegment
IL_03DA: ldarg.0
IL_03DB: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_03E0: stloc.s 33 (UnityEngine.Vector3)
IL_03E2: ldloc.s 11 (System.Int32)
IL_03E4: ldloc.s 12 (System.Int32)
IL_03E6: and
IL_03E7: ldc.i4.1
IL_03E8: ldloc.s 6 (System.Int32)
IL_03EA: ldc.i4.s 31
IL_03EC: and
IL_03ED: shl
IL_03EE: and
IL_03EF: brfalse => Label47
IL_03F4: ldc.i4.0
IL_03F5: stloc.s 36 (System.Int32)
IL_03F7: br => Label48
IL_03FC: Label59
IL_03FC: ldloc.s 36 (System.Int32)
IL_03FE: ldloc.s 6 (System.Int32)
IL_0400: beq => Label49
IL_0405: ldloc.s 36 (System.Int32)
IL_0407: ldloc.s 10 (System.Int32)
IL_0409: beq => Label50
IL_040E: ldloc.s 11 (System.Int32)
IL_0410: ldloc.s 12 (System.Int32)
IL_0412: and
IL_0413: ldc.i4.1
IL_0414: ldloc.s 36 (System.Int32)
IL_0416: ldc.i4.s 31
IL_0418: and
IL_0419: shl
IL_041A: and
IL_041B: brfalse => Label51
IL_0420: ldarg.1
IL_0421: ldloc.s 36 (System.Int32)
IL_0423: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0428: stloc.s 35 (System.UInt16)
IL_042A: ldloc.s 35 (System.UInt16)
IL_042C: brfalse => Label52
IL_0431: ldloc.0
IL_0432: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0437: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_043C: ldloc.s 35 (System.UInt16)
IL_043E: ldelema NetSegment
IL_0443: ldarg.0
IL_0444: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0449: stloc.s 34 (UnityEngine.Vector3)
IL_044B: ldloc.s 10 (System.Int32)
IL_044D: ldc.i4.m1
IL_044E: beq => Label53
IL_0453: ldloca.s 34 (UnityEngine.Vector3)
IL_0455: ldfld System.Single UnityEngine.Vector3::x
IL_045A: ldloca.s 27 (UnityEngine.Vector3)
IL_045C: ldfld System.Single UnityEngine.Vector3::x
IL_0461: mul
IL_0462: ldloca.s 34 (UnityEngine.Vector3)
IL_0464: ldfld System.Single UnityEngine.Vector3::z
IL_0469: ldloca.s 27 (UnityEngine.Vector3)
IL_046B: ldfld System.Single UnityEngine.Vector3::z
IL_0470: mul
IL_0471: add
IL_0472: ldc.r4 -0.5
IL_0477: blt.un => Label54
IL_047C: Label53
IL_047C: ldloc.s 14 (System.Int32)
IL_047E: ldc.i4.2
IL_047F: bne.un => Label55
IL_0484: ldloc.s 36 (System.Int32)
IL_0486: stloc.s 32 (System.Int32)
IL_0488: br => Label56
IL_048D: Label55
IL_048D: ldloca.s 34 (UnityEngine.Vector3)
IL_048F: ldfld System.Single UnityEngine.Vector3::x
IL_0494: ldloca.s 33 (UnityEngine.Vector3)
IL_0496: ldfld System.Single UnityEngine.Vector3::x
IL_049B: mul
IL_049C: ldloca.s 34 (UnityEngine.Vector3)
IL_049E: ldfld System.Single UnityEngine.Vector3::z
IL_04A3: ldloca.s 33 (UnityEngine.Vector3)
IL_04A5: ldfld System.Single UnityEngine.Vector3::z
IL_04AA: mul
IL_04AB: add
IL_04AC: ldc.r4 -0.9396926
IL_04B1: bge.un => Label57
IL_04B6: ldloc.s 36 (System.Int32)
IL_04B8: stloc.s 32 (System.Int32)
IL_04BA: br => Label58
IL_04BF: Label49
IL_04BF: Label50
IL_04BF: Label51
IL_04BF: Label52
IL_04BF: Label54
IL_04BF: Label57
IL_04BF: ldloc.s 36 (System.Int32)
IL_04C1: ldc.i4.1
IL_04C2: add
IL_04C3: stloc.s 36 (System.Int32)
IL_04C5: Label48
IL_04C5: ldloc.s 36 (System.Int32)
IL_04C7: ldc.i4.8
IL_04C8: blt => Label59
IL_04CD: Label46
IL_04CD: Label47
IL_04CD: Label56
IL_04CD: Label58
IL_04CD: ldc.i4.0
IL_04CE: stloc.s 37 (System.Int32)
IL_04D0: br => Label60
IL_04D5: Label79
IL_04D5: ldarg.1
IL_04D6: ldloc.s 37 (System.Int32)
IL_04D8: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_04DD: stloc.s 38 (System.UInt16)
IL_04DF: ldloc.s 38 (System.UInt16)
IL_04E1: brfalse => Label61
IL_04E6: ldarg.0
IL_04E7: ldloc.0
IL_04E8: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_04ED: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_04F2: ldloc.s 38 (System.UInt16)
IL_04F4: ldelema NetSegment
IL_04F9: ldloc.1
IL_04FA: ldc.i4 256
IL_04FF: sub
IL_0500: ldloca.s 39 (RoadBaseAI+TrafficLightState)
IL_0502: ldloca.s 40 (RoadBaseAI+TrafficLightState)
IL_0504: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_0509: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_050B: ldc.i4.s -2
IL_050D: and
IL_050E: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0510: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0512: ldc.i4.s -2
IL_0514: and
IL_0515: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0517: ldloc.s 6 (System.Int32)
IL_0519: ldloc.s 37 (System.Int32)
IL_051B: beq => Label62
IL_0520: ldloc.s 32 (System.Int32)
IL_0522: ldloc.s 37 (System.Int32)
IL_0524: bne.un => Label63
IL_0529: Label62
IL_0529: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_052B: ldc.i4.2
IL_052C: and
IL_052D: brfalse => Label64
IL_0532: ldc.i4.1
IL_0533: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0535: ldc.i4.0
IL_0536: stloc.2
IL_0537: ldloc.3
IL_0538: ldc.i4.1
IL_0539: add
IL_053A: dup
IL_053B: stloc.3
IL_053C: ldloc.s 13 (System.Int32)
IL_053E: blt => Label65
IL_0543: ldc.i4.0
IL_0544: stloc.3
IL_0545: Label64
IL_0545: Label65
IL_0545: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0547: ldc.i4.2
IL_0548: and
IL_0549: brtrue => Label66
IL_054E: ldc.i4.3
IL_054F: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0551: Label66
IL_0551: br => Label67
IL_0556: Label63
IL_0556: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0558: ldc.i4.2
IL_0559: and
IL_055A: brtrue => Label68
IL_055F: ldc.i4.3
IL_0560: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0562: Label68
IL_0562: ldloc.0
IL_0563: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0568: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_056D: ldloc.s 38 (System.UInt16)
IL_056F: ldelema NetSegment
IL_0574: ldarg.0
IL_0575: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_057A: stloc.s 41 (UnityEngine.Vector3)
IL_057C: ldloc.s 12 (System.Int32)
IL_057E: ldc.i4.1
IL_057F: ldloc.s 37 (System.Int32)
IL_0581: ldc.i4.s 31
IL_0583: and
IL_0584: shl
IL_0585: and
IL_0586: brfalse => Label69
IL_058B: ldloc.s 10 (System.Int32)
IL_058D: ldloc.s 37 (System.Int32)
IL_058F: beq => Label70
IL_0594: ldloc.s 6 (System.Int32)
IL_0596: ldc.i4.m1
IL_0597: beq => Label71
IL_059C: ldloca.s 41 (UnityEngine.Vector3)
IL_059E: ldfld System.Single UnityEngine.Vector3::x
IL_05A3: ldloca.s 33 (UnityEngine.Vector3)
IL_05A5: ldfld System.Single UnityEngine.Vector3::x
IL_05AA: mul
IL_05AB: ldloca.s 41 (UnityEngine.Vector3)
IL_05AD: ldfld System.Single UnityEngine.Vector3::z
IL_05B2: ldloca.s 33 (UnityEngine.Vector3)
IL_05B4: ldfld System.Single UnityEngine.Vector3::z
IL_05B9: mul
IL_05BA: add
IL_05BB: ldc.r4 -0.5
IL_05C0: blt => Label72
IL_05C5: Label71
IL_05C5: ldloc.s 32 (System.Int32)
IL_05C7: ldc.i4.m1
IL_05C8: beq => Label73
IL_05CD: ldloca.s 41 (UnityEngine.Vector3)
IL_05CF: ldfld System.Single UnityEngine.Vector3::x
IL_05D4: ldloca.s 34 (UnityEngine.Vector3)
IL_05D6: ldfld System.Single UnityEngine.Vector3::x
IL_05DB: mul
IL_05DC: ldloca.s 41 (UnityEngine.Vector3)
IL_05DE: ldfld System.Single UnityEngine.Vector3::z
IL_05E3: ldloca.s 34 (UnityEngine.Vector3)
IL_05E5: ldfld System.Single UnityEngine.Vector3::z
IL_05EA: mul
IL_05EB: add
IL_05EC: ldc.r4 -0.5
IL_05F1: bge.un => Label74
IL_05F6: Label72
IL_05F6: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05F8: ldc.i4.2
IL_05F9: and
IL_05FA: brtrue => Label75
IL_05FF: ldc.i4.3
IL_0600: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0602: Label75
IL_0602: br => Label76
IL_0607: Label69
IL_0607: Label70
IL_0607: Label73
IL_0607: Label74
IL_0607: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0609: ldc.i4.2
IL_060A: and
IL_060B: brfalse => Label77
IL_0610: ldc.i4.1
IL_0611: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0613: ldloc.s 4 (System.Int32)
IL_0615: ldc.i4.1
IL_0616: add
IL_0617: dup
IL_0618: stloc.s 4 (System.Int32)
IL_061A: ldloc.s 15 (System.Int32)
IL_061C: blt => Label78
IL_0621: ldc.i4.0
IL_0622: stloc.s 4 (System.Int32)
IL_0624: Label67
IL_0624: Label76
IL_0624: Label77
IL_0624: Label78
IL_0624: ldarg.0
IL_0625: ldloc.0
IL_0626: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_062B: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0630: ldloc.s 38 (System.UInt16)
IL_0632: ldelema NetSegment
IL_0637: ldloc.1
IL_0638: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_063A: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_063C: ldc.i4.0
IL_063D: ldc.i4.0
IL_063E: 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_0643: Label61
IL_0643: ldloc.s 37 (System.Int32)
IL_0645: ldc.i4.1
IL_0646: add
IL_0647: stloc.s 37 (System.Int32)
IL_0649: Label60
IL_0649: ldloc.s 37 (System.Int32)
IL_064B: ldc.i4.8
IL_064C: blt => Label79
IL_0651: ldarg.1
IL_0652: ldloc.s 4 (System.Int32)
IL_0654: ldc.i4.5
IL_0655: shl
IL_0656: ldloc.3
IL_0657: ldc.i4.2
IL_0658: shl
IL_0659: or
IL_065A: ldloc.2
IL_065B: or
IL_065C: conv.u1
IL_065D: stfld System.Byte NetNode::m_maxWaitTime
IL_0662: // end original
IL_0662: Label0
IL_0662: ret
DONE

### Patch: static System.Void RoadBaseAI::GetTrafficLightNodeState(System.UInt16


nodeID, NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData, Flags&
flags, UnityEngine.Color& color)
### Replacement: static System.Void
RoadBaseAI::RoadBaseAI.GetTrafficLightNodeState_Patch1(System.UInt16 nodeID,
NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData, Flags& 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.UInt1
6 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<SimulationManager>::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/Problem
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 Problem NetNode::m_problems
IL_000E: ldc.i8 72057602627866624
IL_0017: call static Problem Notification::RemoveProblems(Problem problems1,
Problem problems2)
IL_001C: stloc.0
IL_001D: ldc.i4.0
IL_001E: stloc.1
IL_001F: ldc.i4.0
IL_0020: stloc.2
IL_0021: ldarg.2
IL_0022: ldarg.1
IL_0023: ldc.i4.0
IL_0024: ldc.i4.s 33
IL_0026: ldc.i4.1
IL_0027: ldc.i4.1
IL_0028: ldloca.s 1 (System.Int32)
IL_002A: ldloca.s 2 (System.Int32)
IL_002C: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, LaneType laneTypes, VehicleType vehicleTypes,
System.Boolean onePerSegment, System.Int32& forward, System.Int32& backward)
IL_0031: ldarg.2
IL_0032: ldfld Flags NetNode::m_flags
IL_0037: ldc.i4 1024
IL_003C: and
IL_003D: brfalse => Label0
IL_0042: ldarg.2
IL_0043: ldfld System.UInt16 NetNode::m_building
IL_0048: brfalse => Label1
IL_004D: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0052: stloc.3
IL_0053: ldloc.1
IL_0054: brfalse => Label2
IL_0059: ldloc.3
IL_005A: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_005F: ldfld Building[] Array16`1<Building>::m_buffer
IL_0064: ldarg.2
IL_0065: ldfld System.UInt16 NetNode::m_building
IL_006A: ldelema Building
IL_006F: dup
IL_0070: ldfld Flags Building::m_flags
IL_0075: ldc.i4 128
IL_007A: or
IL_007B: stfld Flags Building::m_flags
IL_0080: br => Label3
IL_0085: Label2
IL_0085: ldloc.3
IL_0086: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008B: ldfld Building[] Array16`1<Building>::m_buffer
IL_0090: ldarg.2
IL_0091: ldfld System.UInt16 NetNode::m_building
IL_0096: ldelema Building
IL_009B: dup
IL_009C: ldfld Flags Building::m_flags
IL_00A1: ldc.i4 -129
IL_00A6: and
IL_00A7: stfld Flags Building::m_flags
IL_00AC: Label3
IL_00AC: ldloc.2
IL_00AD: brfalse => Label4
IL_00B2: ldloc.3
IL_00B3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00B8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00BD: ldarg.2
IL_00BE: ldfld System.UInt16 NetNode::m_building
IL_00C3: ldelema Building
IL_00C8: dup
IL_00C9: ldfld Flags Building::m_flags
IL_00CE: ldc.i4.s 64
IL_00D0: or
IL_00D1: stfld Flags Building::m_flags
IL_00D6: br => Label5
IL_00DB: Label4
IL_00DB: ldloc.3
IL_00DC: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00E1: ldfld Building[] Array16`1<Building>::m_buffer
IL_00E6: ldarg.2
IL_00E7: ldfld System.UInt16 NetNode::m_building
IL_00EC: ldelema Building
IL_00F1: dup
IL_00F2: ldfld Flags Building::m_flags
IL_00F7: ldc.i4.s -65
IL_00F9: and
IL_00FA: stfld Flags Building::m_flags
IL_00FF: Label5
IL_00FF: br => Label6
IL_0104: Label0
IL_0104: Label1
IL_0104: ldloc.1
IL_0105: brfalse => Label7
IL_010A: ldloc.2
IL_010B: brfalse => Label8
IL_0110: Label7
IL_0110: ldloc.1
IL_0111: brtrue => Label9
IL_0116: ldloc.2
IL_0117: brfalse => Label10
IL_011C: Label8
IL_011C: ldloc.0
IL_011D: ldc.i4 4096
IL_0122: conv.i8
IL_0123: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0128: stloc.0
IL_0129: Label6
IL_0129: Label9
IL_0129: Label10
IL_0129: ldloc.1
IL_012A: ldc.i4.1
IL_012B: bne.un => Label11
IL_0130: ldarg.2
IL_0131: dup
IL_0132: ldfld Flags NetNode::m_flags
IL_0137: ldc.i4 4194304
IL_013C: or
IL_013D: stfld Flags NetNode::m_flags
IL_0142: br => Label12
IL_0147: Label11
IL_0147: ldarg.2
IL_0148: dup
IL_0149: ldfld Flags NetNode::m_flags
IL_014E: ldc.i4 -4194305
IL_0153: and
IL_0154: stfld Flags NetNode::m_flags
IL_0159: Label12
IL_0159: ldloc.2
IL_015A: ldc.i4.1
IL_015B: bne.un => Label13
IL_0160: ldarg.2
IL_0161: dup
IL_0162: ldfld Flags NetNode::m_flags
IL_0167: ldc.i4 16777216
IL_016C: or
IL_016D: stfld Flags NetNode::m_flags
IL_0172: br => Label14
IL_0177: Label13
IL_0177: ldarg.2
IL_0178: dup
IL_0179: ldfld Flags NetNode::m_flags
IL_017E: ldc.i4 -16777217
IL_0183: and
IL_0184: stfld Flags NetNode::m_flags
IL_0189: Label14
IL_0189: ldarg.2
IL_018A: ldfld Flags NetNode::m_flags
IL_018F: ldc.i4 262144
IL_0194: and
IL_0195: brtrue => Label15
IL_019A: ldc.i4.0
IL_019B: stloc.s 4 (System.Int32)
IL_019D: ldc.i4.0
IL_019E: stloc.1
IL_019F: ldc.i4.0
IL_01A0: stloc.2
IL_01A1: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_01A6: stloc.s 5 (NetManager)
IL_01A8: ldc.i4.0
IL_01A9: stloc.s 6 (System.Int32)
IL_01AB: br => Label16
IL_01B0: Label24
IL_01B0: ldarg.2
IL_01B1: ldloc.s 6 (System.Int32)
IL_01B3: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_01B8: stloc.s 7 (System.UInt16)
IL_01BA: ldloc.s 7 (System.UInt16)
IL_01BC: brfalse => Label17
IL_01C1: ldc.i4.0
IL_01C2: stloc.s 8 (System.Int32)
IL_01C4: ldc.i4.0
IL_01C5: stloc.s 9 (System.Int32)
IL_01C7: ldloc.s 5 (NetManager)
IL_01C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01D3: ldloc.s 7 (System.UInt16)
IL_01D5: ldelema NetSegment
IL_01DA: ldloc.s 7 (System.UInt16)
IL_01DC: ldc.i4.s 33
IL_01DE: ldc.i4.s 64
IL_01E0: ldloca.s 8 (System.Int32)
IL_01E2: ldloca.s 9 (System.Int32)
IL_01E4: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_01E9: ldloc.s 8 (System.Int32)
IL_01EB: brtrue => Label18
IL_01F0: ldloc.s 9 (System.Int32)
IL_01F2: brfalse => Label19
IL_01F7: Label18
IL_01F7: ldloc.s 4 (System.Int32)
IL_01F9: ldc.i4.1
IL_01FA: add
IL_01FB: stloc.s 4 (System.Int32)
IL_01FD: ldloc.s 8 (System.Int32)
IL_01FF: brfalse => Label20
IL_0204: ldc.i4.1
IL_0205: stloc.s 8 (System.Int32)
IL_0207: Label20
IL_0207: ldloc.s 9 (System.Int32)
IL_0209: brfalse => Label21
IL_020E: ldc.i4.1
IL_020F: stloc.s 9 (System.Int32)
IL_0211: Label21
IL_0211: ldloc.s 5 (NetManager)
IL_0213: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0218: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_021D: ldloc.s 7 (System.UInt16)
IL_021F: ldelema NetSegment
IL_0224: ldfld System.UInt16 NetSegment::m_endNode
IL_0229: ldarg.1
IL_022A: bne.un => Label22
IL_022F: ldloc.1
IL_0230: ldloc.s 9 (System.Int32)
IL_0232: add
IL_0233: stloc.1
IL_0234: ldloc.2
IL_0235: ldloc.s 8 (System.Int32)
IL_0237: add
IL_0238: stloc.2
IL_0239: br => Label23
IL_023E: Label22
IL_023E: ldloc.1
IL_023F: ldloc.s 8 (System.Int32)
IL_0241: add
IL_0242: stloc.1
IL_0243: ldloc.2
IL_0244: ldloc.s 9 (System.Int32)
IL_0246: add
IL_0247: stloc.2
IL_0248: Label17
IL_0248: Label19
IL_0248: Label23
IL_0248: ldloc.s 6 (System.Int32)
IL_024A: ldc.i4.1
IL_024B: add
IL_024C: stloc.s 6 (System.Int32)
IL_024E: Label16
IL_024E: ldloc.s 6 (System.Int32)
IL_0250: ldc.i4.8
IL_0251: blt => Label24
IL_0256: ldloc.1
IL_0257: brfalse => Label25
IL_025C: ldloc.2
IL_025D: brfalse => Label26
IL_0262: Label25
IL_0262: ldloc.1
IL_0263: brtrue => Label27
IL_0268: ldloc.2
IL_0269: brtrue => Label28
IL_026E: Label27
IL_026E: ldloc.s 4 (System.Int32)
IL_0270: ldc.i4.1
IL_0271: bne.un => Label29
IL_0276: Label26
IL_0276: Label28
IL_0276: ldloc.0
IL_0277: ldc.i8 8589934592
IL_0280: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0285: stloc.0
IL_0286: Label29
IL_0286: ldc.i4.0
IL_0287: stloc.s 4 (System.Int32)
IL_0289: ldc.i4.0
IL_028A: stloc.1
IL_028B: ldc.i4.0
IL_028C: stloc.2
IL_028D: ldc.i4.0
IL_028E: stloc.s 10 (System.Int32)
IL_0290: br => Label30
IL_0295: Label38
IL_0295: ldarg.2
IL_0296: ldloc.s 10 (System.Int32)
IL_0298: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_029D: stloc.s 11 (System.UInt16)
IL_029F: ldloc.s 11 (System.UInt16)
IL_02A1: brfalse => Label31
IL_02A6: ldc.i4.0
IL_02A7: stloc.s 12 (System.Int32)
IL_02A9: ldc.i4.0
IL_02AA: stloc.s 13 (System.Int32)
IL_02AC: ldloc.s 5 (NetManager)
IL_02AE: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02B3: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02B8: ldloc.s 11 (System.UInt16)
IL_02BA: ldelema NetSegment
IL_02BF: ldloc.s 11 (System.UInt16)
IL_02C1: ldc.i4.s 33
IL_02C3: ldc.i4 65536
IL_02C8: ldloca.s 12 (System.Int32)
IL_02CA: ldloca.s 13 (System.Int32)
IL_02CC: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_02D1: ldloc.s 12 (System.Int32)
IL_02D3: brtrue => Label32
IL_02D8: ldloc.s 13 (System.Int32)
IL_02DA: brfalse => Label33
IL_02DF: Label32
IL_02DF: ldloc.s 4 (System.Int32)
IL_02E1: ldc.i4.1
IL_02E2: add
IL_02E3: stloc.s 4 (System.Int32)
IL_02E5: ldloc.s 12 (System.Int32)
IL_02E7: brfalse => Label34
IL_02EC: ldc.i4.1
IL_02ED: stloc.s 12 (System.Int32)
IL_02EF: Label34
IL_02EF: ldloc.s 13 (System.Int32)
IL_02F1: brfalse => Label35
IL_02F6: ldc.i4.1
IL_02F7: stloc.s 13 (System.Int32)
IL_02F9: Label35
IL_02F9: ldloc.s 5 (NetManager)
IL_02FB: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0300: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0305: ldloc.s 11 (System.UInt16)
IL_0307: ldelema NetSegment
IL_030C: ldfld System.UInt16 NetSegment::m_endNode
IL_0311: ldarg.1
IL_0312: bne.un => Label36
IL_0317: ldloc.1
IL_0318: ldloc.s 13 (System.Int32)
IL_031A: add
IL_031B: stloc.1
IL_031C: ldloc.2
IL_031D: ldloc.s 12 (System.Int32)
IL_031F: add
IL_0320: stloc.2
IL_0321: br => Label37
IL_0326: Label36
IL_0326: ldloc.1
IL_0327: ldloc.s 12 (System.Int32)
IL_0329: add
IL_032A: stloc.1
IL_032B: ldloc.2
IL_032C: ldloc.s 13 (System.Int32)
IL_032E: add
IL_032F: stloc.2
IL_0330: Label31
IL_0330: Label33
IL_0330: Label37
IL_0330: ldloc.s 10 (System.Int32)
IL_0332: ldc.i4.1
IL_0333: add
IL_0334: stloc.s 10 (System.Int32)
IL_0336: Label30
IL_0336: ldloc.s 10 (System.Int32)
IL_0338: ldc.i4.8
IL_0339: blt => Label38
IL_033E: ldloc.1
IL_033F: brfalse => Label39
IL_0344: ldloc.2
IL_0345: brfalse => Label40
IL_034A: Label39
IL_034A: ldloc.1
IL_034B: brtrue => Label41
IL_0350: ldloc.2
IL_0351: brtrue => Label42
IL_0356: Label41
IL_0356: ldloc.s 4 (System.Int32)
IL_0358: ldc.i4.1
IL_0359: bne.un => Label43
IL_035E: Label40
IL_035E: Label42
IL_035E: ldloc.0
IL_035F: ldc.i8 72057594037927936
IL_0368: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_036D: stloc.0
IL_036E: Label15
IL_036E: Label43
IL_036E: ldarg.2
IL_036F: ldloc.0
IL_0370: stfld Problem NetNode::m_problems
IL_0375: // end original
IL_0375: ldarg 1
IL_0379: ldarg 2
IL_037D: call static System.Void
TrafficManager.Patch._RoadBaseAI.UpdateNodePatch::Postfix(System.UInt16 nodeID,
NetNode& data)
IL_0382: 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<NetManager>::get_instance()
IL_0005: stloc.0
IL_0006: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::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<NetNode> NetManager::m_nodes
IL_0176: ldfld NetNode[] Array16`1<NetNode>::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: ldarg.2
IL_0192: ldfld UnityEngine.Vector3 NetSegment::m_endDirection
IL_0197: call static UnityEngine.Vector3
UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a)
IL_019C: ldloca.s 12 (System.Int32)
IL_019E: ldloca.s 13 (System.Int32)
IL_01A0: ldloca.s 14 (System.Int32)
IL_01A2: ldloca.s 15 (System.Int32)
IL_01A4: ldloca.s 16 (System.Int32)
IL_01A6: ldloca.s 17 (System.Int32)
IL_01A8: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, Direction directions, LaneType laneTypes, VehicleType
vehicleTypes, UnityEngine.Vector3 direction, System.Int32& left, System.Int32&
forward, System.Int32& right, System.Int32& left2, System.Int32& forward2,
System.Int32& right2)
IL_01AD: ldloc.0
IL_01AE: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_01B3: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_01B8: ldarg.2
IL_01B9: ldfld System.UInt16 NetSegment::m_endNode
IL_01BE: ldelema NetNode
IL_01C3: ldfld Flags NetNode::m_flags
IL_01C8: ldc.i4 1136
IL_01CD: and
IL_01CE: brfalse => Label2
IL_01D3: ldloc.s 12 (System.Int32)
IL_01D5: ldloc.s 13 (System.Int32)
IL_01D7: add
IL_01D8: ldloc.s 14 (System.Int32)
IL_01DA: add
IL_01DB: brtrue => Label3
IL_01E0: ldc.i4.1
IL_01E1: stloc.s 19 (System.Boolean)
IL_01E3: br => Label4
IL_01E8: Label3
IL_01E8: ldc.i4.1
IL_01E9: stloc.s 18 (System.Boolean)
IL_01EB: Label2
IL_01EB: Label4
IL_01EB: ldc.i4.0
IL_01EC: stloc.s 20 (System.Int32)
IL_01EE: ldc.i4.0
IL_01EF: stloc.s 21 (System.Int32)
IL_01F1: ldc.i4.0
IL_01F2: stloc.s 22 (System.Int32)
IL_01F4: ldc.i4.0
IL_01F5: stloc.s 23 (System.Int32)
IL_01F7: ldc.i4.0
IL_01F8: stloc.s 24 (System.Int32)
IL_01FA: ldc.i4.0
IL_01FB: stloc.s 25 (System.Int32)
IL_01FD: ldc.i4.0
IL_01FE: stloc.s 26 (System.Boolean)
IL_0200: ldc.i4.0
IL_0201: stloc.s 27 (System.Boolean)
IL_0203: ldloc.0
IL_0204: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0209: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_020E: ldarg.2
IL_020F: ldfld System.UInt16 NetSegment::m_startNode
IL_0214: ldelema NetNode
IL_0219: ldarg.2
IL_021A: ldfld System.UInt16 NetSegment::m_startNode
IL_021F: ldarg.1
IL_0220: ldc.i4.1
IL_0221: ldc.i4.s 33
IL_0223: ldc.i4.1
IL_0224: ldarg.2
IL_0225: ldfld UnityEngine.Vector3 NetSegment::m_startDirection
IL_022A: call static UnityEngine.Vector3
UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a)
IL_022F: ldloca.s 20 (System.Int32)
IL_0231: ldloca.s 21 (System.Int32)
IL_0233: ldloca.s 22 (System.Int32)
IL_0235: ldloca.s 23 (System.Int32)
IL_0237: ldloca.s 24 (System.Int32)
IL_0239: ldloca.s 25 (System.Int32)
IL_023B: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, Direction directions, LaneType laneTypes, VehicleType
vehicleTypes, UnityEngine.Vector3 direction, System.Int32& left, System.Int32&
forward, System.Int32& right, System.Int32& left2, System.Int32& forward2,
System.Int32& right2)
IL_0240: ldloc.0
IL_0241: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0246: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_024B: ldarg.2
IL_024C: ldfld System.UInt16 NetSegment::m_startNode
IL_0251: ldelema NetNode
IL_0256: ldfld Flags NetNode::m_flags
IL_025B: ldc.i4 1136
IL_0260: and
IL_0261: brfalse => Label5
IL_0266: ldloc.s 20 (System.Int32)
IL_0268: ldloc.s 21 (System.Int32)
IL_026A: add
IL_026B: ldloc.s 22 (System.Int32)
IL_026D: add
IL_026E: brtrue => Label6
IL_0273: ldc.i4.1
IL_0274: stloc.s 27 (System.Boolean)
IL_0276: br => Label7
IL_027B: Label6
IL_027B: ldc.i4.1
IL_027C: stloc.s 26 (System.Boolean)
IL_027E: Label5
IL_027E: Label7
IL_027E: ldc.i4.0
IL_027F: stloc.s 28 (NetLane+Flags)
IL_0281: ldloc.s 15 (System.Int32)
IL_0283: brfalse => Label8
IL_0288: ldloc.s 12 (System.Int32)
IL_028A: brtrue => Label9
IL_028F: ldloc.s 28 (NetLane+Flags)
IL_0291: ldarg.2
IL_0292: ldfld Flags NetSegment::m_flags
IL_0297: ldc.i4.s 16
IL_0299: and
IL_029A: brfalse => Label10
IL_029F: ldc.i4 4096
IL_02A4: br => Label11
IL_02A9: Label10
IL_02A9: ldc.i4 16384
IL_02AE: Label11
IL_02AE: or
IL_02AF: stloc.s 28 (NetLane+Flags)
IL_02B1: Label8
IL_02B1: Label9
IL_02B1: ldloc.s 17 (System.Int32)
IL_02B3: brfalse => Label12
IL_02B8: ldloc.s 14 (System.Int32)
IL_02BA: brtrue => Label13
IL_02BF: ldloc.s 28 (NetLane+Flags)
IL_02C1: ldarg.2
IL_02C2: ldfld Flags NetSegment::m_flags
IL_02C7: ldc.i4.s 16
IL_02C9: and
IL_02CA: brfalse => Label14
IL_02CF: ldc.i4 8192
IL_02D4: br => Label15
IL_02D9: Label14
IL_02D9: ldc.i4 32768
IL_02DE: Label15
IL_02DE: or
IL_02DF: stloc.s 28 (NetLane+Flags)
IL_02E1: Label12
IL_02E1: Label13
IL_02E1: ldloc.s 23 (System.Int32)
IL_02E3: brfalse => Label16
IL_02E8: ldloc.s 20 (System.Int32)
IL_02EA: brtrue => Label17
IL_02EF: ldloc.s 28 (NetLane+Flags)
IL_02F1: ldarg.2
IL_02F2: ldfld Flags NetSegment::m_flags
IL_02F7: ldc.i4.s 16
IL_02F9: and
IL_02FA: brfalse => Label18
IL_02FF: ldc.i4 16384
IL_0304: br => Label19
IL_0309: Label18
IL_0309: ldc.i4 4096
IL_030E: Label19
IL_030E: or
IL_030F: stloc.s 28 (NetLane+Flags)
IL_0311: Label16
IL_0311: Label17
IL_0311: ldloc.s 25 (System.Int32)
IL_0313: brfalse => Label20
IL_0318: ldloc.s 22 (System.Int32)
IL_031A: brtrue => Label21
IL_031F: ldloc.s 28 (NetLane+Flags)
IL_0321: ldarg.2
IL_0322: ldfld Flags NetSegment::m_flags
IL_0327: ldc.i4.s 16
IL_0329: and
IL_032A: brfalse => Label22
IL_032F: ldc.i4 32768
IL_0334: br => Label23
IL_0339: Label22
IL_0339: ldc.i4 8192
IL_033E: Label23
IL_033E: or
IL_033F: stloc.s 28 (NetLane+Flags)
IL_0341: Label20
IL_0341: Label21
IL_0341: ldarg.2
IL_0342: ldfld Flags NetSegment::m_flags
IL_0347: ldc.i4 1073741824
IL_034C: and
IL_034D: brfalse => Label24
IL_0352: ldloc.s 28 (NetLane+Flags)
IL_0354: ldarg.2
IL_0355: ldfld Flags NetSegment::m_flags
IL_035A: ldc.i4.s 16
IL_035C: and
IL_035D: brfalse => Label25
IL_0362: ldc.i4 2048
IL_0367: br => Label26
IL_036C: Label25
IL_036C: ldc.i4 1024
IL_0371: Label26
IL_0371: or
IL_0372: stloc.s 28 (NetLane+Flags)
IL_0374: Label24
IL_0374: ldarg.2
IL_0375: ldfld Flags NetSegment::m_flags
IL_037A: ldc.i4 -2147483648
IL_037F: and
IL_0380: brfalse => Label27
IL_0385: ldloc.s 28 (NetLane+Flags)
IL_0387: ldarg.2
IL_0388: ldfld Flags NetSegment::m_flags
IL_038D: ldc.i4.s 16
IL_038F: and
IL_0390: brfalse => Label28
IL_0395: ldc.i4 1024
IL_039A: br => Label29
IL_039F: Label28
IL_039F: ldc.i4 2048
IL_03A4: Label29
IL_03A4: or
IL_03A5: stloc.s 28 (NetLane+Flags)
IL_03A7: Label27
IL_03A7: ldc.r4 0
IL_03AC: stloc.s 29 (System.Single)
IL_03AE: ldc.r4 0
IL_03B3: stloc.s 30 (System.Single)
IL_03B5: ldc.i4.0
IL_03B6: stloc.s 31 (System.UInt32)
IL_03B8: ldarg.2
IL_03B9: ldfld System.UInt32 NetSegment::m_lanes
IL_03BE: stloc.s 32 (System.UInt32)
IL_03C0: ldc.i4.0
IL_03C1: stloc.s 33 (System.Int32)
IL_03C3: br => Label30
IL_03C8: Label89
IL_03C8: ldloc.s 32 (System.UInt32)
IL_03CA: brtrue => Label31
IL_03CF: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_03D4: ldloca.s 32 (System.UInt32)
IL_03D6: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_03DB: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_03E0: ldarg.1
IL_03E1: ldc.i4.1
IL_03E2: callvirt System.Boolean NetManager::CreateLanes(System.UInt32&
firstLane, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segment,
System.Int32 count)
IL_03E7: brfalse => Label32
IL_03EC: ldloc.s 31 (System.UInt32)
IL_03EE: brfalse => Label33
IL_03F3: ldloc.0
IL_03F4: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_03F9: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_03FE: ldloc.s 31 (System.UInt32)
IL_0400: conv.u
IL_0401: ldelema NetLane
IL_0406: ldloc.s 32 (System.UInt32)
IL_0408: stfld System.UInt32 NetLane::m_nextLane
IL_040D: br => Label34
IL_0412: Label33
IL_0412: ldarg.2
IL_0413: ldloc.s 32 (System.UInt32)
IL_0415: stfld System.UInt32 NetSegment::m_lanes
IL_041A: Label34
IL_041A: br => Label35
IL_041F: Label32
IL_041F: br => Label36
IL_0424: Label31
IL_0424: Label35
IL_0424: ldarg.0
IL_0425: ldfld NetInfo NetAI::m_info
IL_042A: ldfld Lane[] NetInfo::m_lanes
IL_042F: ldloc.s 33 (System.Int32)
IL_0431: ldelem.ref
IL_0432: stloc.s 34 (NetInfo+Lane)
IL_0434: ldloc.s 34 (NetInfo+Lane)
IL_0436: ldfld System.Single Lane::m_position
IL_043B: ldarg.0
IL_043C: ldfld NetInfo NetAI::m_info
IL_0441: ldfld System.Single NetInfo::m_halfWidth
IL_0446: ldc.r4 2
IL_044B: mul
IL_044C: div
IL_044D: ldc.r4 0.5
IL_0452: add
IL_0453: stloc.s 35 (System.Single)
IL_0455: ldarg.2
IL_0456: ldfld Flags NetSegment::m_flags
IL_045B: ldc.i4.s 16
IL_045D: and
IL_045E: brfalse => Label37
IL_0463: ldc.r4 1
IL_0468: ldloc.s 35 (System.Single)
IL_046A: sub
IL_046B: stloc.s 35 (System.Single)
IL_046D: Label37
IL_046D: ldloc.2
IL_046E: ldloc.3
IL_046F: ldloc.2
IL_0470: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0475: ldloc.s 35 (System.Single)
IL_0477: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_047C: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0481: stloc.s 36 (UnityEngine.Vector3)
IL_0483: ldloc.s 6 (UnityEngine.Vector3)
IL_0485: ldloc.s 7 (UnityEngine.Vector3)
IL_0487: ldloc.s 35 (System.Single)
IL_0489: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_048E: stloc.s 37 (UnityEngine.Vector3)
IL_0490: ldloc.s 4 (UnityEngine.Vector3)
IL_0492: ldloc.s 5 (UnityEngine.Vector3)
IL_0494: ldloc.s 4 (UnityEngine.Vector3)
IL_0496: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_049B: ldloc.s 35 (System.Single)
IL_049D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_04A2: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_04A7: stloc.s 38 (UnityEngine.Vector3)
IL_04A9: ldloc.s 8 (UnityEngine.Vector3)
IL_04AB: ldloc.s 9 (UnityEngine.Vector3)
IL_04AD: ldloc.s 35 (System.Single)
IL_04AF: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_04B4: stloc.s 39 (UnityEngine.Vector3)
IL_04B6: ldloca.s 36 (UnityEngine.Vector3)
IL_04B8: dup
IL_04B9: ldfld System.Single UnityEngine.Vector3::y
IL_04BE: ldloc.s 34 (NetInfo+Lane)
IL_04C0: ldfld System.Single Lane::m_verticalOffset
IL_04C5: add
IL_04C6: stfld System.Single UnityEngine.Vector3::y
IL_04CB: ldloca.s 38 (UnityEngine.Vector3)
IL_04CD: dup
IL_04CE: ldfld System.Single UnityEngine.Vector3::y
IL_04D3: ldloc.s 34 (NetInfo+Lane)
IL_04D5: ldfld System.Single Lane::m_verticalOffset
IL_04DA: add
IL_04DB: stfld System.Single UnityEngine.Vector3::y
IL_04E0: ldloc.s 36 (UnityEngine.Vector3)
IL_04E2: ldloc.s 37 (UnityEngine.Vector3)
IL_04E4: ldloc.s 38 (UnityEngine.Vector3)
IL_04E6: ldloc.s 39 (UnityEngine.Vector3)
IL_04E8: ldloc.s 10 (System.Boolean)
IL_04EA: ldloc.s 11 (System.Boolean)
IL_04EC: ldloca.s 40 (UnityEngine.Vector3)
IL_04EE: ldloca.s 41 (UnityEngine.Vector3)
IL_04F0: 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_04F5: ldloc.0
IL_04F6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_04FB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0500: ldloc.s 32 (System.UInt32)
IL_0502: conv.u
IL_0503: ldelema NetLane
IL_0508: ldfld System.UInt16 NetLane::m_flags
IL_050D: stloc.s 42 (NetLane+Flags)
IL_050F: ldloc.s 28 (NetLane+Flags)
IL_0511: stloc.s 43 (NetLane+Flags)
IL_0513: ldloc.s 42 (NetLane+Flags)
IL_0515: ldc.i4 -64753
IL_051A: and
IL_051B: stloc.s 42 (NetLane+Flags)
IL_051D: ldloc.s 34 (NetInfo+Lane)
IL_051F: ldfld Direction Lane::m_finalDirection
IL_0524: ldc.i4.3
IL_0525: and
IL_0526: conv.u1
IL_0527: ldc.i4.2
IL_0528: bne.un => Label38
IL_052D: ldloc.s 43 (NetLane+Flags)
IL_052F: ldc.i4 -2049
IL_0534: and
IL_0535: stloc.s 43 (NetLane+Flags)
IL_0537: Label38
IL_0537: ldloc.s 34 (NetInfo+Lane)
IL_0539: ldfld Direction Lane::m_finalDirection
IL_053E: ldc.i4.3
IL_053F: and
IL_0540: conv.u1
IL_0541: ldc.i4.1
IL_0542: bne.un => Label39
IL_0547: ldloc.s 43 (NetLane+Flags)
IL_0549: ldc.i4 -1025
IL_054E: and
IL_054F: stloc.s 43 (NetLane+Flags)
IL_0551: Label39
IL_0551: ldloc.s 34 (NetInfo+Lane)
IL_0553: ldfld VehicleType Lane::m_vehicleType
IL_0558: ldc.i4 2048
IL_055D: and
IL_055E: brfalse => Label40
IL_0563: ldloc.s 43 (NetLane+Flags)
IL_0565: ldc.i4 -3073
IL_056A: and
IL_056B: stloc.s 43 (NetLane+Flags)
IL_056D: Label40
IL_056D: ldloc.s 42 (NetLane+Flags)
IL_056F: ldloc.s 43 (NetLane+Flags)
IL_0571: or
IL_0572: stloc.s 42 (NetLane+Flags)
IL_0574: ldloc.1
IL_0575: brfalse => Label41
IL_057A: ldloc.s 42 (NetLane+Flags)
IL_057C: ldc.i4.4
IL_057D: or
IL_057E: stloc.s 42 (NetLane+Flags)
IL_0580: br => Label42
IL_0585: Label41
IL_0585: ldloc.s 42 (NetLane+Flags)
IL_0587: ldc.i4.s -5
IL_0589: and
IL_058A: stloc.s 42 (NetLane+Flags)
IL_058C: Label42
IL_058C: ldc.i4.0
IL_058D: stloc.s 44 (System.Int32)
IL_058F: ldc.i4 255
IL_0594: stloc.s 45 (System.Int32)
IL_0596: ldloc.s 34 (NetInfo+Lane)
IL_0598: ldfld LaneType Lane::m_laneType
IL_059D: ldc.i4.s 33
IL_059F: and
IL_05A0: conv.u1
IL_05A1: brfalse => Label43
IL_05A6: ldloc.s 34 (NetInfo+Lane)
IL_05A8: ldfld Direction Lane::m_finalDirection
IL_05AD: ldc.i4.1
IL_05AE: and
IL_05AF: conv.u1
IL_05B0: ldc.i4.0
IL_05B1: ceq
IL_05B3: ldc.i4.0
IL_05B4: ceq
IL_05B6: ldarg.2
IL_05B7: ldfld Flags NetSegment::m_flags
IL_05BC: ldc.i4.s 16
IL_05BE: and
IL_05BF: ldc.i4.0
IL_05C0: ceq
IL_05C2: ceq
IL_05C4: stloc.s 46 (System.Boolean)
IL_05C6: ldloc.s 46 (System.Boolean)
IL_05C8: brfalse => Label44
IL_05CD: ldloc.s 12 (System.Int32)
IL_05CF: stloc.s 47 (System.Int32)
IL_05D1: ldloc.s 13 (System.Int32)
IL_05D3: stloc.s 48 (System.Int32)
IL_05D5: ldloc.s 14 (System.Int32)
IL_05D7: stloc.s 49 (System.Int32)
IL_05D9: br => Label45
IL_05DE: Label44
IL_05DE: ldloc.s 20 (System.Int32)
IL_05E0: stloc.s 47 (System.Int32)
IL_05E2: ldloc.s 21 (System.Int32)
IL_05E4: stloc.s 48 (System.Int32)
IL_05E6: ldloc.s 22 (System.Int32)
IL_05E8: stloc.s 49 (System.Int32)
IL_05EA: Label45
IL_05EA: ldloc.s 34 (NetInfo+Lane)
IL_05EC: ldfld Direction Lane::m_finalDirection
IL_05F1: ldc.i4.1
IL_05F2: and
IL_05F3: conv.u1
IL_05F4: brfalse => Label46
IL_05F9: ldloc.s 34 (NetInfo+Lane)
IL_05FB: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0600: stloc.s 50 (System.Int32)
IL_0602: ldloc.s 34 (NetInfo+Lane)
IL_0604: ldfld System.Int32 Lane::m_similarLaneCount
IL_0609: ldloc.s 34 (NetInfo+Lane)
IL_060B: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0610: sub
IL_0611: ldc.i4.1
IL_0612: sub
IL_0613: stloc.s 51 (System.Int32)
IL_0615: br => Label47
IL_061A: Label46
IL_061A: ldloc.s 34 (NetInfo+Lane)
IL_061C: ldfld System.Int32 Lane::m_similarLaneCount
IL_0621: ldloc.s 34 (NetInfo+Lane)
IL_0623: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0628: sub
IL_0629: ldc.i4.1
IL_062A: sub
IL_062B: stloc.s 50 (System.Int32)
IL_062D: ldloc.s 34 (NetInfo+Lane)
IL_062F: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0634: stloc.s 51 (System.Int32)
IL_0636: Label47
IL_0636: ldloc.s 47 (System.Int32)
IL_0638: ldloc.s 48 (System.Int32)
IL_063A: add
IL_063B: ldloc.s 49 (System.Int32)
IL_063D: add
IL_063E: stloc.s 52 (System.Int32)
IL_0640: ldc.i4 255
IL_0645: stloc.s 44 (System.Int32)
IL_0647: ldc.i4.0
IL_0648: stloc.s 45 (System.Int32)
IL_064A: ldloc.s 52 (System.Int32)
IL_064C: brfalse => Label48
IL_0651: ldloc.s 34 (NetInfo+Lane)
IL_0653: ldfld System.Int32 Lane::m_similarLaneCount
IL_0658: ldloc.s 52 (System.Int32)
IL_065A: ble => Label49
IL_065F: ldloc.s 52 (System.Int32)
IL_0661: ldc.i4.0
IL_0662: ble => Label50
IL_0667: ldloc.s 52 (System.Int32)
IL_0669: ldloc.s 50 (System.Int32)
IL_066B: mul
IL_066C: ldloc.s 34 (NetInfo+Lane)
IL_066E: ldfld System.Int32 Lane::m_similarLaneCount
IL_0673: div
IL_0674: stloc.s 44 (System.Int32)
IL_0676: ldloc.s 52 (System.Int32)
IL_0678: ldloc.s 52 (System.Int32)
IL_067A: ldloc.s 51 (System.Int32)
IL_067C: mul
IL_067D: ldloc.s 34 (NetInfo+Lane)
IL_067F: ldfld System.Int32 Lane::m_similarLaneCount
IL_0684: div
IL_0685: sub
IL_0686: stloc.s 45 (System.Int32)
IL_0688: ldloc.s 42 (NetLane+Flags)
IL_068A: ldc.i4 128
IL_068F: or
IL_0690: stloc.s 42 (NetLane+Flags)
IL_0692: ldloc.s 44 (System.Int32)
IL_0694: ldloc.s 47 (System.Int32)
IL_0696: bge => Label51
IL_069B: ldloc.s 42 (NetLane+Flags)
IL_069D: ldc.i4.s 32
IL_069F: or
IL_06A0: stloc.s 42 (NetLane+Flags)
IL_06A2: Label51
IL_06A2: ldloc.s 52 (System.Int32)
IL_06A4: ldloc.s 45 (System.Int32)
IL_06A6: sub
IL_06A7: ldloc.s 49 (System.Int32)
IL_06A9: bge => Label52
IL_06AE: ldloc.s 42 (NetLane+Flags)
IL_06B0: ldc.i4.s 64
IL_06B2: or
IL_06B3: stloc.s 42 (NetLane+Flags)
IL_06B5: Label52
IL_06B5: ldloc.s 48 (System.Int32)
IL_06B7: brfalse => Label53
IL_06BC: ldloc.s 44 (System.Int32)
IL_06BE: ldloc.s 47 (System.Int32)
IL_06C0: ldloc.s 48 (System.Int32)
IL_06C2: add
IL_06C3: bge => Label54
IL_06C8: ldloc.s 45 (System.Int32)
IL_06CA: ldloc.s 47 (System.Int32)
IL_06CC: ble => Label55
IL_06D1: ldloc.s 42 (NetLane+Flags)
IL_06D3: ldc.i4.s 16
IL_06D5: or
IL_06D6: stloc.s 42 (NetLane+Flags)
IL_06D8: Label53
IL_06D8: Label54
IL_06D8: Label55
IL_06D8: br => Label56
IL_06DD: Label49
IL_06DD: Label50
IL_06DD: ldloc.s 34 (NetInfo+Lane)
IL_06DF: ldfld System.Int32 Lane::m_similarLaneCount
IL_06E4: ldloc.s 52 (System.Int32)
IL_06E6: blt => Label57
IL_06EB: ldloc.s 47 (System.Int32)
IL_06ED: stloc.s 53 (System.Int32)
IL_06EF: ldloc.s 49 (System.Int32)
IL_06F1: stloc.s 54 (System.Int32)
IL_06F3: br => Label58
IL_06F8: Label57
IL_06F8: ldloc.s 47 (System.Int32)
IL_06FA: ldloc.s 34 (NetInfo+Lane)
IL_06FC: ldfld System.Int32 Lane::m_similarLaneCount
IL_0701: mul
IL_0702: ldloc.s 52 (System.Int32)
IL_0704: ldloc.s 48 (System.Int32)
IL_0706: ldc.i4.1
IL_0707: shr
IL_0708: add
IL_0709: div
IL_070A: stloc.s 53 (System.Int32)
IL_070C: ldloc.s 49 (System.Int32)
IL_070E: ldloc.s 34 (NetInfo+Lane)
IL_0710: ldfld System.Int32 Lane::m_similarLaneCount
IL_0715: mul
IL_0716: ldloc.s 52 (System.Int32)
IL_0718: ldloc.s 48 (System.Int32)
IL_071A: ldc.i4.1
IL_071B: shr
IL_071C: add
IL_071D: div
IL_071E: stloc.s 54 (System.Int32)
IL_0720: Label58
IL_0720: ldloc.s 53 (System.Int32)
IL_0722: stloc.s 55 (System.Int32)
IL_0724: ldloc.s 34 (NetInfo+Lane)
IL_0726: ldfld System.Int32 Lane::m_similarLaneCount
IL_072B: ldloc.s 53 (System.Int32)
IL_072D: sub
IL_072E: ldloc.s 54 (System.Int32)
IL_0730: sub
IL_0731: stloc.s 56 (System.Int32)
IL_0733: ldloc.s 54 (System.Int32)
IL_0735: stloc.s 57 (System.Int32)
IL_0737: ldloc.s 56 (System.Int32)
IL_0739: ldc.i4.0
IL_073A: ble => Label59
IL_073F: ldloc.s 47 (System.Int32)
IL_0741: ldloc.s 53 (System.Int32)
IL_0743: ble => Label60
IL_0748: ldloc.s 55 (System.Int32)
IL_074A: ldc.i4.1
IL_074B: add
IL_074C: stloc.s 55 (System.Int32)
IL_074E: Label60
IL_074E: ldloc.s 49 (System.Int32)
IL_0750: ldloc.s 54 (System.Int32)
IL_0752: ble => Label61
IL_0757: ldloc.s 57 (System.Int32)
IL_0759: ldc.i4.1
IL_075A: add
IL_075B: stloc.s 57 (System.Int32)
IL_075D: Label59
IL_075D: Label61
IL_075D: ldloc.s 50 (System.Int32)
IL_075F: ldloc.s 55 (System.Int32)
IL_0761: bge => Label62
IL_0766: ldloc.s 50 (System.Int32)
IL_0768: ldloc.s 47 (System.Int32)
IL_076A: mul
IL_076B: ldloc.s 55 (System.Int32)
IL_076D: add
IL_076E: ldc.i4.1
IL_076F: sub
IL_0770: ldloc.s 55 (System.Int32)
IL_0772: div
IL_0773: stloc.s 58 (System.Int32)
IL_0775: ldloc.s 50 (System.Int32)
IL_0777: ldc.i4.1
IL_0778: add
IL_0779: ldloc.s 47 (System.Int32)
IL_077B: mul
IL_077C: ldloc.s 55 (System.Int32)
IL_077E: add
IL_077F: ldc.i4.1
IL_0780: sub
IL_0781: ldloc.s 55 (System.Int32)
IL_0783: div
IL_0784: stloc.s 59 (System.Int32)
IL_0786: ldloc.s 59 (System.Int32)
IL_0788: ldloc.s 58 (System.Int32)
IL_078A: ble => Label63
IL_078F: ldloc.s 42 (NetLane+Flags)
IL_0791: ldc.i4.s 32
IL_0793: or
IL_0794: stloc.s 42 (NetLane+Flags)
IL_0796: ldloc.s 44 (System.Int32)
IL_0798: ldloc.s 58 (System.Int32)
IL_079A: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_079F: stloc.s 44 (System.Int32)
IL_07A1: ldloc.s 45 (System.Int32)
IL_07A3: ldloc.s 59 (System.Int32)
IL_07A5: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_07AA: stloc.s 45 (System.Int32)
IL_07AC: Label62
IL_07AC: Label63
IL_07AC: ldloc.s 50 (System.Int32)
IL_07AE: ldloc.s 53 (System.Int32)
IL_07B0: blt => Label64
IL_07B5: ldloc.s 51 (System.Int32)
IL_07B7: ldloc.s 54 (System.Int32)
IL_07B9: blt => Label65
IL_07BE: ldloc.s 48 (System.Int32)
IL_07C0: brfalse => Label66
IL_07C5: ldloc.s 34 (NetInfo+Lane)
IL_07C7: ldfld System.Int32 Lane::m_similarLaneCount
IL_07CC: ldloc.s 52 (System.Int32)
IL_07CE: ble => Label67
IL_07D3: ldloc.s 53 (System.Int32)
IL_07D5: ldc.i4.1
IL_07D6: add
IL_07D7: stloc.s 53 (System.Int32)
IL_07D9: Label67
IL_07D9: ldloc.s 47 (System.Int32)
IL_07DB: ldloc.s 50 (System.Int32)
IL_07DD: ldloc.s 53 (System.Int32)
IL_07DF: sub
IL_07E0: ldloc.s 48 (System.Int32)
IL_07E2: mul
IL_07E3: ldloc.s 56 (System.Int32)
IL_07E5: add
IL_07E6: ldc.i4.1
IL_07E7: sub
IL_07E8: ldloc.s 56 (System.Int32)
IL_07EA: div
IL_07EB: add
IL_07EC: stloc.s 60 (System.Int32)
IL_07EE: ldloc.s 47 (System.Int32)
IL_07F0: ldloc.s 50 (System.Int32)
IL_07F2: ldc.i4.1
IL_07F3: add
IL_07F4: ldloc.s 53 (System.Int32)
IL_07F6: sub
IL_07F7: ldloc.s 48 (System.Int32)
IL_07F9: mul
IL_07FA: ldloc.s 56 (System.Int32)
IL_07FC: add
IL_07FD: ldc.i4.1
IL_07FE: sub
IL_07FF: ldloc.s 56 (System.Int32)
IL_0801: div
IL_0802: add
IL_0803: stloc.s 61 (System.Int32)
IL_0805: ldloc.s 61 (System.Int32)
IL_0807: ldloc.s 60 (System.Int32)
IL_0809: ble => Label68
IL_080E: ldloc.s 42 (NetLane+Flags)
IL_0810: ldc.i4.s 16
IL_0812: or
IL_0813: stloc.s 42 (NetLane+Flags)
IL_0815: ldloc.s 44 (System.Int32)
IL_0817: ldloc.s 60 (System.Int32)
IL_0819: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_081E: stloc.s 44 (System.Int32)
IL_0820: ldloc.s 45 (System.Int32)
IL_0822: ldloc.s 61 (System.Int32)
IL_0824: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0829: stloc.s 45 (System.Int32)
IL_082B: Label64
IL_082B: Label65
IL_082B: Label66
IL_082B: Label68
IL_082B: ldloc.s 51 (System.Int32)
IL_082D: ldloc.s 57 (System.Int32)
IL_082F: bge => Label69
IL_0834: ldloc.s 52 (System.Int32)
IL_0836: ldloc.s 51 (System.Int32)
IL_0838: ldc.i4.1
IL_0839: add
IL_083A: ldloc.s 49 (System.Int32)
IL_083C: mul
IL_083D: ldloc.s 57 (System.Int32)
IL_083F: add
IL_0840: ldc.i4.1
IL_0841: sub
IL_0842: ldloc.s 57 (System.Int32)
IL_0844: div
IL_0845: sub
IL_0846: stloc.s 62 (System.Int32)
IL_0848: ldloc.s 52 (System.Int32)
IL_084A: ldloc.s 51 (System.Int32)
IL_084C: ldloc.s 49 (System.Int32)
IL_084E: mul
IL_084F: ldloc.s 57 (System.Int32)
IL_0851: add
IL_0852: ldc.i4.1
IL_0853: sub
IL_0854: ldloc.s 57 (System.Int32)
IL_0856: div
IL_0857: sub
IL_0858: stloc.s 63 (System.Int32)
IL_085A: ldloc.s 63 (System.Int32)
IL_085C: ldloc.s 62 (System.Int32)
IL_085E: ble => Label70
IL_0863: ldloc.s 42 (NetLane+Flags)
IL_0865: ldc.i4.s 64
IL_0867: or
IL_0868: stloc.s 42 (NetLane+Flags)
IL_086A: ldloc.s 44 (System.Int32)
IL_086C: ldloc.s 62 (System.Int32)
IL_086E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0873: stloc.s 44 (System.Int32)
IL_0875: ldloc.s 45 (System.Int32)
IL_0877: ldloc.s 63 (System.Int32)
IL_0879: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_087E: stloc.s 45 (System.Int32)
IL_0880: Label69
IL_0880: Label70
IL_0880: ldarg.0
IL_0881: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_0886: brfalse => Label71
IL_088B: ldloc.s 42 (NetLane+Flags)
IL_088D: ldc.i4.s 96
IL_088F: and
IL_0890: ldc.i4.s 32
IL_0892: bne.un => Label72
IL_0897: ldloc.s 42 (NetLane+Flags)
IL_0899: ldc.i4.s 16
IL_089B: and
IL_089C: brfalse => Label73
IL_08A1: ldloc.s 48 (System.Int32)
IL_08A3: ldc.i4.2
IL_08A4: blt => Label74
IL_08A9: ldloc.s 47 (System.Int32)
IL_08AB: ldc.i4.1
IL_08AC: bne.un => Label75
IL_08B1: Label73
IL_08B1: ldloc.s 45 (System.Int32)
IL_08B3: ldloc.s 44 (System.Int32)
IL_08B5: ldc.i4.1
IL_08B6: add
IL_08B7: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_08BC: stloc.s 45 (System.Int32)
IL_08BE: Label74
IL_08BE: Label75
IL_08BE: br => Label76
IL_08C3: Label72
IL_08C3: ldloc.s 42 (NetLane+Flags)
IL_08C5: ldc.i4.s 96
IL_08C7: and
IL_08C8: ldc.i4.s 64
IL_08CA: bne.un => Label77
IL_08CF: ldloc.s 42 (NetLane+Flags)
IL_08D1: ldc.i4.s 16
IL_08D3: and
IL_08D4: brfalse => Label78
IL_08D9: ldloc.s 48 (System.Int32)
IL_08DB: ldc.i4.2
IL_08DC: blt => Label79
IL_08E1: ldloc.s 49 (System.Int32)
IL_08E3: ldc.i4.1
IL_08E4: bne.un => Label80
IL_08E9: Label78
IL_08E9: ldloc.s 44 (System.Int32)
IL_08EB: ldloc.s 45 (System.Int32)
IL_08ED: ldc.i4.1
IL_08EE: sub
IL_08EF: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_08F4: stloc.s 44 (System.Int32)
IL_08F6: Label48
IL_08F6: Label56
IL_08F6: Label71
IL_08F6: Label76
IL_08F6: Label77
IL_08F6: Label79
IL_08F6: Label80
IL_08F6: ldloc.s 46 (System.Boolean)
IL_08F8: brfalse => Label81
IL_08FD: ldloc.s 18 (System.Boolean)
IL_08FF: brfalse => Label82
IL_0904: ldloc.s 42 (NetLane+Flags)
IL_0906: ldc.i4.s -113
IL_0908: and
IL_0909: stloc.s 42 (NetLane+Flags)
IL_090B: br => Label83
IL_0910: Label82
IL_0910: ldloc.s 19 (System.Boolean)
IL_0912: brfalse => Label84
IL_0917: ldloc.s 42 (NetLane+Flags)
IL_0919: ldc.i4.s 16
IL_091B: or
IL_091C: stloc.s 42 (NetLane+Flags)
IL_091E: Label83
IL_091E: Label84
IL_091E: br => Label85
IL_0923: Label81
IL_0923: ldloc.s 26 (System.Boolean)
IL_0925: brfalse => Label86
IL_092A: ldloc.s 42 (NetLane+Flags)
IL_092C: ldc.i4.s -113
IL_092E: and
IL_092F: stloc.s 42 (NetLane+Flags)
IL_0931: br => Label87
IL_0936: Label86
IL_0936: ldloc.s 27 (System.Boolean)
IL_0938: brfalse => Label88
IL_093D: ldloc.s 42 (NetLane+Flags)
IL_093F: ldc.i4.s 16
IL_0941: or
IL_0942: stloc.s 42 (NetLane+Flags)
IL_0944: Label43
IL_0944: Label85
IL_0944: Label87
IL_0944: Label88
IL_0944: ldloc.0
IL_0945: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_094A: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_094F: ldloc.s 32 (System.UInt32)
IL_0951: conv.u
IL_0952: ldelema NetLane
IL_0957: ldloc.s 36 (UnityEngine.Vector3)
IL_0959: ldloc.s 40 (UnityEngine.Vector3)
IL_095B: ldloc.s 41 (UnityEngine.Vector3)
IL_095D: ldloc.s 38 (UnityEngine.Vector3)
IL_095F: newobj System.Void
ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3
_b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d)
IL_0964: stfld ColossalFramework.Math.Bezier3 NetLane::m_bezier
IL_0969: ldloc.0
IL_096A: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_096F: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0974: ldloc.s 32 (System.UInt32)
IL_0976: conv.u
IL_0977: ldelema NetLane
IL_097C: ldarg.1
IL_097D: stfld System.UInt16 NetLane::m_segment
IL_0982: ldloc.0
IL_0983: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0988: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_098D: ldloc.s 32 (System.UInt32)
IL_098F: conv.u
IL_0990: ldelema NetLane
IL_0995: ldloc.s 42 (NetLane+Flags)
IL_0997: conv.u2
IL_0998: stfld System.UInt16 NetLane::m_flags
IL_099D: ldloc.0
IL_099E: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09A3: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09A8: ldloc.s 32 (System.UInt32)
IL_09AA: conv.u
IL_09AB: ldelema NetLane
IL_09B0: ldloc.s 44 (System.Int32)
IL_09B2: conv.u1
IL_09B3: stfld System.Byte NetLane::m_firstTarget
IL_09B8: ldloc.0
IL_09B9: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09BE: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09C3: ldloc.s 32 (System.UInt32)
IL_09C5: conv.u
IL_09C6: ldelema NetLane
IL_09CB: ldloc.s 45 (System.Int32)
IL_09CD: conv.u1
IL_09CE: stfld System.Byte NetLane::m_lastTarget
IL_09D3: ldloc.s 29 (System.Single)
IL_09D5: ldloc.0
IL_09D6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09DB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09E0: ldloc.s 32 (System.UInt32)
IL_09E2: conv.u
IL_09E3: ldelema NetLane
IL_09E8: call System.Single NetLane::UpdateLength()
IL_09ED: add
IL_09EE: stloc.s 29 (System.Single)
IL_09F0: ldloc.s 30 (System.Single)
IL_09F2: ldc.r4 1
IL_09F7: add
IL_09F8: stloc.s 30 (System.Single)
IL_09FA: ldloc.s 32 (System.UInt32)
IL_09FC: stloc.s 31 (System.UInt32)
IL_09FE: ldloc.0
IL_09FF: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0A04: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0A09: ldloc.s 32 (System.UInt32)
IL_0A0B: conv.u
IL_0A0C: ldelema NetLane
IL_0A11: ldfld System.UInt32 NetLane::m_nextLane
IL_0A16: stloc.s 32 (System.UInt32)
IL_0A18: ldloc.s 33 (System.Int32)
IL_0A1A: ldc.i4.1
IL_0A1B: add
IL_0A1C: stloc.s 33 (System.Int32)
IL_0A1E: Label30
IL_0A1E: ldloc.s 33 (System.Int32)
IL_0A20: ldarg.0
IL_0A21: ldfld NetInfo NetAI::m_info
IL_0A26: ldfld Lane[] NetInfo::m_lanes
IL_0A2B: ldlen
IL_0A2C: conv.i4
IL_0A2D: blt => Label89
IL_0A32: Label36
IL_0A32: ldloc.s 30 (System.Single)
IL_0A34: ldc.r4 0
IL_0A39: beq => Label90
IL_0A3E: ldarg.2
IL_0A3F: ldloc.s 29 (System.Single)
IL_0A41: ldloc.s 30 (System.Single)
IL_0A43: div
IL_0A44: stfld System.Single NetSegment::m_averageLength
IL_0A49: br => Label91
IL_0A4E: Label90
IL_0A4E: ldarg.2
IL_0A4F: ldc.r4 0
IL_0A54: stfld System.Single NetSegment::m_averageLength
IL_0A59: Label91
IL_0A59: ldc.i4.0
IL_0A5A: stloc.s 64 (System.Boolean)
IL_0A5C: ldarg.2
IL_0A5D: ldfld System.Single NetSegment::m_averageLength
IL_0A62: ldc.r4 11
IL_0A67: bge.un => Label92
IL_0A6C: ldloc.0
IL_0A6D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0A72: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A77: ldarg.2
IL_0A78: ldfld System.UInt16 NetSegment::m_startNode
IL_0A7D: ldelema NetNode
IL_0A82: ldfld Flags NetNode::m_flags
IL_0A87: ldc.i4 128
IL_0A8C: and
IL_0A8D: brfalse => Label93
IL_0A92: ldloc.0
IL_0A93: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0A98: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A9D: ldarg.2
IL_0A9E: ldfld System.UInt16 NetSegment::m_endNode
IL_0AA3: ldelema NetNode
IL_0AA8: ldfld Flags NetNode::m_flags
IL_0AAD: ldc.i4 128
IL_0AB2: and
IL_0AB3: brfalse => Label94
IL_0AB8: ldc.i4.1
IL_0AB9: stloc.s 64 (System.Boolean)
IL_0ABB: Label92
IL_0ABB: Label93
IL_0ABB: Label94
IL_0ABB: ldarg.2
IL_0ABC: ldfld System.UInt32 NetSegment::m_lanes
IL_0AC1: stloc.s 32 (System.UInt32)
IL_0AC3: ldc.i4.0
IL_0AC4: stloc.s 65 (System.Int32)
IL_0AC6: br => Label95
IL_0ACB: Label98
IL_0ACB: ldloc.0
IL_0ACC: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0AD1: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0AD6: ldloc.s 32 (System.UInt32)
IL_0AD8: conv.u
IL_0AD9: ldelema NetLane
IL_0ADE: ldfld System.UInt16 NetLane::m_flags
IL_0AE3: ldc.i4.s -9
IL_0AE5: and
IL_0AE6: stloc.s 66 (NetLane+Flags)
IL_0AE8: ldloc.s 64 (System.Boolean)
IL_0AEA: brfalse => Label96
IL_0AEF: ldloc.s 66 (NetLane+Flags)
IL_0AF1: ldc.i4.8
IL_0AF2: or
IL_0AF3: stloc.s 66 (NetLane+Flags)
IL_0AF5: Label96
IL_0AF5: ldloc.0
IL_0AF6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0AFB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0B00: ldloc.s 32 (System.UInt32)
IL_0B02: conv.u
IL_0B03: ldelema NetLane
IL_0B08: ldloc.s 66 (NetLane+Flags)
IL_0B0A: conv.u2
IL_0B0B: stfld System.UInt16 NetLane::m_flags
IL_0B10: ldloc.0
IL_0B11: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0B16: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0B1B: ldloc.s 32 (System.UInt32)
IL_0B1D: conv.u
IL_0B1E: ldelema NetLane
IL_0B23: ldfld System.UInt32 NetLane::m_nextLane
IL_0B28: stloc.s 32 (System.UInt32)
IL_0B2A: ldloc.s 65 (System.Int32)
IL_0B2C: ldc.i4.1
IL_0B2D: add
IL_0B2E: stloc.s 65 (System.Int32)
IL_0B30: Label95
IL_0B30: ldloc.s 65 (System.Int32)
IL_0B32: ldarg.0
IL_0B33: ldfld NetInfo NetAI::m_info
IL_0B38: ldfld Lane[] NetInfo::m_lanes
IL_0B3D: ldlen
IL_0B3E: conv.i4
IL_0B3F: bge => Label97
IL_0B44: ldloc.s 32 (System.UInt32)
IL_0B46: brtrue => Label98
IL_0B4B: Label97
IL_0B4B: ldarg.3
IL_0B4C: brtrue => Label99
IL_0B51: ldarg.2
IL_0B52: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0B57: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0B5C: stloc.s 68 (UnityEngine.Vector3)
IL_0B5E: ldloca.s 68 (UnityEngine.Vector3)
IL_0B60: ldfld System.Single UnityEngine.Vector3::x
IL_0B65: ldc.r4 16
IL_0B6A: sub
IL_0B6B: ldc.r4 64
IL_0B70: div
IL_0B71: ldc.r4 135
IL_0B76: add
IL_0B77: conv.i4
IL_0B78: ldc.i4.0
IL_0B79: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0B7E: stloc.s 67 (System.Int32)
IL_0B80: ldarg.2
IL_0B81: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0B86: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0B8B: stloc.s 70 (UnityEngine.Vector3)
IL_0B8D: ldloca.s 70 (UnityEngine.Vector3)
IL_0B8F: ldfld System.Single UnityEngine.Vector3::z
IL_0B94: ldc.r4 16
IL_0B99: sub
IL_0B9A: ldc.r4 64
IL_0B9F: div
IL_0BA0: ldc.r4 135
IL_0BA5: add
IL_0BA6: conv.i4
IL_0BA7: ldc.i4.0
IL_0BA8: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0BAD: stloc.s 69 (System.Int32)
IL_0BAF: ldarg.2
IL_0BB0: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0BB5: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0BBA: stloc.s 72 (UnityEngine.Vector3)
IL_0BBC: ldloca.s 72 (UnityEngine.Vector3)
IL_0BBE: ldfld System.Single UnityEngine.Vector3::x
IL_0BC3: ldc.r4 16
IL_0BC8: add
IL_0BC9: ldc.r4 64
IL_0BCE: div
IL_0BCF: ldc.r4 135
IL_0BD4: add
IL_0BD5: conv.i4
IL_0BD6: ldc.i4 269
IL_0BDB: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0BE0: stloc.s 71 (System.Int32)
IL_0BE2: ldarg.2
IL_0BE3: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0BE8: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0BED: stloc.s 74 (UnityEngine.Vector3)
IL_0BEF: ldloca.s 74 (UnityEngine.Vector3)
IL_0BF1: ldfld System.Single UnityEngine.Vector3::z
IL_0BF6: ldc.r4 16
IL_0BFB: add
IL_0BFC: ldc.r4 64
IL_0C01: div
IL_0C02: ldc.r4 135
IL_0C07: add
IL_0C08: conv.i4
IL_0C09: ldc.i4 269
IL_0C0E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0C13: stloc.s 73 (System.Int32)
IL_0C15: ldloc.s 69 (System.Int32)
IL_0C17: stloc.s 75 (System.Int32)
IL_0C19: br => Label100
IL_0C1E: Label108
IL_0C1E: ldloc.s 67 (System.Int32)
IL_0C20: stloc.s 76 (System.Int32)
IL_0C22: br => Label101
IL_0C27: Label107
IL_0C27: ldloc.0
IL_0C28: ldfld System.UInt16[] NetManager::m_nodeGrid
IL_0C2D: ldloc.s 75 (System.Int32)
IL_0C2F: ldc.i4 270
IL_0C34: mul
IL_0C35: ldloc.s 76 (System.Int32)
IL_0C37: add
IL_0C38: ldelem.u2
IL_0C39: stloc.s 77 (System.UInt16)
IL_0C3B: ldc.i4.0
IL_0C3C: stloc.s 78 (System.Int32)
IL_0C3E: br => Label102
IL_0C43: Label106
IL_0C43: ldloc.0
IL_0C44: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0C49: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0C4E: ldloc.s 77 (System.UInt16)
IL_0C50: ldelema NetNode
IL_0C55: call NetInfo NetNode::get_Info()
IL_0C5A: stloc.s 79 (NetInfo)
IL_0C5C: ldloc.0
IL_0C5D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0C62: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0C67: ldloc.s 77 (System.UInt16)
IL_0C69: ldelema NetNode
IL_0C6E: ldfld UnityEngine.Vector3 NetNode::m_position
IL_0C73: stloc.s 80 (UnityEngine.Vector3)
IL_0C75: ldarg.2
IL_0C76: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0C7B: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0C80: stloc.s 82 (UnityEngine.Vector3)
IL_0C82: ldloca.s 82 (UnityEngine.Vector3)
IL_0C84: ldfld System.Single UnityEngine.Vector3::x
IL_0C89: ldc.r4 16
IL_0C8E: sub
IL_0C8F: ldloca.s 80 (UnityEngine.Vector3)
IL_0C91: ldfld System.Single UnityEngine.Vector3::x
IL_0C96: sub
IL_0C97: ldarg.2
IL_0C98: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0C9D: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0CA2: stloc.s 83 (UnityEngine.Vector3)
IL_0CA4: ldloca.s 83 (UnityEngine.Vector3)
IL_0CA6: ldfld System.Single UnityEngine.Vector3::z
IL_0CAB: ldc.r4 16
IL_0CB0: sub
IL_0CB1: ldloca.s 80 (UnityEngine.Vector3)
IL_0CB3: ldfld System.Single UnityEngine.Vector3::z
IL_0CB8: sub
IL_0CB9: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0CBE: ldloca.s 80 (UnityEngine.Vector3)
IL_0CC0: ldfld System.Single UnityEngine.Vector3::x
IL_0CC5: ldarg.2
IL_0CC6: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0CCB: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0CD0: stloc.s 84 (UnityEngine.Vector3)
IL_0CD2: ldloca.s 84 (UnityEngine.Vector3)
IL_0CD4: ldfld System.Single UnityEngine.Vector3::x
IL_0CD9: sub
IL_0CDA: ldc.r4 16
IL_0CDF: sub
IL_0CE0: ldloca.s 80 (UnityEngine.Vector3)
IL_0CE2: ldfld System.Single UnityEngine.Vector3::z
IL_0CE7: ldarg.2
IL_0CE8: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0CED: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0CF2: stloc.s 85 (UnityEngine.Vector3)
IL_0CF4: ldloca.s 85 (UnityEngine.Vector3)
IL_0CF6: ldfld System.Single UnityEngine.Vector3::z
IL_0CFB: sub
IL_0CFC: ldc.r4 16
IL_0D01: sub
IL_0D02: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0D07: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0D0C: stloc.s 81 (System.Single)
IL_0D0E: ldloc.s 81 (System.Single)
IL_0D10: ldc.r4 0
IL_0D15: bge.un => Label103
IL_0D1A: ldloc.s 79 (NetInfo)
IL_0D1C: ldfld NetAI NetInfo::m_netAI
IL_0D21: ldloc.s 77 (System.UInt16)
IL_0D23: ldloc.0
IL_0D24: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0D29: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0D2E: ldloc.s 77 (System.UInt16)
IL_0D30: ldelema NetNode
IL_0D35: callvirt virtual System.Void NetAI::NearbyLanesUpdated(System.UInt16
nodeID, NetNode& data)
IL_0D3A: Label103
IL_0D3A: ldloc.0
IL_0D3B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0D40: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0D45: ldloc.s 77 (System.UInt16)
IL_0D47: ldelema NetNode
IL_0D4C: ldfld System.UInt16 NetNode::m_nextGridNode
IL_0D51: stloc.s 77 (System.UInt16)
IL_0D53: ldloc.s 78 (System.Int32)
IL_0D55: ldc.i4.1
IL_0D56: add
IL_0D57: dup
IL_0D58: stloc.s 78 (System.Int32)
IL_0D5A: ldc.i4 32768
IL_0D5F: blt => Label104
IL_0D64: ldc.i4.1
IL_0D65: ldstr "Invalid list detected!\n"
IL_0D6A: call static System.String System.Environment::get_StackTrace()
IL_0D6F: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_0D74: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Error(LogChannel ll, System.String
msg)
IL_0D79: br => Label105
IL_0D7E: Label102
IL_0D7E: Label104
IL_0D7E: ldloc.s 77 (System.UInt16)
IL_0D80: brtrue => Label106
IL_0D85: Label105
IL_0D85: ldloc.s 76 (System.Int32)
IL_0D87: ldc.i4.1
IL_0D88: add
IL_0D89: stloc.s 76 (System.Int32)
IL_0D8B: Label101
IL_0D8B: ldloc.s 76 (System.Int32)
IL_0D8D: ldloc.s 71 (System.Int32)
IL_0D8F: ble => Label107
IL_0D94: ldloc.s 75 (System.Int32)
IL_0D96: ldc.i4.1
IL_0D97: add
IL_0D98: stloc.s 75 (System.Int32)
IL_0D9A: Label100
IL_0D9A: ldloc.s 75 (System.Int32)
IL_0D9C: ldloc.s 73 (System.Int32)
IL_0D9E: ble => Label108
IL_0DA3: ldarg.0
IL_0DA4: ldfld NetInfo NetAI::m_info
IL_0DA9: ldfld System.Boolean NetInfo::m_hasPedestrianLanes
IL_0DAE: brfalse => Label109
IL_0DB3: ldarg.0
IL_0DB4: ldfld NetInfo NetAI::m_info
IL_0DB9: ldfld System.Boolean NetInfo::m_hasForwardVehicleLanes
IL_0DBE: brtrue => Label110
IL_0DC3: ldarg.0
IL_0DC4: ldfld NetInfo NetAI::m_info
IL_0DC9: ldfld System.Boolean NetInfo::m_hasBackwardVehicleLanes
IL_0DCE: brfalse => Label111
IL_0DD3: Label110
IL_0DD3: ldarg.1
IL_0DD4: ldarg.2
IL_0DD5: call static System.Void RoadBaseAI::CheckBuildings(System.UInt16
segmentID, NetSegment& data)
IL_0DDA: // end original
IL_0DDA: Label99
IL_0DDA: Label109
IL_0DDA: Label111
IL_0DDA: ldarg 1
IL_0DDE: ldarg 2
IL_0DE2: ldarg 3
IL_0DE6: call static System.Void
TrafficManager.Patch._RoadBaseAI.UpdateLanesPatch::Postfix(System.UInt16 segmentID,
NetSegment& data, System.Boolean loading)
IL_0DEB: 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.Byte NetSegment::m_trafficLightState0
IL_006A: ldc.i4 240
IL_006F: and
IL_0070: ldloc.0
IL_0071: or
IL_0072: conv.u1
IL_0073: stfld System.Byte NetSegment::m_trafficLightState0
IL_0078: br => Label4
IL_007D: Label3
IL_007D: ldarg.1
IL_007E: ldarg.1
IL_007F: ldfld System.Byte NetSegment::m_trafficLightState1
IL_0084: ldc.i4 240
IL_0089: and
IL_008A: ldloc.0
IL_008B: or
IL_008C: conv.u1
IL_008D: stfld System.Byte NetSegment::m_trafficLightState1
IL_0092: Label4
IL_0092: ldarg.s 5
IL_0094: brfalse => Label5
IL_0099: ldarg.1
IL_009A: dup
IL_009B: ldfld Flags NetSegment::m_flags
IL_00A0: ldc.i4 4096
IL_00A5: or
IL_00A6: stfld Flags NetSegment::m_flags
IL_00AB: br => Label6
IL_00B0: Label5
IL_00B0: ldarg.1
IL_00B1: dup
IL_00B2: ldfld Flags NetSegment::m_flags
IL_00B7: ldc.i4 -4097
IL_00BC: and
IL_00BD: stfld Flags NetSegment::m_flags
IL_00C2: Label6
IL_00C2: ldarg.s 6
IL_00C4: brfalse => Label7
IL_00C9: ldarg.1
IL_00CA: dup
IL_00CB: ldfld Flags NetSegment::m_flags
IL_00D0: ldc.i4 16384
IL_00D5: or
IL_00D6: stfld Flags NetSegment::m_flags
IL_00DB: br => Label8
IL_00E0: Label7
IL_00E0: ldarg.1
IL_00E1: dup
IL_00E2: ldfld Flags NetSegment::m_flags
IL_00E7: ldc.i4 -16385
IL_00EC: and
IL_00ED: stfld Flags NetSegment::m_flags
IL_00F2: Label8
IL_00F2: br => Label9
IL_00F7: Label2
IL_00F7: ldarg.2
IL_00F8: ldc.i4.8
IL_00F9: shr.un
IL_00FA: ldc.i4.1
IL_00FB: and
IL_00FC: brtrue => Label10
IL_0101: ldarg.1
IL_0102: ldarg.1
IL_0103: ldfld System.Byte NetSegment::m_trafficLightState0
IL_0108: ldc.i4.s 15
IL_010A: and
IL_010B: ldloc.0
IL_010C: ldc.i4.4
IL_010D: shl
IL_010E: or
IL_010F: conv.u1
IL_0110: stfld System.Byte NetSegment::m_trafficLightState0
IL_0115: br => Label11
IL_011A: Label10
IL_011A: ldarg.1
IL_011B: ldarg.1
IL_011C: ldfld System.Byte NetSegment::m_trafficLightState1
IL_0121: ldc.i4.s 15
IL_0123: and
IL_0124: ldloc.0
IL_0125: ldc.i4.4
IL_0126: shl
IL_0127: or
IL_0128: conv.u1
IL_0129: stfld System.Byte NetSegment::m_trafficLightState1
IL_012E: Label11
IL_012E: ldarg.s 5
IL_0130: brfalse => Label12
IL_0135: ldarg.1
IL_0136: dup
IL_0137: ldfld Flags NetSegment::m_flags
IL_013C: ldc.i4 8192
IL_0141: or
IL_0142: stfld Flags NetSegment::m_flags
IL_0147: br => Label13
IL_014C: Label12
IL_014C: ldarg.1
IL_014D: dup
IL_014E: ldfld Flags NetSegment::m_flags
IL_0153: ldc.i4 -8193
IL_0158: and
IL_0159: stfld Flags NetSegment::m_flags
IL_015E: Label13
IL_015E: ldarg.s 6
IL_0160: brfalse => Label14
IL_0165: ldarg.1
IL_0166: dup
IL_0167: ldfld Flags NetSegment::m_flags
IL_016C: ldc.i4 32768
IL_0171: or
IL_0172: stfld Flags NetSegment::m_flags
IL_0177: br => Label15
IL_017C: Label14
IL_017C: ldarg.1
IL_017D: dup
IL_017E: ldfld Flags NetSegment::m_flags
IL_0183: ldc.i4 -32769
IL_0188: and
IL_0189: stfld Flags NetSegment::m_flags
IL_018E: // end original
IL_018E: Label9
IL_018E: Label15
IL_018E: Label0
IL_018E: 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/Problem
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<SimulationManager>::get_instance()
IL_003C: stloc.0
IL_003D: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0042: stloc.1
IL_0043: ldarg.2
IL_0044: ldfld Problem NetSegment::m_problems
IL_0049: ldc.i4 805306368
IL_004E: conv.i8
IL_004F: call static Problem Notification::RemoveProblems(Problem problems1,
Problem problems2)
IL_0054: stloc.2
IL_0055: ldarg.2
IL_0056: ldfld Flags NetSegment::m_flags
IL_005B: ldc.i4 2048
IL_0060: and
IL_0061: brfalse => Label2
IL_0066: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_006B: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0070: ldc.i4.s 16
IL_0072: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0077: brtrue => Label3
IL_007C: ldarg.2
IL_007D: dup
IL_007E: ldfld Flags NetSegment::m_flags
IL_0083: ldc.i4 -2049
IL_0088: and
IL_0089: stfld Flags NetSegment::m_flags
IL_008E: Label2
IL_008E: Label3
IL_008E: ldc.r4 0
IL_0093: stloc.3
IL_0094: ldarg.2
IL_0095: ldfld System.UInt32 NetSegment::m_lanes
IL_009A: stloc.s 4 (System.UInt32)
IL_009C: ldc.i4.0
IL_009D: stloc.s 5 (System.Int32)
IL_009F: br => Label4
IL_00A4: Label8
IL_00A4: ldarg.0
IL_00A5: ldfld NetInfo NetAI::m_info
IL_00AA: ldfld Lane[] NetInfo::m_lanes
IL_00AF: ldloc.s 5 (System.Int32)
IL_00B1: ldelem.ref
IL_00B2: stloc.s 6 (NetInfo+Lane)
IL_00B4: ldloc.s 6 (NetInfo+Lane)
IL_00B6: ldfld LaneType Lane::m_laneType
IL_00BB: ldc.i4.s 33
IL_00BD: and
IL_00BE: conv.u1
IL_00BF: brfalse => Label5
IL_00C4: ldloc.s 6 (NetInfo+Lane)
IL_00C6: ldfld VehicleType Lane::m_vehicleType
IL_00CB: ldc.i4.s -33
IL_00CD: and
IL_00CE: brfalse => Label6
IL_00D3: ldloc.3
IL_00D4: ldloc.1
IL_00D5: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00DA: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00DF: ldloc.s 4 (System.UInt32)
IL_00E1: conv.u
IL_00E2: ldelema NetLane
IL_00E7: ldfld System.Single NetLane::m_length
IL_00EC: add
IL_00ED: stloc.3
IL_00EE: Label5
IL_00EE: Label6
IL_00EE: ldloc.1
IL_00EF: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00F4: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00F9: ldloc.s 4 (System.UInt32)
IL_00FB: conv.u
IL_00FC: ldelema NetLane
IL_0101: ldfld System.UInt32 NetLane::m_nextLane
IL_0106: stloc.s 4 (System.UInt32)
IL_0108: ldloc.s 5 (System.Int32)
IL_010A: ldc.i4.1
IL_010B: add
IL_010C: stloc.s 5 (System.Int32)
IL_010E: Label4
IL_010E: ldloc.s 5 (System.Int32)
IL_0110: ldarg.0
IL_0111: ldfld NetInfo NetAI::m_info
IL_0116: ldfld Lane[] NetInfo::m_lanes
IL_011B: ldlen
IL_011C: conv.i4
IL_011D: bge => Label7
IL_0122: ldloc.s 4 (System.UInt32)
IL_0124: brtrue => Label8
IL_0129: Label7
IL_0129: ldc.i4.0
IL_012A: stloc.s 7 (System.Int32)
IL_012C: ldc.i4.0
IL_012D: stloc.s 8 (System.Int32)
IL_012F: ldarg.2
IL_0130: ldfld System.UInt16 NetSegment::m_trafficBuffer
IL_0135: ldc.i4 65535
IL_013A: bne.un => Label9
IL_013F: ldarg.2
IL_0140: ldfld Flags NetSegment::m_flags
IL_0145: ldc.i4 2097152
IL_014A: and
IL_014B: brtrue => Label10
IL_0150: ldarg.2
IL_0151: dup
IL_0152: ldfld Flags NetSegment::m_flags
IL_0157: ldc.i4 2097152
IL_015C: or
IL_015D: stfld Flags NetSegment::m_flags
IL_0162: ldarg.2
IL_0163: ldloc.0
IL_0164: dup
IL_0165: ldfld System.UInt32 SimulationManager::m_currentBuildIndex
IL_016A: dup
IL_016B: stloc.s 9 (System.UInt32)
IL_016D: ldc.i4.1
IL_016E: add
IL_016F: stfld System.UInt32 SimulationManager::m_currentBuildIndex
IL_0174: ldloc.s 9 (System.UInt32)
IL_0176: stfld System.UInt32 NetSegment::m_modifiedIndex
IL_017B: Label10
IL_017B: br => Label11
IL_0180: Label9
IL_0180: ldarg.2
IL_0181: dup
IL_0182: ldfld Flags NetSegment::m_flags
IL_0187: ldc.i4 -2097153
IL_018C: and
IL_018D: stfld Flags NetSegment::m_flags
IL_0192: ldloc.3
IL_0193: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_0198: ldc.i4.4
IL_0199: shl
IL_019A: stloc.s 10 (System.Int32)
IL_019C: ldloc.s 10 (System.Int32)
IL_019E: brfalse => Label12
IL_01A3: ldarg.2
IL_01A4: ldfld System.UInt16 NetSegment::m_trafficBuffer
IL_01A9: ldc.i4.s 100
IL_01AB: mul
IL_01AC: ldloc.s 10 (System.Int32)
IL_01AE: div
IL_01AF: ldc.i4.s 100
IL_01B1: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01B6: conv.u1
IL_01B7: stloc.s 7 (System.Int32)
IL_01B9: ldarg.2
IL_01BA: ldfld System.UInt16 NetSegment::m_noiseBuffer
IL_01BF: ldc.i4 250
IL_01C4: mul
IL_01C5: ldloc.s 10 (System.Int32)
IL_01C7: div
IL_01C8: ldc.i4.s 100
IL_01CA: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01CF: conv.u1
IL_01D0: stloc.s 8 (System.Int32)
IL_01D2: Label11
IL_01D2: Label12
IL_01D2: ldarg.2
IL_01D3: ldc.i4.0
IL_01D4: stfld System.UInt16 NetSegment::m_trafficBuffer
IL_01D9: ldarg.2
IL_01DA: ldc.i4.0
IL_01DB: stfld System.UInt16 NetSegment::m_noiseBuffer
IL_01E0: ldloc.s 7 (System.Int32)
IL_01E2: ldarg.2
IL_01E3: ldfld System.Byte NetSegment::m_trafficDensity
IL_01E8: ble => Label13
IL_01ED: ldarg.2
IL_01EE: ldarg.2
IL_01EF: ldfld System.Byte NetSegment::m_trafficDensity
IL_01F4: ldc.i4.5
IL_01F5: add
IL_01F6: ldloc.s 7 (System.Int32)
IL_01F8: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01FD: conv.u1
IL_01FE: stfld System.Byte NetSegment::m_trafficDensity
IL_0203: br => Label14
IL_0208: Label13
IL_0208: ldloc.s 7 (System.Int32)
IL_020A: ldarg.2
IL_020B: ldfld System.Byte NetSegment::m_trafficDensity
IL_0210: bge => Label15
IL_0215: ldarg.2
IL_0216: ldarg.2
IL_0217: ldfld System.Byte NetSegment::m_trafficDensity
IL_021C: ldc.i4.5
IL_021D: sub
IL_021E: ldloc.s 7 (System.Int32)
IL_0220: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0225: conv.u1
IL_0226: stfld System.Byte NetSegment::m_trafficDensity
IL_022B: Label14
IL_022B: Label15
IL_022B: ldloc.s 8 (System.Int32)
IL_022D: ldarg.2
IL_022E: ldfld System.Byte NetSegment::m_noiseDensity
IL_0233: ble => Label16
IL_0238: ldarg.2
IL_0239: ldarg.2
IL_023A: ldfld System.Byte NetSegment::m_noiseDensity
IL_023F: ldc.i4.2
IL_0240: add
IL_0241: ldloc.s 8 (System.Int32)
IL_0243: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0248: conv.u1
IL_0249: stfld System.Byte NetSegment::m_noiseDensity
IL_024E: br => Label17
IL_0253: Label16
IL_0253: ldloc.s 8 (System.Int32)
IL_0255: ldarg.2
IL_0256: ldfld System.Byte NetSegment::m_noiseDensity
IL_025B: bge => Label18
IL_0260: ldarg.2
IL_0261: ldarg.2
IL_0262: ldfld System.Byte NetSegment::m_noiseDensity
IL_0267: ldc.i4.2
IL_0268: sub
IL_0269: ldloc.s 8 (System.Int32)
IL_026B: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0270: conv.u1
IL_0271: stfld System.Byte NetSegment::m_noiseDensity
IL_0276: Label17
IL_0276: Label18
IL_0276: ldloc.1
IL_0277: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_027C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0281: ldarg.2
IL_0282: ldfld System.UInt16 NetSegment::m_startNode
IL_0287: ldelema NetNode
IL_028C: ldfld UnityEngine.Vector3 NetNode::m_position
IL_0291: stloc.s 11 (UnityEngine.Vector3)
IL_0293: ldloc.1
IL_0294: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0299: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_029E: ldarg.2
IL_029F: ldfld System.UInt16 NetSegment::m_endNode
IL_02A4: ldelema NetNode
IL_02A9: ldfld UnityEngine.Vector3 NetNode::m_position
IL_02AE: stloc.s 12 (UnityEngine.Vector3)
IL_02B0: ldloc.s 11 (UnityEngine.Vector3)
IL_02B2: ldloc.s 12 (UnityEngine.Vector3)
IL_02B4: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_02B9: ldc.r4 0.5
IL_02BE: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_02C3: stloc.s 13 (UnityEngine.Vector3)
IL_02C5: ldc.i4.0
IL_02C6: stloc.s 14 (System.Boolean)
IL_02C8: ldarg.0
IL_02C9: ldfld NetInfo NetAI::m_info
IL_02CE: ldfld Flags NetInfo::m_setVehicleFlags
IL_02D3: ldc.i4 268435456
IL_02D8: and
IL_02D9: brtrue => Label19
IL_02DE: call static TerrainManager
ColossalFramework.Singleton`1<TerrainManager>::get_instance()
IL_02E3: ldloc.s 13 (UnityEngine.Vector3)
IL_02E5: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_02EA: callvirt System.Single TerrainManager::WaterLevel(UnityEngine.Vector2
position)
IL_02EF: stloc.s 15 (System.Single)
IL_02F1: ldloc.s 15 (System.Single)
IL_02F3: ldloca.s 13 (UnityEngine.Vector3)
IL_02F5: ldfld System.Single UnityEngine.Vector3::y
IL_02FA: ldc.r4 1
IL_02FF: add
IL_0300: ble.un => Label20
IL_0305: ldloc.s 15 (System.Single)
IL_0307: ldc.r4 0
IL_030C: ble.un => Label21
IL_0311: ldc.i4.1
IL_0312: stloc.s 14 (System.Boolean)
IL_0314: ldarg.2
IL_0315: dup
IL_0316: ldfld Flags NetSegment::m_flags
IL_031B: ldc.i4 4194304
IL_0320: or
IL_0321: stfld Flags NetSegment::m_flags
IL_0326: ldloc.2
IL_0327: ldc.i8 4611686018695823360
IL_0330: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0335: stloc.2
IL_0336: ldarg.2
IL_0337: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_033C: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0341: stloc.s 16 (UnityEngine.Vector3)
IL_0343: ldarg.2
IL_0344: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0349: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_034E: stloc.s 17 (UnityEngine.Vector3)
IL_0350: ldloca.s 16 (UnityEngine.Vector3)
IL_0352: ldfld System.Single UnityEngine.Vector3::x
IL_0357: ldloca.s 16 (UnityEngine.Vector3)
IL_0359: ldfld System.Single UnityEngine.Vector3::z
IL_035E: ldloca.s 17 (UnityEngine.Vector3)
IL_0360: ldfld System.Single UnityEngine.Vector3::x
IL_0365: ldloca.s 17 (UnityEngine.Vector3)
IL_0367: ldfld System.Single UnityEngine.Vector3::z
IL_036C: call static System.Void RoadBaseAI::FloodParkedCars(System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0371: br => Label22
IL_0376: Label20
IL_0376: Label21
IL_0376: ldarg.2
IL_0377: dup
IL_0378: ldfld Flags NetSegment::m_flags
IL_037D: ldc.i4 -4194305
IL_0382: and
IL_0383: stfld Flags NetSegment::m_flags
IL_0388: ldloc.s 15 (System.Single)
IL_038A: ldloca.s 13 (UnityEngine.Vector3)
IL_038C: ldfld System.Single UnityEngine.Vector3::y
IL_0391: ble.un => Label23
IL_0396: ldloc.s 15 (System.Single)
IL_0398: ldc.r4 0
IL_039D: ble.un => Label24
IL_03A2: ldc.i4.1
IL_03A3: stloc.s 14 (System.Boolean)
IL_03A5: ldloc.2
IL_03A6: ldc.i4 268435456
IL_03AB: conv.i8
IL_03AC: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_03B1: stloc.2
IL_03B2: Label19
IL_03B2: Label22
IL_03B2: Label23
IL_03B2: Label24
IL_03B2: call static DistrictManager
ColossalFramework.Singleton`1<DistrictManager>::get_instance()
IL_03B7: stloc.s 18 (DistrictManager)
IL_03B9: ldloc.s 18 (DistrictManager)
IL_03BB: ldloc.s 13 (UnityEngine.Vector3)
IL_03BD: callvirt System.Byte DistrictManager::GetDistrict(UnityEngine.Vector3
worldPos)
IL_03C2: stloc.s 19 (System.Byte)
IL_03C4: ldloc.s 18 (DistrictManager)
IL_03C6: ldfld Array8`1<District> DistrictManager::m_districts
IL_03CB: ldfld District[] Array8`1<District>::m_buffer
IL_03D0: ldloc.s 19 (System.Byte)
IL_03D2: ldelema District
IL_03D7: ldfld CityPlanning District::m_cityPlanningPolicies
IL_03DC: stloc.s 20 (DistrictPolicies+CityPlanning)
IL_03DE: ldc.i4.s 100
IL_03E0: ldarg.2
IL_03E1: ldfld System.Byte NetSegment::m_noiseDensity
IL_03E6: ldc.i4.s 100
IL_03E8: sub
IL_03E9: ldarg.2
IL_03EA: ldfld System.Byte NetSegment::m_noiseDensity
IL_03EF: ldc.i4.s 100
IL_03F1: sub
IL_03F2: mul
IL_03F3: ldc.i4.s 100
IL_03F5: div
IL_03F6: sub
IL_03F7: stloc.s 21 (System.Int32)
IL_03F9: ldarg.0
IL_03FA: ldfld NetInfo NetAI::m_info
IL_03FF: ldfld VehicleType NetInfo::m_vehicleTypes
IL_0404: ldc.i4.1
IL_0405: and
IL_0406: brfalse => Label25
IL_040B: ldarg.0
IL_040C: ldfld NetInfo NetAI::m_info
IL_0411: ldfld Flags NetInfo::m_setVehicleFlags
IL_0416: ldc.i4 268435456
IL_041B: and
IL_041C: brtrue => Label26
IL_0421: ldloc.s 14 (System.Boolean)
IL_0423: brfalse => Label27
IL_0428: ldarg.2
IL_0429: ldfld Flags NetSegment::m_flags
IL_042E: ldc.i4 2099200
IL_0433: and
IL_0434: brtrue => Label28
IL_0439: ldloc.0
IL_043A: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_043F: ldc.i4.s 10
IL_0441: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0446: brtrue => Label29
IL_044B: ldloca.s 22 (TransferManager+TransferOffer)
IL_044D: initobj TransferManager+TransferOffer
IL_0453: ldloca.s 22 (TransferManager+TransferOffer)
IL_0455: ldc.i4.4
IL_0456: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_045B: ldloca.s 22 (TransferManager+TransferOffer)
IL_045D: ldarg.1
IL_045E: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_0463: ldloca.s 22 (TransferManager+TransferOffer)
IL_0465: ldloc.s 13 (UnityEngine.Vector3)
IL_0467: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_046C: ldloca.s 22 (TransferManager+TransferOffer)
IL_046E: ldc.i4.1
IL_046F: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_0474: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_0479: ldc.i4.s 73
IL_047B: ldloc.s 22 (TransferManager+TransferOffer)
IL_047D: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason
material, TransferOffer offer)
IL_0482: Label27
IL_0482: Label28
IL_0482: Label29
IL_0482: ldarg.2
IL_0483: ldfld System.Byte NetSegment::m_wetness
IL_0488: stloc.s 23 (System.Int32)
IL_048A: ldloc.1
IL_048B: ldfld System.Boolean NetManager::m_treatWetAsSnow
IL_0490: brtrue => Label30
IL_0495: ldloc.s 14 (System.Boolean)
IL_0497: brfalse => Label31
IL_049C: ldc.i4 255
IL_04A1: stloc.s 23 (System.Int32)
IL_04A3: br => Label32
IL_04A8: Label31
IL_04A8: ldloc.s 23 (System.Int32)
IL_04AA: ldc.i4.s 63
IL_04AC: add
IL_04AD: ldc.i4.5
IL_04AE: shr
IL_04AF: neg
IL_04B0: stloc.s 24 (System.Int32)
IL_04B2: call static WeatherManager
ColossalFramework.Singleton`1<WeatherManager>::get_instance()
IL_04B7: ldloc.s 13 (UnityEngine.Vector3)
IL_04B9: ldc.i4.0
IL_04BA: callvirt System.Single
WeatherManager::SampleRainIntensity(UnityEngine.Vector3 pos, System.Boolean
ignoreWeather)
IL_04BF: stloc.s 25 (System.Single)
IL_04C1: ldloc.s 25 (System.Single)
IL_04C3: ldc.r4 0
IL_04C8: beq => Label33
IL_04CD: ldloc.s 25 (System.Single)
IL_04CF: ldc.r4 4000
IL_04D4: mul
IL_04D5: ldc.r4 1000
IL_04DA: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_04DF: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_04E4: stloc.s 26 (System.Int32)
IL_04E6: ldloc.s 24 (System.Int32)
IL_04E8: ldloc.0
IL_04E9: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_04EE: ldloc.s 26 (System.Int32)
IL_04F0: ldloc.s 26 (System.Int32)
IL_04F2: ldc.i4.s 99
IL_04F4: add
IL_04F5: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_04FA: ldc.i4.s 100
IL_04FC: div
IL_04FD: add
IL_04FE: stloc.s 24 (System.Int32)
IL_0500: Label33
IL_0500: ldloc.s 23 (System.Int32)
IL_0502: ldloc.s 24 (System.Int32)
IL_0504: add
IL_0505: ldc.i4.0
IL_0506: ldc.i4 255
IL_050B: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_0510: stloc.s 23 (System.Int32)
IL_0512: Label32
IL_0512: br => Label34
IL_0517: Label30
IL_0517: ldarg.0
IL_0518: ldfld System.Boolean RoadBaseAI::m_accumulateSnow
IL_051D: brfalse => Label35
IL_0522: ldloc.s 14 (System.Boolean)
IL_0524: brfalse => Label36
IL_0529: ldc.i4 128
IL_052E: stloc.s 23 (System.Int32)
IL_0530: br => Label37
IL_0535: Label36
IL_0535: call static WeatherManager
ColossalFramework.Singleton`1<WeatherManager>::get_instance()
IL_053A: ldloc.s 13 (UnityEngine.Vector3)
IL_053C: ldc.i4.0
IL_053D: callvirt System.Single
WeatherManager::SampleRainIntensity(UnityEngine.Vector3 pos, System.Boolean
ignoreWeather)
IL_0542: stloc.s 27 (System.Single)
IL_0544: ldloc.s 27 (System.Single)
IL_0546: ldc.r4 0
IL_054B: beq => Label38
IL_0550: ldloc.s 27 (System.Single)
IL_0552: ldc.r4 400
IL_0557: mul
IL_0558: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_055D: stloc.s 28 (System.Int32)
IL_055F: ldloc.0
IL_0560: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0565: ldloc.s 28 (System.Int32)
IL_0567: ldloc.s 28 (System.Int32)
IL_0569: ldc.i4.s 99
IL_056B: add
IL_056C: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_0571: ldc.i4.s 100
IL_0573: div
IL_0574: stloc.s 29 (System.Int32)
IL_0576: call static UnlockManager
ColossalFramework.Singleton`1<UnlockManager>::get_instance()
IL_057B: ldc.i4.s 24
IL_057D: callvirt System.Boolean UnlockManager::Unlocked(Feature feature)
IL_0582: brfalse => Label39
IL_0587: ldloc.s 23 (System.Int32)
IL_0589: ldloc.s 29 (System.Int32)
IL_058B: add
IL_058C: ldc.i4 255
IL_0591: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0596: stloc.s 23 (System.Int32)
IL_0598: br => Label40
IL_059D: Label39
IL_059D: ldloc.s 23 (System.Int32)
IL_059F: ldloc.s 29 (System.Int32)
IL_05A1: add
IL_05A2: ldc.i4 128
IL_05A7: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_05AC: stloc.s 23 (System.Int32)
IL_05AE: Label40
IL_05AE: br => Label41
IL_05B3: Label38
IL_05B3: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_05B8: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_05BD: ldc.i4.4
IL_05BE: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_05C3: brtrue => Label42
IL_05C8: ldloc.s 23 (System.Int32)
IL_05CA: ldc.i4.1
IL_05CB: sub
IL_05CC: ldc.i4.0
IL_05CD: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_05D2: stloc.s 23 (System.Int32)
IL_05D4: Label41
IL_05D4: Label42
IL_05D4: ldloc.s 23 (System.Int32)
IL_05D6: ldc.i4.s 64
IL_05D8: blt => Label43
IL_05DD: ldarg.2
IL_05DE: ldfld Flags NetSegment::m_flags
IL_05E3: ldc.i4 6293504
IL_05E8: and
IL_05E9: brtrue => Label44
IL_05EE: ldloc.0
IL_05EF: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_05F4: ldc.i4.s 10
IL_05F6: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_05FB: brtrue => Label45
IL_0600: ldloca.s 30 (TransferManager+TransferOffer)
IL_0602: initobj TransferManager+TransferOffer
IL_0608: ldloca.s 30 (TransferManager+TransferOffer)
IL_060A: ldloc.s 23 (System.Int32)
IL_060C: ldc.i4.s 50
IL_060E: div
IL_060F: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_0614: ldloca.s 30 (TransferManager+TransferOffer)
IL_0616: ldarg.1
IL_0617: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_061C: ldloca.s 30 (TransferManager+TransferOffer)
IL_061E: ldloc.s 13 (UnityEngine.Vector3)
IL_0620: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_0625: ldloca.s 30 (TransferManager+TransferOffer)
IL_0627: ldc.i4.1
IL_0628: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_062D: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_0632: ldc.i4.s 64
IL_0634: ldloc.s 30 (TransferManager+TransferOffer)
IL_0636: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason
material, TransferOffer offer)
IL_063B: Label43
IL_063B: Label44
IL_063B: Label45
IL_063B: ldloc.s 23 (System.Int32)
IL_063D: ldc.i4 192
IL_0642: blt => Label46
IL_0647: ldloc.2
IL_0648: ldc.i4 536870912
IL_064D: conv.i8
IL_064E: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0653: stloc.2
IL_0654: Label46
IL_0654: ldloc.s 18 (DistrictManager)
IL_0656: ldfld Array8`1<District> DistrictManager::m_districts
IL_065B: ldfld District[] Array8`1<District>::m_buffer
IL_0660: ldloc.s 19 (System.Byte)
IL_0662: ldelema District
IL_0667: ldflda DistrictProductionData District::m_productionData
IL_066C: dup
IL_066D: ldfld System.UInt32 DistrictProductionData::m_tempSnowCover
IL_0672: ldloc.s 23 (System.Int32)
IL_0674: add
IL_0675: stfld System.UInt32 DistrictProductionData::m_tempSnowCover
IL_067A: Label34
IL_067A: Label35
IL_067A: Label37
IL_067A: ldloc.s 23 (System.Int32)
IL_067C: ldarg.2
IL_067D: ldfld System.Byte NetSegment::m_wetness
IL_0682: beq => Label47
IL_0687: ldarg.2
IL_0688: ldfld System.Byte NetSegment::m_wetness
IL_068D: ldloc.s 23 (System.Int32)
IL_068F: sub
IL_0690: call static System.Int32 UnityEngine.Mathf::Abs(System.Int32 value)
IL_0695: ldc.i4.s 10
IL_0697: ble => Label48
IL_069C: ldarg.2
IL_069D: ldloc.s 23 (System.Int32)
IL_069F: conv.u1
IL_06A0: stfld System.Byte NetSegment::m_wetness
IL_06A5: ldsfld InstanceID InstanceID::Empty
IL_06AA: stloc.s 31 (InstanceID)
IL_06AC: ldloca.s 31 (InstanceID)
IL_06AE: ldarg.1
IL_06AF: call System.Void InstanceID::set_NetSegment(System.UInt16 value)
IL_06B4: ldloc.1
IL_06B5: ldloc.s 31 (InstanceID)
IL_06B7: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06BC: ldloca.s 31 (InstanceID)
IL_06BE: ldarg.2
IL_06BF: ldfld System.UInt16 NetSegment::m_startNode
IL_06C4: call System.Void InstanceID::set_NetNode(System.UInt16 value)
IL_06C9: ldloc.1
IL_06CA: ldloc.s 31 (InstanceID)
IL_06CC: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06D1: ldloca.s 31 (InstanceID)
IL_06D3: ldarg.2
IL_06D4: ldfld System.UInt16 NetSegment::m_endNode
IL_06D9: call System.Void InstanceID::set_NetNode(System.UInt16 value)
IL_06DE: ldloc.1
IL_06DF: ldloc.s 31 (InstanceID)
IL_06E1: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06E6: br => Label49
IL_06EB: Label48
IL_06EB: ldarg.2
IL_06EC: ldloc.s 23 (System.Int32)
IL_06EE: conv.u1
IL_06EF: stfld System.Byte NetSegment::m_wetness
IL_06F4: ldloc.1
IL_06F5: ldc.i4 256
IL_06FA: stfld System.Int32 NetManager::m_wetnessChanged
IL_06FF: Label26
IL_06FF: Label47
IL_06FF: Label49
IL_06FF: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_0701: ldc.i4 1024
IL_0706: and
IL_0707: brfalse => Label50
IL_070C: ldloc.s 21 (System.Int32)
IL_070E: ldc.i4.3
IL_070F: mul
IL_0710: ldc.i4.1
IL_0711: add
IL_0712: ldc.i4.1
IL_0713: shr
IL_0714: stloc.s 21 (System.Int32)
IL_0716: ldc.i4 700
IL_071B: ldc.i4.s 50
IL_071D: ldarg.2
IL_071E: ldfld System.Byte NetSegment::m_trafficDensity
IL_0723: ldc.i4.6
IL_0724: mul
IL_0725: add
IL_0726: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_072B: stloc.s 32 (System.Int32)
IL_072D: br => Label51
IL_0732: Label50
IL_0732: ldc.i4 500
IL_0737: ldc.i4.s 50
IL_0739: ldarg.2
IL_073A: ldfld System.Byte NetSegment::m_trafficDensity
IL_073F: ldc.i4.4
IL_0740: mul
IL_0741: add
IL_0742: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0747: stloc.s 32 (System.Int32)
IL_0749: Label51
IL_0749: ldarg.0
IL_074A: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_074F: brtrue => Label52
IL_0754: ldloc.0
IL_0755: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_075A: ldloc.s 32 (System.Int32)
IL_075C: ldloc.s 32 (System.Int32)
IL_075E: ldc.i4.s 99
IL_0760: add
IL_0761: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_0766: ldc.i4.s 100
IL_0768: div
IL_0769: stloc.s 33 (System.Int32)
IL_076B: ldarg.2
IL_076C: ldarg.2
IL_076D: ldfld System.Byte NetSegment::m_condition
IL_0772: ldloc.s 33 (System.Int32)
IL_0774: sub
IL_0775: ldc.i4.0
IL_0776: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_077B: conv.u1
IL_077C: stfld System.Byte NetSegment::m_condition
IL_0781: ldarg.2
IL_0782: ldfld System.Byte NetSegment::m_condition
IL_0787: ldc.i4 192
IL_078C: bge => Label53
IL_0791: ldarg.2
IL_0792: ldfld Flags NetSegment::m_flags
IL_0797: ldc.i4 6293504
IL_079C: and
IL_079D: brtrue => Label54
IL_07A2: ldloc.0
IL_07A3: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_07A8: ldc.i4.s 20
IL_07AA: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_07AF: brtrue => Label55
IL_07B4: ldloca.s 34 (TransferManager+TransferOffer)
IL_07B6: initobj TransferManager+TransferOffer
IL_07BC: ldloca.s 34 (TransferManager+TransferOffer)
IL_07BE: ldc.i4 255
IL_07C3: ldarg.2
IL_07C4: ldfld System.Byte NetSegment::m_condition
IL_07C9: sub
IL_07CA: ldc.i4.s 50
IL_07CC: div
IL_07CD: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_07D2: ldloca.s 34 (TransferManager+TransferOffer)
IL_07D4: ldarg.1
IL_07D5: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_07DA: ldloca.s 34 (TransferManager+TransferOffer)
IL_07DC: ldloc.s 13 (UnityEngine.Vector3)
IL_07DE: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_07E3: ldloca.s 34 (TransferManager+TransferOffer)
IL_07E5: ldc.i4.1
IL_07E6: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_07EB: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_07F0: ldc.i4.s 66
IL_07F2: ldloc.s 34 (TransferManager+TransferOffer)
IL_07F4: callvirt System.Void TransferManager::AddIncomingOffer(TransferReason
material, TransferOffer offer)
IL_07F9: Label25
IL_07F9: Label52
IL_07F9: Label53
IL_07F9: Label54
IL_07F9: Label55
IL_07F9: ldarg.0
IL_07FA: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_07FF: brtrue => Label56
IL_0804: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_0806: ldc.i4.s 32
IL_0808: and
IL_0809: brfalse => Label57
IL_080E: ldarg.2
IL_080F: dup
IL_0810: ldfld Flags NetSegment::m_flags
IL_0815: ldc.i4 1048576
IL_081A: or
IL_081B: stfld Flags NetSegment::m_flags
IL_0820: br => Label58
IL_0825: Label57
IL_0825: ldarg.2
IL_0826: dup
IL_0827: ldfld Flags NetSegment::m_flags
IL_082C: ldc.i4 -1048577
IL_0831: and
IL_0832: stfld Flags NetSegment::m_flags
IL_0837: Label58
IL_0837: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_0839: ldc.i4 128
IL_083E: and
IL_083F: brfalse => Label59
IL_0844: ldarg.2
IL_0845: dup
IL_0846: ldfld Flags NetSegment::m_flags
IL_084B: ldc.i4 8388608
IL_0850: or
IL_0851: stfld Flags NetSegment::m_flags
IL_0856: br => Label60
IL_085B: Label59
IL_085B: ldarg.2
IL_085C: dup
IL_085D: ldfld Flags NetSegment::m_flags
IL_0862: ldc.i4 -8388609
IL_0867: and
IL_0868: stfld Flags NetSegment::m_flags
IL_086D: Label60
IL_086D: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_086F: ldc.i4 512
IL_0874: and
IL_0875: brfalse => Label61
IL_087A: ldarg.2
IL_087B: dup
IL_087C: ldfld Flags NetSegment::m_flags
IL_0881: ldc.i4 16777216
IL_0886: or
IL_0887: stfld Flags NetSegment::m_flags
IL_088C: br => Label62
IL_0891: Label61
IL_0891: ldarg.2
IL_0892: dup
IL_0893: ldfld Flags NetSegment::m_flags
IL_0898: ldc.i4 -16777217
IL_089D: and
IL_089E: stfld Flags NetSegment::m_flags
IL_08A3: Label62
IL_08A3: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_08A5: ldc.i4 65536
IL_08AA: and
IL_08AB: brfalse => Label63
IL_08B0: ldarg.2
IL_08B1: dup
IL_08B2: ldfld Flags NetSegment::m_flags
IL_08B7: ldc.i4 256
IL_08BC: or
IL_08BD: stfld Flags NetSegment::m_flags
IL_08C2: br => Label64
IL_08C7: Label63
IL_08C7: ldarg.2
IL_08C8: dup
IL_08C9: ldfld Flags NetSegment::m_flags
IL_08CE: ldc.i4 -257
IL_08D3: and
IL_08D4: stfld Flags NetSegment::m_flags
IL_08D9: Label56
IL_08D9: Label64
IL_08D9: ldarg.0
IL_08DA: ldfld System.Int32 RoadBaseAI::m_noiseAccumulation
IL_08DF: ldloc.s 21 (System.Int32)
IL_08E1: mul
IL_08E2: ldc.i4.s 100
IL_08E4: div
IL_08E5: stloc.s 35 (System.Int32)
IL_08E7: ldloc.s 35 (System.Int32)
IL_08E9: brfalse => Label65
IL_08EE: ldloc.s 11 (UnityEngine.Vector3)
IL_08F0: ldloc.s 12 (UnityEngine.Vector3)
IL_08F2: call static System.Single
UnityEngine.Vector3::Distance(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_08F7: stloc.s 36 (System.Single)
IL_08F9: ldloc.s 36 (System.Single)
IL_08FB: ldarg.0
IL_08FC: ldfld System.Single RoadBaseAI::m_noiseRadius
IL_0901: div
IL_0902: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single
f)
IL_0907: stloc.s 37 (System.Int32)
IL_0909: ldc.i4.0
IL_090A: stloc.s 38 (System.Int32)
IL_090C: br => Label66
IL_0911: Label67
IL_0911: ldloc.s 11 (UnityEngine.Vector3)
IL_0913: ldloc.s 12 (UnityEngine.Vector3)
IL_0915: ldloc.s 38 (System.Int32)
IL_0917: ldc.i4.1
IL_0918: add
IL_0919: conv.r4
IL_091A: ldloc.s 37 (System.Int32)
IL_091C: ldc.i4.1
IL_091D: add
IL_091E: conv.r4
IL_091F: div
IL_0920: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_0925: stloc.s 39 (UnityEngine.Vector3)
IL_0927: call static ImmaterialResourceManager
ColossalFramework.Singleton`1<ImmaterialResourceManager>::get_instance()
IL_092C: ldc.i4.8
IL_092D: ldloc.s 35 (System.Int32)
IL_092F: ldloc.s 39 (UnityEngine.Vector3)
IL_0931: ldarg.0
IL_0932: ldfld System.Single RoadBaseAI::m_noiseRadius
IL_0937: callvirt System.Int32 ImmaterialResourceManager::AddResource(Resource
resource, System.Int32 rate, UnityEngine.Vector3 position, System.Single radius)
IL_093C: pop
IL_093D: ldloc.s 38 (System.Int32)
IL_093F: ldc.i4.1
IL_0940: add
IL_0941: stloc.s 38 (System.Int32)
IL_0943: Label66
IL_0943: ldloc.s 38 (System.Int32)
IL_0945: ldloc.s 37 (System.Int32)
IL_0947: blt => Label67
IL_094C: Label65
IL_094C: ldarg.2
IL_094D: ldfld System.Byte NetSegment::m_trafficDensity
IL_0952: ldc.i4.s 50
IL_0954: blt => Label68
IL_0959: ldarg.2
IL_095A: ldfld System.Single NetSegment::m_averageLength
IL_095F: ldc.r4 25
IL_0964: bge.un => Label69
IL_0969: ldloc.1
IL_096A: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_096F: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0974: ldarg.2
IL_0975: ldfld System.UInt16 NetSegment::m_startNode
IL_097A: ldelema NetNode
IL_097F: ldfld Flags NetNode::m_flags
IL_0984: ldc.i4 10485760
IL_0989: and
IL_098A: ldc.i4 8388608
IL_098F: bne.un => Label70
IL_0994: ldloc.1
IL_0995: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_099A: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_099F: ldarg.2
IL_09A0: ldfld System.UInt16 NetSegment::m_endNode
IL_09A5: ldelema NetNode
IL_09AA: ldfld Flags NetNode::m_flags
IL_09AF: ldc.i4 10485760
IL_09B4: and
IL_09B5: ldc.i4 8388608
IL_09BA: bne.un => Label71
IL_09BF: call static GuideManager
ColossalFramework.Singleton`1<GuideManager>::get_instance()
IL_09C4: ldfld GuideController SimulationManagerBase`2<GuideManager,
GuideController>::m_properties
IL_09C9: stloc.s 40 (GuideController)
IL_09CB: ldloc.s 40 (GuideController)
IL_09CD: brfalse => Label72
IL_09D2: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_09D7: ldfld NetSegmentInstanceGuide NetManager::m_shortRoadTraffic
IL_09DC: ldloc.s 40 (GuideController)
IL_09DE: ldfld GuideInfo GuideController::m_shortRoadTraffic
IL_09E3: ldarg.1
IL_09E4: ldc.i4.0
IL_09E5: callvirt System.Void NetSegmentInstanceGuide::Activate(GuideInfo
guideInfo, System.UInt16 segmentID, System.Boolean ignoreID)
IL_09EA: Label68
IL_09EA: Label69
IL_09EA: Label70
IL_09EA: Label71
IL_09EA: Label72
IL_09EA: ldarg.2
IL_09EB: ldfld Flags NetSegment::m_flags
IL_09F0: ldc.i4.8
IL_09F1: and
IL_09F2: brfalse => Label73
IL_09F7: call static GuideManager
ColossalFramework.Singleton`1<GuideManager>::get_instance()
IL_09FC: ldfld GuideController SimulationManagerBase`2<GuideManager,
GuideController>::m_properties
IL_0A01: stloc.s 41 (GuideController)
IL_0A03: ldloc.s 41 (GuideController)
IL_0A05: brfalse => Label74
IL_0A0A: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0A0F: ldfld NetSegmentInstanceGuide NetManager::m_roadDestroyed
IL_0A14: ldloc.s 41 (GuideController)
IL_0A16: ldfld GuideInfo GuideController::m_roadDestroyed
IL_0A1B: ldarg.1
IL_0A1C: ldc.i4.0
IL_0A1D: callvirt System.Void NetSegmentInstanceGuide::Activate(GuideInfo
guideInfo, System.UInt16 segmentID, System.Boolean ignoreID)
IL_0A22: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0A27: ldfld ServiceTypeGuide NetManager::m_roadDestroyed2
IL_0A2C: ldloc.s 41 (GuideController)
IL_0A2E: ldfld GuideInfo GuideController::m_roadDestroyed2
IL_0A33: ldarg.0
IL_0A34: ldfld NetInfo NetAI::m_info
IL_0A39: ldfld ItemClass NetInfo::m_class
IL_0A3E: ldfld Service ItemClass::m_service
IL_0A43: callvirt System.Void ServiceTypeGuide::Activate(GuideInfo guideInfo,
Service service)
IL_0A48: Label74
IL_0A48: ldloc.0
IL_0A49: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0A4E: ldc.i4.8
IL_0A4F: shr.un
IL_0A50: ldc.i4.s 15
IL_0A52: and
IL_0A53: conv.u8
IL_0A54: ldarg.1
IL_0A55: ldc.i4.s 15
IL_0A57: and
IL_0A58: conv.i8
IL_0A59: bne.un => Label75
IL_0A5E: ldarg.2
IL_0A5F: ldfld System.Single NetSegment::m_averageLength
IL_0A64: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_0A69: stloc.s 42 (System.Int32)
IL_0A6B: call static StatisticsManager
ColossalFramework.Singleton`1<StatisticsManager>::get_instance()
IL_0A70: ldc.i4.s 53
IL_0A72: callvirt StatisticBase StatisticsManager::Acquire(StatisticType type)
IL_0A77: stloc.s 43 (StatisticBase)
IL_0A79: ldloc.s 43 (StatisticBase)
IL_0A7B: ldloc.s 42 (System.Int32)
IL_0A7D: callvirt abstract virtual System.Void StatisticBase::Add(System.Int32
delta)
IL_0A82: Label73
IL_0A82: Label75
IL_0A82: ldarg.2
IL_0A83: ldloc.2
IL_0A84: stfld Problem NetSegment::m_problems
IL_0A89: // end original
IL_0A89: Label0
IL_0A89: 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: ldnull
IL_0018: ldarg 0
IL_001C: ldarg 1
IL_0020: call static System.Boolean
TrafficManager.Patch._RoadBaseAI.TrafficLightSimulationStepPatch::Prefix(RoadBaseAI
__instance, System.UInt16 nodeID, NetNode& data)
IL_0025: stloc 20 (System.Boolean)
IL_0029: Label1
IL_0029: nop
IL_002A: ldloc 20 (System.Boolean)
IL_002E: brfalse => Label0
IL_0033: // start original
IL_0033: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0038: stloc.0
IL_0039: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_003E: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0043: stloc.1
IL_0044: ldc.i4.0
IL_0045: stloc.2
IL_0046: ldc.i4.0
IL_0047: stloc.3
IL_0048: ldc.i4.0
IL_0049: stloc.s 4 (System.Int32)
IL_004B: br => Label2
IL_0050: Label14
IL_0050: ldarg.1
IL_0051: ldloc.s 4 (System.Int32)
IL_0053: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0058: stloc.s 5 (System.UInt16)
IL_005A: ldloc.s 5 (System.UInt16)
IL_005C: brfalse => Label3
IL_0061: ldloc.0
IL_0062: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0067: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_006C: ldloc.s 5 (System.UInt16)
IL_006E: ldelema NetSegment
IL_0073: call NetInfo NetSegment::get_Info()
IL_0078: stloc.s 6 (NetInfo)
IL_007A: ldloc.s 6 (NetInfo)
IL_007C: ldfld ItemClass NetInfo::m_class
IL_0081: ldfld Service ItemClass::m_service
IL_0086: ldc.i4.s 9
IL_0088: beq => Label4
IL_008D: ldloc.s 6 (NetInfo)
IL_008F: ldfld Lane[] NetInfo::m_lanes
IL_0094: brfalse => Label5
IL_0099: ldloc.0
IL_009A: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_009F: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00A4: ldloc.s 5 (System.UInt16)
IL_00A6: ldelema NetSegment
IL_00AB: ldfld System.UInt16 NetSegment::m_startNode
IL_00B0: ldarg.0
IL_00B1: ceq
IL_00B3: stloc.s 7 (System.Boolean)
IL_00B5: ldloc.0
IL_00B6: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_00BB: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00C0: ldloc.s 5 (System.UInt16)
IL_00C2: ldelema NetSegment
IL_00C7: ldfld System.UInt32 NetSegment::m_lanes
IL_00CC: stloc.s 8 (System.UInt32)
IL_00CE: ldc.i4.0
IL_00CF: stloc.s 9 (System.Int32)
IL_00D1: br => Label6
IL_00D6: Label12
IL_00D6: ldloc.s 6 (NetInfo)
IL_00D8: ldfld Lane[] NetInfo::m_lanes
IL_00DD: ldloc.s 9 (System.Int32)
IL_00DF: ldelem.ref
IL_00E0: ldfld LaneType Lane::m_laneType
IL_00E5: ldc.i4.1
IL_00E6: bne.un => Label7
IL_00EB: ldloc.0
IL_00EC: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00F1: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00F6: ldloc.s 8 (System.UInt32)
IL_00F8: conv.u
IL_00F9: ldelema NetLane
IL_00FE: ldloc.s 7 (System.Boolean)
IL_0100: brfalse => Label8
IL_0105: ldc.r4 0
IL_010A: br => Label9
IL_010F: Label8
IL_010F: ldc.r4 1
IL_0114: Label9
IL_0114: call UnityEngine.Vector3 NetLane::CalculatePosition(System.Single
laneOffset)
IL_0119: stloc.s 10 (UnityEngine.Vector3)
IL_011B: ldloc.s 10 (UnityEngine.Vector3)
IL_011D: call static System.Boolean
TrainTrackBaseAI::CheckOverlap(UnityEngine.Vector3 pos)
IL_0122: brfalse => Label10
IL_0127: ldc.i4.1
IL_0128: stloc.2
IL_0129: Label7
IL_0129: Label10
IL_0129: ldloc.0
IL_012A: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_012F: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0134: ldloc.s 8 (System.UInt32)
IL_0136: conv.u
IL_0137: ldelema NetLane
IL_013C: ldfld System.UInt32 NetLane::m_nextLane
IL_0141: stloc.s 8 (System.UInt32)
IL_0143: ldloc.s 9 (System.Int32)
IL_0145: ldc.i4.1
IL_0146: add
IL_0147: stloc.s 9 (System.Int32)
IL_0149: Label6
IL_0149: ldloc.s 9 (System.Int32)
IL_014B: ldloc.s 6 (NetInfo)
IL_014D: ldfld Lane[] NetInfo::m_lanes
IL_0152: ldlen
IL_0153: conv.i4
IL_0154: bge => Label11
IL_0159: ldloc.s 8 (System.UInt32)
IL_015B: brtrue => Label12
IL_0160: Label5
IL_0160: Label11
IL_0160: ldarg.0
IL_0161: ldloc.0
IL_0162: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0167: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_016C: ldloc.s 5 (System.UInt16)
IL_016E: ldelema NetSegment
IL_0173: ldloc.1
IL_0174: ldc.i4 256
IL_0179: sub
IL_017A: ldloca.s 11 (RoadBaseAI+TrafficLightState)
IL_017C: ldloca.s 12 (RoadBaseAI+TrafficLightState)
IL_017E: ldloca.s 13 (System.Boolean)
IL_0180: ldloca.s 14 (System.Boolean)
IL_0182: 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_0187: ldloc.s 13 (System.Boolean)
IL_0189: brfalse => Label13
IL_018E: ldc.i4.1
IL_018F: stloc.2
IL_0190: Label3
IL_0190: Label4
IL_0190: Label13
IL_0190: ldloc.s 4 (System.Int32)
IL_0192: ldc.i4.1
IL_0193: add
IL_0194: stloc.s 4 (System.Int32)
IL_0196: Label2
IL_0196: ldloc.s 4 (System.Int32)
IL_0198: ldc.i4.8
IL_0199: blt => Label14
IL_019E: ldloc.2
IL_019F: stloc.3
IL_01A0: ldc.i4.0
IL_01A1: stloc.s 15 (System.Int32)
IL_01A3: br => Label15
IL_01A8: Label29
IL_01A8: ldarg.1
IL_01A9: ldloc.s 15 (System.Int32)
IL_01AB: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_01B0: stloc.s 16 (System.UInt16)
IL_01B2: ldloc.s 16 (System.UInt16)
IL_01B4: brfalse => Label16
IL_01B9: ldloc.0
IL_01BA: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01BF: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01C4: ldloc.s 16 (System.UInt16)
IL_01C6: ldelema NetSegment
IL_01CB: call NetInfo NetSegment::get_Info()
IL_01D0: stloc.s 17 (NetInfo)
IL_01D2: ldarg.0
IL_01D3: ldloc.0
IL_01D4: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01D9: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01DE: ldloc.s 16 (System.UInt16)
IL_01E0: ldelema NetSegment
IL_01E5: ldloc.1
IL_01E6: ldc.i4 256
IL_01EB: sub
IL_01EC: ldloca.s 18 (RoadBaseAI+TrafficLightState)
IL_01EE: ldloca.s 19 (RoadBaseAI+TrafficLightState)
IL_01F0: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_01F5: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01F7: ldc.i4.s -2
IL_01F9: and
IL_01FA: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01FC: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_01FE: ldc.i4.s -2
IL_0200: and
IL_0201: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0203: ldloc.s 17 (NetInfo)
IL_0205: ldfld ItemClass NetInfo::m_class
IL_020A: ldfld Service ItemClass::m_service
IL_020F: ldc.i4.s 9
IL_0211: bne.un => Label17
IL_0216: ldloc.3
IL_0217: brfalse => Label18
IL_021C: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_021E: ldc.i4.2
IL_021F: and
IL_0220: brtrue => Label19
IL_0225: ldc.i4.3
IL_0226: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0228: Label19
IL_0228: br => Label20
IL_022D: Label18
IL_022D: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_022F: ldc.i4.2
IL_0230: and
IL_0231: brfalse => Label21
IL_0236: ldc.i4.1
IL_0237: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0239: Label20
IL_0239: Label21
IL_0239: ldc.i4.0
IL_023A: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_023C: br => Label22
IL_0241: Label17
IL_0241: ldloc.3
IL_0242: brfalse => Label23
IL_0247: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0249: ldc.i4.2
IL_024A: and
IL_024B: brfalse => Label24
IL_0250: ldc.i4.1
IL_0251: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0253: Label24
IL_0253: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0255: ldc.i4.2
IL_0256: and
IL_0257: brtrue => Label25
IL_025C: ldc.i4.3
IL_025D: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_025F: Label25
IL_025F: br => Label26
IL_0264: Label23
IL_0264: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0266: ldc.i4.2
IL_0267: and
IL_0268: brtrue => Label27
IL_026D: ldc.i4.3
IL_026E: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0270: Label27
IL_0270: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0272: ldc.i4.2
IL_0273: and
IL_0274: brfalse => Label28
IL_0279: ldc.i4.1
IL_027A: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_027C: Label22
IL_027C: Label26
IL_027C: Label28
IL_027C: ldarg.0
IL_027D: ldloc.0
IL_027E: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0283: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0288: ldloc.s 16 (System.UInt16)
IL_028A: ldelema NetSegment
IL_028F: ldloc.1
IL_0290: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0292: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0294: ldc.i4.0
IL_0295: ldc.i4.0
IL_0296: 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_029B: Label16
IL_029B: ldloc.s 15 (System.Int32)
IL_029D: ldc.i4.1
IL_029E: add
IL_029F: stloc.s 15 (System.Int32)
IL_02A1: Label15
IL_02A1: ldloc.s 15 (System.Int32)
IL_02A3: ldc.i4.8
IL_02A4: blt => Label29
IL_02A9: // end original
IL_02A9: Label0
IL_02A9: 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._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<CitizenManager>::get_instance()
IL_0045: stloc.1
IL_0046: ldloc.1
IL_0047: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_004C: ldfld Citizen[] Array32`1<Citizen>::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<NetManager>::get_instance()
IL_0089: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008E: ldfld NetNode[] Array16`1<NetNode>::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<TransportManager>::get_instance()
IL_00AA: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_00AF: ldfld TransportLine[] Array16`1<TransportLine>::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<Citizen> CitizenManager::m_citizens
IL_0145: ldfld Citizen[] Array32`1<Citizen>::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<Citizen> CitizenManager::m_citizens
IL_016E: ldfld Citizen[] Array32`1<Citizen>::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<BuildingManager>::get_instance()
IL_018A: stloc.s 5 (BuildingManager)
IL_018C: ldloc.s 5 (BuildingManager)
IL_018E: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0193: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_01BE: ldfld Building[] Array16`1<Building>::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: 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<SimulationManager>::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<BuildingManager>::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<InfoManager>::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<NetManager>::get_instance()
IL_0036: stloc.0
IL_0037: ldloc.0
IL_0038: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0074: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16>
NetManager::m_updateNameVisibility
IL_00CF: ldarg.1
IL_00D0: callvirt System.Boolean
System.Collections.Generic.HashSet`1<System.UInt16>::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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<CustomAssetMetaData>::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<CustomAssetMetaData>::GetListingMetaData(System.Int32 index)
IL_0037: stloc.0
IL_0038: ldarg.0
IL_0039: ldloc.0
IL_003A: call System.Void
LoadSavePanelBase`1<CustomAssetMetaData>::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<CustomAssetMetaData>::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<SimulationManager>::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<SimulationManager>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_010B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<VehicleInfo>::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<VehicleInfo>::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<VehicleInfo>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_023B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<BuildingInfo>::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<BuildingInfo>::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<BuildingInfo>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_036B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<BuildingInfo>::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<BuildingInfo>::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<BuildingInfo>::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<BuildingManager>::get_instance()
IL_0482: callvirt virtual System.Void SimulationManagerBase`2<BuildingManager,
BuildingProperties>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_04A5: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<BuildingInfo>::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<CitizenInfo>::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<VehicleInfo>::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<PropInfo>::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<TreeInfo>::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<NetInfo>::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
IL_00B7: br => Label37
IL_00BC: Label0
IL_00BC: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00C1: ldc.i4.0
IL_00C2: ldc.i4.0
IL_00C3: ldc.i4.m1
IL_00C4: ldc.r4 300
IL_00C9: ldc.i4.0
IL_00CA: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_00CF: br => Label38
IL_00D4: Label1
IL_00D4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00D9: ldc.i4.0
IL_00DA: ldc.i4.0
IL_00DB: ldc.i4.m1
IL_00DC: ldc.r4 300
IL_00E1: ldc.i4.0
IL_00E2: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_00E7: br => Label39
IL_00EC: Label2
IL_00EC: ldarg.2
IL_00ED: brtrue => Label40
IL_00F2: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00F7: ldc.i4.s 15
IL_00F9: ldc.i4.0
IL_00FA: ldc.i4.0
IL_00FB: ldc.r4 500
IL_0100: ldc.i4.0
IL_0101: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0106: br => Label41
IL_010B: Label40
IL_010B: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0110: ldc.i4.0
IL_0111: ldc.i4.0
IL_0112: ldc.i4.m1
IL_0113: ldc.r4 300
IL_0118: ldc.i4.0
IL_0119: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_011E: Label41
IL_011E: br => Label42
IL_0123: Label3
IL_0123: ldarg.2
IL_0124: ldc.i4.1
IL_0125: bne.un => Label43
IL_012A: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_012F: ldc.i4.s 14
IL_0131: ldc.i4.0
IL_0132: ldc.i4.1
IL_0133: ldc.r4 500
IL_0138: ldc.i4.0
IL_0139: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_013E: br => Label44
IL_0143: Label43
IL_0143: ldarg.2
IL_0144: ldc.i4.3
IL_0145: bne.un => Label45
IL_014A: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_014F: ldc.i4.s 14
IL_0151: ldc.i4.0
IL_0152: ldc.i4.4
IL_0153: ldc.r4 500
IL_0158: ldc.i4.0
IL_0159: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_015E: br => Label46
IL_0163: Label45
IL_0163: ldarg.2
IL_0164: ldc.i4.2
IL_0165: bne.un => Label47
IL_016A: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_016F: ldc.i4.s 14
IL_0171: ldc.i4.0
IL_0172: ldc.i4.3
IL_0173: ldc.r4 500
IL_0178: ldc.i4.0
IL_0179: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_017E: br => Label48
IL_0183: Label47
IL_0183: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0188: ldc.i4.s 14
IL_018A: ldc.i4.0
IL_018B: ldc.i4.0
IL_018C: ldc.r4 500
IL_0191: ldc.i4.0
IL_0192: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0197: Label44
IL_0197: Label46
IL_0197: Label48
IL_0197: br => Label49
IL_019C: Label12
IL_019C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01A1: ldc.i4.0
IL_01A2: ldc.i4.0
IL_01A3: ldc.i4.m1
IL_01A4: ldc.r4 300
IL_01A9: ldc.i4.0
IL_01AA: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01AF: br => Label50
IL_01B4: Label4
IL_01B4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01B9: ldc.i4.0
IL_01BA: ldc.i4.0
IL_01BB: ldc.i4.m1
IL_01BC: ldc.r4 300
IL_01C1: ldc.i4.0
IL_01C2: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01C7: br => Label51
IL_01CC: Label5
IL_01CC: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01D1: ldc.i4.0
IL_01D2: ldc.i4.0
IL_01D3: ldc.i4.m1
IL_01D4: ldc.r4 300
IL_01D9: ldc.i4.0
IL_01DA: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01DF: br => Label52
IL_01E4: Label8
IL_01E4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01E9: ldc.i4.0
IL_01EA: ldc.i4.0
IL_01EB: ldc.i4.m1
IL_01EC: ldc.r4 300
IL_01F1: ldc.i4.0
IL_01F2: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01F7: br => Label53
IL_01FC: Label6
IL_01FC: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0201: ldc.i4.0
IL_0202: ldc.i4.0
IL_0203: ldc.i4.m1
IL_0204: ldc.r4 300
IL_0209: ldc.i4.0
IL_020A: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_020F: br => Label54
IL_0214: Label7
IL_0214: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0219: ldc.i4.0
IL_021A: ldc.i4.0
IL_021B: ldc.i4.m1
IL_021C: ldc.r4 300
IL_0221: ldc.i4.0
IL_0222: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0227: br => Label55
IL_022C: Label9
IL_022C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0231: ldc.i4.0
IL_0232: ldc.i4.0
IL_0233: ldc.i4.m1
IL_0234: ldc.r4 300
IL_0239: ldc.i4.0
IL_023A: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_023F: br => Label56
IL_0244: Label10
IL_0244: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0249: ldc.i4.0
IL_024A: ldc.i4.0
IL_024B: ldc.i4.m1
IL_024C: ldc.r4 300
IL_0251: ldc.i4.0
IL_0252: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0257: br => Label57
IL_025C: Label11
IL_025C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0261: ldc.i4.0
IL_0262: ldc.i4.0
IL_0263: ldc.i4.m1
IL_0264: ldc.r4 300
IL_0269: ldc.i4.0
IL_026A: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_026F: br => Label58
IL_0274: Label14
IL_0274: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0279: ldc.i4.0
IL_027A: ldc.i4.0
IL_027B: ldc.i4.m1
IL_027C: ldc.r4 300
IL_0281: ldc.i4.0
IL_0282: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0287: br => Label59
IL_028C: Label17
IL_028C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0291: ldc.i4.s 18
IL_0293: ldc.i4.0
IL_0294: ldc.i4.0
IL_0295: ldc.r4 500
IL_029A: ldc.i4.0
IL_029B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02A0: br => Label60
IL_02A5: Label19
IL_02A5: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02AA: ldc.i4.0
IL_02AB: ldc.i4.0
IL_02AC: ldc.i4.m1
IL_02AD: ldc.r4 300
IL_02B2: ldc.i4.1
IL_02B3: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02B8: br => Label61
IL_02BD: Label18
IL_02BD: ldarg.2
IL_02BE: ldc.i4.1
IL_02BF: bne.un => Label62
IL_02C4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02C9: ldc.i4.s 16
IL_02CB: ldc.i4.0
IL_02CC: ldc.i4.1
IL_02CD: ldc.r4 500
IL_02D2: ldc.i4.1
IL_02D3: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02D8: br => Label63
IL_02DD: Label62
IL_02DD: ldarg.2
IL_02DE: ldc.i4.2
IL_02DF: bne.un => Label64
IL_02E4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02E9: ldc.i4.s 16
IL_02EB: ldc.i4.0
IL_02EC: ldc.i4.2
IL_02ED: ldc.r4 500
IL_02F2: ldc.i4.1
IL_02F3: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02F8: br => Label65
IL_02FD: Label64
IL_02FD: ldarg.2
IL_02FE: brtrue => Label66
IL_0303: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0308: ldc.i4.s 16
IL_030A: ldc.i4.0
IL_030B: ldc.i4.0
IL_030C: ldc.r4 500
IL_0311: ldc.i4.1
IL_0312: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0317: br => Label67
IL_031C: Label66
IL_031C: ldarg.2
IL_031D: ldc.i4.4
IL_031E: bne.un => Label68
IL_0323: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0328: ldc.i4.s 16
IL_032A: ldc.i4.0
IL_032B: ldc.i4.3
IL_032C: ldc.r4 500
IL_0331: ldc.i4.1
IL_0332: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0337: br => Label69
IL_033C: Label68
IL_033C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0341: ldc.i4.s 16
IL_0343: ldc.i4.0
IL_0344: ldc.i4.2
IL_0345: ldc.r4 500
IL_034A: ldc.i4.1
IL_034B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0350: Label63
IL_0350: Label65
IL_0350: Label67
IL_0350: Label69
IL_0350: br => Label70
IL_0355: Label16
IL_0355: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_035A: ldc.i4.0
IL_035B: ldc.i4.0
IL_035C: ldc.i4.m1
IL_035D: ldc.r4 300
IL_0362: ldc.i4.0
IL_0363: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0368: br => Label71
IL_036D: Label13
IL_036D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0372: ldc.i4.0
IL_0373: ldc.i4.0
IL_0374: ldc.i4.m1
IL_0375: ldc.r4 300
IL_037A: ldc.i4.0
IL_037B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0380: br => Label72
IL_0385: Label15
IL_0385: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_038A: ldc.i4.s 13
IL_038C: ldc.i4.0
IL_038D: ldc.i4.m1
IL_038E: ldc.r4 2000
IL_0393: ldc.i4.0
IL_0394: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0399: br => Label73
IL_039E: Label20
IL_039E: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03A3: ldc.i4.0
IL_03A4: ldc.i4.0
IL_03A5: ldc.i4.m1
IL_03A6: ldc.r4 300
IL_03AB: ldc.i4.0
IL_03AC: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03B1: br => Label74
IL_03B6: Label21
IL_03B6: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03BB: ldc.i4.0
IL_03BC: ldc.i4.0
IL_03BD: ldc.i4.m1
IL_03BE: ldc.r4 300
IL_03C3: ldc.i4.0
IL_03C4: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03C9: br => Label75
IL_03CE: Label22
IL_03CE: ldarg.2
IL_03CF: brtrue => Label76
IL_03D4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03D9: ldc.i4.s 9
IL_03DB: ldc.i4.0
IL_03DC: ldc.i4.1
IL_03DD: ldc.r4 2000
IL_03E2: ldc.i4.0
IL_03E3: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03E8: br => Label77
IL_03ED: Label76
IL_03ED: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03F2: ldc.i4.0
IL_03F3: ldc.i4.0
IL_03F4: ldc.i4.m1
IL_03F5: ldc.r4 300
IL_03FA: ldc.i4.0
IL_03FB: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0400: Label77
IL_0400: br => Label78
IL_0405: Label23
IL_0405: ldarg.2
IL_0406: brtrue => Label79
IL_040B: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0410: ldc.i4.s 9
IL_0412: ldc.i4.0
IL_0413: ldc.i4.3
IL_0414: ldc.r4 2000
IL_0419: ldc.i4.0
IL_041A: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_041F: br => Label80
IL_0424: Label79
IL_0424: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0429: ldc.i4.0
IL_042A: ldc.i4.0
IL_042B: ldc.i4.m1
IL_042C: ldc.r4 300
IL_0431: ldc.i4.0
IL_0432: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0437: Label80
IL_0437: br => Label81
IL_043C: Label24
IL_043C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0441: ldc.i4.s 20
IL_0443: ldc.i4.0
IL_0444: ldc.i4.3
IL_0445: ldc.r4 500
IL_044A: ldc.i4.1
IL_044B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0450: br => Label82
IL_0455: Label25
IL_0455: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_045A: ldc.i4.0
IL_045B: ldc.i4.0
IL_045C: ldc.i4.m1
IL_045D: ldc.r4 300
IL_0462: ldc.i4.0
IL_0463: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0468: br => Label83
IL_046D: Label26
IL_046D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0472: ldc.i4.s 20
IL_0474: ldc.i4.0
IL_0475: ldc.i4.1
IL_0476: ldc.r4 2000
IL_047B: ldc.i4.0
IL_047C: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0481: br => Label84
IL_0486: Label27
IL_0486: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_048B: ldc.i4.0
IL_048C: ldc.i4.0
IL_048D: ldc.i4.m1
IL_048E: ldc.r4 300
IL_0493: ldc.i4.0
IL_0494: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0499: br => Label85
IL_049E: Label28
IL_049E: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04A3: ldc.i4.0
IL_04A4: ldc.i4.0
IL_04A5: ldc.i4.m1
IL_04A6: ldc.r4 300
IL_04AB: ldc.i4.0
IL_04AC: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04B1: br => Label86
IL_04B6: Label29
IL_04B6: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04BB: ldc.i4.0
IL_04BC: ldc.i4.0
IL_04BD: ldc.i4.m1
IL_04BE: ldc.r4 300
IL_04C3: ldc.i4.0
IL_04C4: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04C9: br => Label87
IL_04CE: Label30
IL_04CE: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04D3: ldc.i4.0
IL_04D4: ldc.i4.0
IL_04D5: ldc.i4.m1
IL_04D6: ldc.r4 300
IL_04DB: ldc.i4.0
IL_04DC: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04E1: br => Label88
IL_04E6: Label31
IL_04E6: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04EB: ldc.i4.0
IL_04EC: ldc.i4.0
IL_04ED: ldc.i4.m1
IL_04EE: ldc.r4 300
IL_04F3: ldc.i4.0
IL_04F4: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04F9: br => Label89
IL_04FE: Label32
IL_04FE: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0503: ldc.i4.s 12
IL_0505: ldc.i4.s 17
IL_0507: ldc.i4.1
IL_0508: ldc.r4 2000
IL_050D: ldc.i4.0
IL_050E: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0513: br => Label90
IL_0518: Label33
IL_0518: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_051D: ldc.i4.0
IL_051E: ldc.i4.0
IL_051F: ldc.i4.m1
IL_0520: ldc.r4 300
IL_0525: ldc.i4.0
IL_0526: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_052B: br => Label91
IL_0530: Label34
IL_0530: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0535: ldc.i4.s 19
IL_0537: ldc.i4.s 28
IL_0539: ldc.i4.1
IL_053A: ldc.r4 500
IL_053F: ldc.i4.0
IL_0540: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0545: br => Label92
IL_054A: Label35
IL_054A: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_054F: ldc.i4.0
IL_0550: ldc.i4.0
IL_0551: ldc.i4.m1
IL_0552: ldc.r4 300
IL_0557: ldc.i4.0
IL_0558: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_055D: br => Label93
IL_0562: Label36
IL_0562: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0567: ldc.i4.0
IL_0568: ldc.i4.0
IL_0569: ldc.i4.m1
IL_056A: ldc.r4 300
IL_056F: ldc.i4.0
IL_0570: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0575: br => Label94
IL_057A: Label37
IL_057A: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_057F: ldc.i4.0
IL_0580: ldc.i4.0
IL_0581: ldc.i4.m1
IL_0582: ldc.r4 300
IL_0587: ldc.i4.0
IL_0588: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_058D: br => Label95
IL_0592: // end original
IL_0592: Label38
IL_0592: Label39
IL_0592: Label42
IL_0592: Label49
IL_0592: Label50
IL_0592: Label51
IL_0592: Label52
IL_0592: Label53
IL_0592: Label54
IL_0592: Label55
IL_0592: Label56
IL_0592: Label57
IL_0592: Label58
IL_0592: Label59
IL_0592: Label60
IL_0592: Label61
IL_0592: Label70
IL_0592: Label71
IL_0592: Label72
IL_0592: Label73
IL_0592: Label74
IL_0592: Label75
IL_0592: Label78
IL_0592: Label81
IL_0592: Label82
IL_0592: Label83
IL_0592: Label84
IL_0592: Label85
IL_0592: Label86
IL_0592: Label87
IL_0592: Label88
IL_0592: Label89
IL_0592: Label90
IL_0592: Label91
IL_0592: Label92
IL_0592: Label93
IL_0592: Label94
IL_0592: Label95
IL_0592: 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<SimulationManager>::get_instance()
IL_0046: ldarg.0
IL_0047: ldftn System.Void DefaultTool::<OnToolGUI>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<InstanceManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<BuildingManager>::get_instance()
IL_017E: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0183: ldfld Building[] Array16`1<Building>::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<SimulationManager>::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<SimulationManager>::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::<OnToolGUI>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<SimulationManager>::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::<OnToolGUI>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<LogChannel>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<BuildingManager>::get_instance()
IL_04D2: stloc.s 13 (BuildingManager)
IL_04D4: ldloc.s 13 (BuildingManager)
IL_04D6: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_04DB: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_04FA: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0555: ldfld Building[] Array16`1<Building>::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<VehicleManager>::get_instance()
IL_0590: stloc.s 16 (VehicleManager)
IL_0592: ldloc.s 16 (VehicleManager)
IL_0594: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0599: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_05B8: ldfld Vehicle[] Array16`1<Vehicle>::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})"
IL_05DD: ldc.i4.2
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: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_0601: stloc.s 12 (System.String)
IL_0603: ldloc.s 17 (VehicleInfo)
IL_0605: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_060A: ldloc.s 8 (System.UInt16)
IL_060C: ldloc.s 16 (VehicleManager)
IL_060E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0613: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0618: ldloc.s 8 (System.UInt16)
IL_061A: ldelema Vehicle
IL_061F: callvirt virtual System.String VehicleAI::GetDebugString(System.UInt16
vehicleID, Vehicle& data)
IL_0624: stloc.s 18 (System.String)
IL_0626: ldloc.s 18 (System.String)
IL_0628: brfalse => Label68
IL_062D: ldloc.s 12 (System.String)
IL_062F: ldstr "\n"
IL_0634: ldloc.s 18 (System.String)
IL_0636: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_063B: stloc.s 12 (System.String)
IL_063D: Label66
IL_063D: Label67
IL_063D: Label68
IL_063D: br => Label69
IL_0642: Label65
IL_0642: ldloc.s 9 (System.UInt16)
IL_0644: brfalse => Label70
IL_0649: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_064E: stloc.s 19 (VehicleManager)
IL_0650: ldloc.s 19 (VehicleManager)
IL_0652: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_0657: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_065C: ldloc.s 9 (System.UInt16)
IL_065E: ldelema VehicleParked
IL_0663: ldfld System.UInt16 VehicleParked::m_flags
IL_0668: ldc.i4.1
IL_0669: and
IL_066A: brfalse => Label71
IL_066F: ldloc.s 19 (VehicleManager)
IL_0671: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_0676: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_067B: ldloc.s 9 (System.UInt16)
IL_067D: ldelema VehicleParked
IL_0682: call VehicleInfo VehicleParked::get_Info()
IL_0687: stloc.s 20 (VehicleInfo)
IL_0689: ldloc.s 20 (VehicleInfo)
IL_068B: ldnull
IL_068C: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0691: brfalse => Label72
IL_0696: ldstr "{0} ({1})"
IL_069B: ldc.i4.2
IL_069C: newarr System.Object
IL_06A1: dup
IL_06A2: ldc.i4.0
IL_06A3: ldloc.s 20 (VehicleInfo)
IL_06A5: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_06AA: callvirt System.String UnityEngine.Object::get_name()
IL_06AF: stelem.ref
IL_06B0: dup
IL_06B1: ldc.i4.1
IL_06B2: ldloc.s 9 (System.UInt16)
IL_06B4: box System.UInt16
IL_06B9: stelem.ref
IL_06BA: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_06BF: stloc.s 12 (System.String)
IL_06C1: ldloc.s 20 (VehicleInfo)
IL_06C3: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_06C8: ldloc.s 9 (System.UInt16)
IL_06CA: ldloc.s 19 (VehicleManager)
IL_06CC: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_06D1: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_06D6: ldloc.s 9 (System.UInt16)
IL_06D8: ldelema VehicleParked
IL_06DD: callvirt virtual System.String VehicleAI::GetDebugString(System.UInt16
parkedVehicleID, VehicleParked& data)
IL_06E2: stloc.s 21 (System.String)
IL_06E4: ldloc.s 21 (System.String)
IL_06E6: brfalse => Label73
IL_06EB: ldloc.s 12 (System.String)
IL_06ED: ldstr "\n"
IL_06F2: ldloc.s 21 (System.String)
IL_06F4: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_06F9: stloc.s 12 (System.String)
IL_06FB: Label71
IL_06FB: Label72
IL_06FB: Label73
IL_06FB: br => Label74
IL_0700: Label70
IL_0700: ldloc.s 10 (System.UInt16)
IL_0702: brfalse => Label75
IL_0707: call static CitizenManager
ColossalFramework.Singleton`1<CitizenManager>::get_instance()
IL_070C: stloc.s 22 (CitizenManager)
IL_070E: ldloc.s 22 (CitizenManager)
IL_0710: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0715: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_071A: ldloc.s 10 (System.UInt16)
IL_071C: ldelema CitizenInstance
IL_0721: ldfld Flags CitizenInstance::m_flags
IL_0726: ldc.i4.1
IL_0727: and
IL_0728: brfalse => Label76
IL_072D: ldloc.s 22 (CitizenManager)
IL_072F: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0734: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0739: ldloc.s 10 (System.UInt16)
IL_073B: ldelema CitizenInstance
IL_0740: call CitizenInfo CitizenInstance::get_Info()
IL_0745: stloc.s 23 (CitizenInfo)
IL_0747: ldloc.s 23 (CitizenInfo)
IL_0749: ldnull
IL_074A: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_074F: brfalse => Label77
IL_0754: ldstr "{0} ({1})"
IL_0759: ldc.i4.2
IL_075A: newarr System.Object
IL_075F: dup
IL_0760: ldc.i4.0
IL_0761: ldloc.s 23 (CitizenInfo)
IL_0763: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_0768: callvirt System.String UnityEngine.Object::get_name()
IL_076D: stelem.ref
IL_076E: dup
IL_076F: ldc.i4.1
IL_0770: ldloc.s 10 (System.UInt16)
IL_0772: box System.UInt16
IL_0777: stelem.ref
IL_0778: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_077D: stloc.s 12 (System.String)
IL_077F: ldloc.s 23 (CitizenInfo)
IL_0781: ldfld CitizenAI CitizenInfo::m_citizenAI
IL_0786: ldloc.s 10 (System.UInt16)
IL_0788: ldloc.s 22 (CitizenManager)
IL_078A: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_078F: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0794: ldloc.s 10 (System.UInt16)
IL_0796: ldelema CitizenInstance
IL_079B: callvirt virtual System.String CitizenAI::GetDebugString(System.UInt16
instanceID, CitizenInstance& data)
IL_07A0: stloc.s 24 (System.String)
IL_07A2: ldloc.s 24 (System.String)
IL_07A4: brfalse => Label78
IL_07A9: ldloc.s 12 (System.String)
IL_07AB: ldstr "\n"
IL_07B0: ldloc.s 24 (System.String)
IL_07B2: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_07B7: stloc.s 12 (System.String)
IL_07B9: Label76
IL_07B9: Label77
IL_07B9: Label78
IL_07B9: br => Label79
IL_07BE: Label75
IL_07BE: ldloc.s 11 (System.UInt16)
IL_07C0: brfalse => Label80
IL_07C5: call static TransportManager
ColossalFramework.Singleton`1<TransportManager>::get_instance()
IL_07CA: stloc.s 25 (TransportManager)
IL_07CC: ldloc.s 25 (TransportManager)
IL_07CE: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_07D3: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_07D8: ldloc.s 11 (System.UInt16)
IL_07DA: ldelema TransportLine
IL_07DF: ldfld Flags TransportLine::m_flags
IL_07E4: ldc.i4.1
IL_07E5: and
IL_07E6: brfalse => Label81
IL_07EB: ldloc.s 25 (TransportManager)
IL_07ED: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_07F2: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_07F7: ldloc.s 11 (System.UInt16)
IL_07F9: ldelema TransportLine
IL_07FE: call TransportInfo TransportLine::get_Info()
IL_0803: stloc.s 26 (TransportInfo)
IL_0805: ldloc.s 26 (TransportInfo)
IL_0807: ldnull
IL_0808: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_080D: brfalse => Label82
IL_0812: ldstr "{0} ({1})"
IL_0817: ldc.i4.2
IL_0818: newarr System.Object
IL_081D: dup
IL_081E: ldc.i4.0
IL_081F: ldloc.s 26 (TransportInfo)
IL_0821: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_0826: callvirt System.String UnityEngine.Object::get_name()
IL_082B: stelem.ref
IL_082C: dup
IL_082D: ldc.i4.1
IL_082E: ldloc.s 11 (System.UInt16)
IL_0830: box System.UInt16
IL_0835: stelem.ref
IL_0836: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_083B: stloc.s 12 (System.String)
IL_083D: ldloc.s 25 (TransportManager)
IL_083F: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_0844: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_0849: ldloc.s 11 (System.UInt16)
IL_084B: ldelema TransportLine
IL_0850: ldloc.s 11 (System.UInt16)
IL_0852: call System.String TransportLine::GetDebugString(System.UInt16
lineID)
IL_0857: stloc.s 27 (System.String)
IL_0859: ldloc.s 27 (System.String)
IL_085B: brfalse => Label83
IL_0860: ldloc.s 12 (System.String)
IL_0862: ldstr "\n"
IL_0867: ldloc.s 27 (System.String)
IL_0869: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_086E: stloc.s 12 (System.String)
IL_0870: Label64
IL_0870: Label69
IL_0870: Label74
IL_0870: Label79
IL_0870: Label80
IL_0870: Label81
IL_0870: Label82
IL_0870: Label83
IL_0870: ldloc.s 12 (System.String)
IL_0872: brfalse => Label84
IL_0877: ldloc.s 6 (InstanceID)
IL_0879: ldloca.s 28 (UnityEngine.Vector3)
IL_087B: ldloca.s 29 (UnityEngine.Quaternion)
IL_087D: ldloca.s 30 (UnityEngine.Vector3)
IL_087F: call static System.Boolean InstanceManager::GetPosition(InstanceID
id, UnityEngine.Vector3& position, UnityEngine.Quaternion& rotation,
UnityEngine.Vector3& size)
IL_0884: brtrue => Label85
IL_0889: ldarg.0
IL_088A: ldfld UnityEngine.Vector3 DefaultTool::m_mousePosition
IL_088F: stloc.s 28 (UnityEngine.Vector3)
IL_0891: Label85
IL_0891: call static UnityEngine.Camera UnityEngine.Camera::get_main()
IL_0896: ldloc.s 28 (UnityEngine.Vector3)
IL_0898: callvirt UnityEngine.Vector3
UnityEngine.Camera::WorldToScreenPoint(UnityEngine.Vector3 position)
IL_089D: stloc.s 31 (UnityEngine.Vector3)
IL_089F: ldloca.s 31 (UnityEngine.Vector3)
IL_08A1: call static System.Int32 UnityEngine.Screen::get_height()
IL_08A6: conv.r4
IL_08A7: ldloca.s 31 (UnityEngine.Vector3)
IL_08A9: ldfld System.Single UnityEngine.Vector3::y
IL_08AE: sub
IL_08AF: stfld System.Single UnityEngine.Vector3::y
IL_08B4: call static UnityEngine.Color UnityEngine.GUI::get_color()
IL_08B9: stloc.s 32 (UnityEngine.Color)
IL_08BB: call static UnityEngine.Color UnityEngine.Color::get_cyan()
IL_08C0: call static System.Void UnityEngine.GUI::set_color(UnityEngine.Color
value)
IL_08C5: ldloca.s 31 (UnityEngine.Vector3)
IL_08C7: ldfld System.Single UnityEngine.Vector3::x
IL_08CC: ldloca.s 31 (UnityEngine.Vector3)
IL_08CE: ldfld System.Single UnityEngine.Vector3::y
IL_08D3: ldc.r4 500
IL_08D8: ldc.r4 500
IL_08DD: newobj System.Void UnityEngine.Rect::.ctor(System.Single x,
System.Single y, System.Single width, System.Single height)
IL_08E2: ldloc.s 12 (System.String)
IL_08E4: call static UnityEngine.Color UnityEngine.Color::get_black()
IL_08E9: call static UnityEngine.Color UnityEngine.Color::get_cyan()
IL_08EE: call static UnityEngine.GUISkin UnityEngine.GUI::get_skin()
IL_08F3: callvirt UnityEngine.GUIStyle UnityEngine.GUISkin::get_label()
IL_08F8: ldc.r4 2
IL_08FD: 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_0902: ldloc.s 32 (UnityEngine.Color)
IL_0904: call static System.Void UnityEngine.GUI::set_color(UnityEngine.Color
value)
IL_0909: // end original
IL_0909: Label57
IL_0909: Label58
IL_0909: Label59
IL_0909: Label84
IL_0909: ldarg 1
IL_090D: call static System.Void
TrafficManager.Patch._DefaultTool.OnToolGUIPatch::Postfix(UnityEngine.Event e)
IL_0912: 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<PropManager>::get_instance()
IL_0079: ldfld Array16`1<PropInstance> PropManager::m_props
IL_007E: ldfld PropInstance[] Array16`1<PropInstance>::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<TreeManager>::get_instance()
IL_012C: ldfld Array32`1<TreeInstance> TreeManager::m_trees
IL_0131: ldfld TreeInstance[] Array32`1<TreeInstance>::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<BuildingManager>::get_instance()
IL_01E6: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01EB: ldfld Building[] Array16`1<Building>::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<DisasterManager>::get_instance()
IL_03A3: ldfld FastList`1<DisasterData> DisasterManager::m_disasters
IL_03A8: ldfld DisasterData[] FastList`1<DisasterData>::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<NetManager>::get_instance()
IL_04A6: stloc.s 24 (NetManager)
IL_04A8: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_04AD: stloc.s 25 (BuildingManager)
IL_04AF: ldloc.s 25 (BuildingManager)
IL_04B1: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_04B6: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_04F6: ldfld Building[] Array16`1<Building>::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<NetNode> NetManager::m_nodes
IL_0520: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_0543: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0562: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0582: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_05AA: ldfld NetNode[] Array16`1<NetNode>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_05F6: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0618: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0637: ldfld Building[] Array16`1<Building>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_0693: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06AD: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06C7: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06F2: ldfld Building[] Array16`1<Building>::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<NetNode> NetManager::m_nodes
IL_071C: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_073F: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_075E: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_077F: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_07A9: ldfld NetNode[] Array16`1<NetNode>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_07F5: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0817: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0831: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_084B: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0865: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0890: ldfld Building[] Array16`1<Building>::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<LogChannel>::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<NetManager>::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<RenderManager>::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<NetSegment> NetManager::m_segments
IL_09A8: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_09CC: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_09D1: ldloc.s 45 (NetManager)
IL_09D3: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_09D8: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_0A01: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A06: ldloc.s 45 (NetManager)
IL_0A08: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0A0D: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0A73: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0A92: ldfld NetSegment[] Array16`1<NetSegment>::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<ToolManager>::get_instance()
IL_0C1C: ldflda DrawCallData SimulationManagerBase`2<ToolManager,
ToolController>::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<RenderManager>::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<NetSegment> NetManager::m_segments
IL_0C75: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0C96: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0CF4: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0D18: ldfld NetSegment[] Array16`1<NetSegment>::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<TreeManager>::get_instance()
IL_0D40: stloc.s 67 (TreeManager)
IL_0D42: ldloc.s 67 (TreeManager)
IL_0D44: ldfld Array32`1<TreeInstance> TreeManager::m_trees
IL_0D49: ldfld TreeInstance[] Array32`1<TreeInstance>::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<TreeInstance> TreeManager::m_trees
IL_0D64: ldfld TreeInstance[] Array32`1<TreeInstance>::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<PropManager>::get_instance()
IL_0E07: stloc.s 75 (PropManager)
IL_0E09: ldloc.s 75 (PropManager)
IL_0E0B: ldfld Array16`1<PropInstance> PropManager::m_props
IL_0E10: ldfld PropInstance[] Array16`1<PropInstance>::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<PropInstance> PropManager::m_props
IL_0E2A: ldfld PropInstance[] Array16`1<PropInstance>::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<PropInstance> PropManager::m_props
IL_0E44: ldfld PropInstance[] Array16`1<PropInstance>::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<VehicleManager>::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<Vehicle> VehicleManager::m_vehicles
IL_0F0E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0F38: ldfld Vehicle[] Array16`1<Vehicle>::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<VehicleManager>::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<VehicleParked> VehicleManager::m_parkedVehicles
IL_0F87: ldfld VehicleParked[] Array16`1<VehicleParked>::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<VehicleParked> VehicleManager::m_parkedVehicles
IL_0FB1: ldfld VehicleParked[] Array16`1<VehicleParked>::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<CitizenManager>::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<CitizenInstance> CitizenManager::m_instances
IL_1000: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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<CitizenInstance> CitizenManager::m_instances
IL_102A: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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<InfoManager>::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<DistrictManager>::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<InfoManager>::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<DistrictManager>::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<DisasterManager>::get_instance()
IL_1129: stloc.s 104 (DisasterManager)
IL_112B: ldloc.s 104 (DisasterManager)
IL_112D: ldfld FastList`1<DisasterData> DisasterManager::m_disasters
IL_1132: ldfld DisasterData[] FastList`1<DisasterData>::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<DisasterData> DisasterManager::m_disasters
IL_114C: ldfld DisasterData[] FastList`1<DisasterData>::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<DisasterData> DisasterManager::m_disasters
IL_1166: ldfld DisasterData[] FastList`1<DisasterData>::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<Citizen> CitizenManager::m_citizens
IL_0008: ldfld Citizen[] Array32`1<Citizen>::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<CitizenInstance> CitizenManager::m_instances
IL_0008: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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(CitizenMa
nager __instance, System.UInt16 instance)
IL_0022: ret
DONE

### 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<NetManager>::get_instance()
IL_0010: stloc.0
IL_0011: ldloc.0
IL_0012: ldfld FastList`1<System.UInt16> NetManager::m_tempNodeBuffer
IL_0017: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_001C: ldloc.0
IL_001D: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_0022: callvirt System.Void FastList`1<System.UInt16>::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<System.UInt16> 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<System.UInt16> 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<System.UInt16> 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<System.UInt16>::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<NodePosition> 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<NodePosition> 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<System.UInt16> NetManager::m_tempNodeBuffer
IL_022C: ldloc.s 9 (System.UInt16)
IL_022E: callvirt System.Void FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_0268: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_02AC: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16> 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<System.UInt16> 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<NodePosition> 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<NodePosition> 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<System.UInt16> NetManager::m_tempNodeBuffer
IL_056B: ldloc.s 20 (System.UInt16)
IL_056D: callvirt System.Void FastList`1<System.UInt16>::Add(System.UInt16 item)
IL_0572: ldloc.0
IL_0573: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_0578: ldloc.s 21 (System.UInt16)
IL_057A: callvirt System.Void FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_05B6: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_05FC: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_0646: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_067B: ldfld NetSegment[] Array16`1<NetSegment>::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<System.UInt16> NetManager::m_tempNodeBuffer
IL_06D4: ldfld System.UInt16[] FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_06E4: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_071D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_073E: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_075D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0788: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16> NetManager::m_tempNodeBuffer
IL_07C2: ldfld System.Int32 FastList`1<System.UInt16>::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<System.UInt16> NetManager::m_tempSegmentBuffer
IL_07DA: ldfld System.UInt16[] FastList`1<System.UInt16>::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<NetSegment> NetManager::m_segments
IL_07EA: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_080F: ldfld NetSegment[] Array16`1<NetSegment>::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<ToolManager>::get_instance()
IL_083B: ldfld ToolController SimulationManagerBase`2<ToolManager,
ToolController>::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<NetSegment> NetManager::m_segments
IL_0852: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0879: ldfld NetSegment[] Array16`1<NetSegment>::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<System.UInt16> NetManager::m_tempSegmentBuffer
IL_08A9: ldfld System.Int32 FastList`1<System.UInt16>::m_size
IL_08AE: blt => Label60
IL_08B3: ldarg.0
IL_08B4: call static System.Void
TrafficManager.Patches._BuildingDecoration.LoadPathsPatch::AfterIntersectionBuilt(B
uildingInfo info)
IL_08B9: ldloc.0
IL_08BA: ldfld FastList`1<System.UInt16> NetManager::m_tempNodeBuffer
IL_08BF: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_08C4: ldloc.0
IL_08C5: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_08CA: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_08CF: // end original
IL_08CF: Label0
IL_08CF: ret
DONE

### Harmony id=de.viathinksoft.tmpe, version=2.0.1.0, location=E:\Games\data-


0000000016F5EE20, env/clr=2.0.50727.1433, platform=Win32NT,
ptrsize:runtime/env=8/Bits64, Windows
### Started from System.Void TrafficManager.Patcher::Uninstall(), location E:\
Games\data-0000000017B22040
### At 2022-11-05 01.46.17
### 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_Patch1(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<Vehicle> VehicleManager::m_vehicles
IL_0042: ldloca.s 0 (System.UInt16)
IL_0044: ldarg.2
IL_0045: callvirt System.Boolean Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0066: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_007E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_009D: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_00C4: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_00E4: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_00FC: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0114: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_012C: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0144: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_015C: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0178: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0194: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_01B0: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_01CC: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_01E4: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_01FC: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0216: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_022E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0246: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_025E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0276: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_028E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_02A6: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_02BE: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_02D6: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_02EE: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0306: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_031E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0336: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_034E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0366: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_037E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0396: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_03AE: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_03C6: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_03DE: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_03F6: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_040E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_042E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_044D: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0452: ldarg.1
IL_0453: ldind.u2
IL_0454: ldelema Vehicle
IL_0459: ldarg.0
IL_045A: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_045F: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_047C: callvirt System.UInt32 Array16`1<Vehicle>::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: ldloc 2 (System.Boolean)
IL_049A: 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_Patch0(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: // start original
IL_0000: ldarg.0
IL_0001: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0006: ldloca.s 0 (System.UInt16)
IL_0008: ldarg.2
IL_0009: callvirt System.Boolean Array16`1<Vehicle>::CreateItem(System.UInt16&
item, ColossalFramework.Math.Randomizer& r)
IL_000E: brfalse => Label0
IL_0013: ldarg.1
IL_0014: ldloc.0
IL_0015: stind.i2
IL_0016: ldloca.s 1 (Vehicle+Frame)
IL_0018: ldarg.s 4
IL_001A: call static UnityEngine.Quaternion
UnityEngine.Quaternion::get_identity()
IL_001F: call System.Void Frame::.ctor(UnityEngine.Vector3 position,
UnityEngine.Quaternion rotation)
IL_0024: ldarg.0
IL_0025: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_002A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_002F: ldarg.1
IL_0030: ldind.u2
IL_0031: ldelema Vehicle
IL_0036: ldc.i4.1
IL_0037: stfld Flags Vehicle::m_flags
IL_003C: ldarg.0
IL_003D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0042: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0047: ldarg.1
IL_0048: ldind.u2
IL_0049: ldelema Vehicle
IL_004E: ldc.i4.0
IL_004F: stfld Flags2 Vehicle::m_flags2
IL_0054: ldarg.s 6
IL_0056: brfalse => Label1
IL_005B: ldarg.0
IL_005C: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0061: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0066: ldarg.1
IL_0067: ldind.u2
IL_0068: ldelema Vehicle
IL_006D: dup
IL_006E: ldfld Flags Vehicle::m_flags
IL_0073: ldc.i4.s 32
IL_0075: or
IL_0076: stfld Flags Vehicle::m_flags
IL_007B: Label1
IL_007B: ldarg.s 7
IL_007D: brfalse => Label2
IL_0082: ldarg.0
IL_0083: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0088: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_008D: ldarg.1
IL_008E: ldind.u2
IL_008F: ldelema Vehicle
IL_0094: dup
IL_0095: ldfld Flags Vehicle::m_flags
IL_009A: ldc.i4.s 16
IL_009C: or
IL_009D: stfld Flags Vehicle::m_flags
IL_00A2: Label2
IL_00A2: ldarg.0
IL_00A3: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00A8: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00AD: ldarg.1
IL_00AE: ldind.u2
IL_00AF: ldelema Vehicle
IL_00B4: ldarg.3
IL_00B5: call System.Void Vehicle::set_Info(VehicleInfo value)
IL_00BA: ldarg.0
IL_00BB: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00C0: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00C5: ldarg.1
IL_00C6: ldind.u2
IL_00C7: ldelema Vehicle
IL_00CC: ldloc.1
IL_00CD: stfld Frame Vehicle::m_frame0
IL_00D2: ldarg.0
IL_00D3: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00D8: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00DD: ldarg.1
IL_00DE: ldind.u2
IL_00DF: ldelema Vehicle
IL_00E4: ldloc.1
IL_00E5: stfld Frame Vehicle::m_frame1
IL_00EA: ldarg.0
IL_00EB: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00F0: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00F5: ldarg.1
IL_00F6: ldind.u2
IL_00F7: ldelema Vehicle
IL_00FC: ldloc.1
IL_00FD: stfld Frame Vehicle::m_frame2
IL_0102: ldarg.0
IL_0103: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0108: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_010D: ldarg.1
IL_010E: ldind.u2
IL_010F: ldelema Vehicle
IL_0114: ldloc.1
IL_0115: stfld Frame Vehicle::m_frame3
IL_011A: ldarg.0
IL_011B: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0120: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0125: ldarg.1
IL_0126: ldind.u2
IL_0127: ldelema Vehicle
IL_012C: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_0131: stfld UnityEngine.Vector4 Vehicle::m_targetPos0
IL_0136: ldarg.0
IL_0137: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_013C: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0141: ldarg.1
IL_0142: ldind.u2
IL_0143: ldelema Vehicle
IL_0148: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_014D: stfld UnityEngine.Vector4 Vehicle::m_targetPos1
IL_0152: ldarg.0
IL_0153: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0158: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_015D: ldarg.1
IL_015E: ldind.u2
IL_015F: ldelema Vehicle
IL_0164: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_0169: stfld UnityEngine.Vector4 Vehicle::m_targetPos2
IL_016E: ldarg.0
IL_016F: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0174: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0179: ldarg.1
IL_017A: ldind.u2
IL_017B: ldelema Vehicle
IL_0180: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_0185: stfld UnityEngine.Vector4 Vehicle::m_targetPos3
IL_018A: ldarg.0
IL_018B: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0190: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0195: ldarg.1
IL_0196: ldind.u2
IL_0197: ldelema Vehicle
IL_019C: ldc.i4.0
IL_019D: stfld System.UInt16 Vehicle::m_sourceBuilding
IL_01A2: ldarg.0
IL_01A3: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01A8: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01AD: ldarg.1
IL_01AE: ldind.u2
IL_01AF: ldelema Vehicle
IL_01B4: ldc.i4.0
IL_01B5: stfld System.UInt16 Vehicle::m_targetBuilding
IL_01BA: ldarg.0
IL_01BB: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01C0: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01C5: ldarg.1
IL_01C6: ldind.u2
IL_01C7: ldelema Vehicle
IL_01CC: ldarg.s 5
IL_01CE: conv.u1
IL_01CF: stfld System.Byte Vehicle::m_transferType
IL_01D4: ldarg.0
IL_01D5: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01DA: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01DF: ldarg.1
IL_01E0: ldind.u2
IL_01E1: ldelema Vehicle
IL_01E6: ldc.i4.0
IL_01E7: stfld System.UInt16 Vehicle::m_transferSize
IL_01EC: ldarg.0
IL_01ED: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01F2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01F7: ldarg.1
IL_01F8: ldind.u2
IL_01F9: ldelema Vehicle
IL_01FE: ldc.i4.0
IL_01FF: stfld System.Byte Vehicle::m_waitCounter
IL_0204: ldarg.0
IL_0205: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_020A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_020F: ldarg.1
IL_0210: ldind.u2
IL_0211: ldelema Vehicle
IL_0216: ldc.i4.0
IL_0217: stfld System.Byte Vehicle::m_blockCounter
IL_021C: ldarg.0
IL_021D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0222: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0227: ldarg.1
IL_0228: ldind.u2
IL_0229: ldelema Vehicle
IL_022E: ldc.i4.0
IL_022F: stfld System.UInt16 Vehicle::m_nextGridVehicle
IL_0234: ldarg.0
IL_0235: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_023A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_023F: ldarg.1
IL_0240: ldind.u2
IL_0241: ldelema Vehicle
IL_0246: ldc.i4.0
IL_0247: stfld System.UInt16 Vehicle::m_nextOwnVehicle
IL_024C: ldarg.0
IL_024D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0252: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0257: ldarg.1
IL_0258: ldind.u2
IL_0259: ldelema Vehicle
IL_025E: ldc.i4.0
IL_025F: stfld System.UInt16 Vehicle::m_nextGuestVehicle
IL_0264: ldarg.0
IL_0265: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_026A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_026F: ldarg.1
IL_0270: ldind.u2
IL_0271: ldelema Vehicle
IL_0276: ldc.i4.0
IL_0277: stfld System.UInt16 Vehicle::m_nextLineVehicle
IL_027C: ldarg.0
IL_027D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0282: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0287: ldarg.1
IL_0288: ldind.u2
IL_0289: ldelema Vehicle
IL_028E: ldc.i4.0
IL_028F: stfld System.UInt16 Vehicle::m_transportLine
IL_0294: ldarg.0
IL_0295: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_029A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_029F: ldarg.1
IL_02A0: ldind.u2
IL_02A1: ldelema Vehicle
IL_02A6: ldc.i4.0
IL_02A7: stfld System.UInt16 Vehicle::m_leadingVehicle
IL_02AC: ldarg.0
IL_02AD: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02B2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02B7: ldarg.1
IL_02B8: ldind.u2
IL_02B9: ldelema Vehicle
IL_02BE: ldc.i4.0
IL_02BF: stfld System.UInt16 Vehicle::m_trailingVehicle
IL_02C4: ldarg.0
IL_02C5: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02CA: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02CF: ldarg.1
IL_02D0: ldind.u2
IL_02D1: ldelema Vehicle
IL_02D6: ldc.i4.0
IL_02D7: stfld System.UInt16 Vehicle::m_cargoParent
IL_02DC: ldarg.0
IL_02DD: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02E2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02E7: ldarg.1
IL_02E8: ldind.u2
IL_02E9: ldelema Vehicle
IL_02EE: ldc.i4.0
IL_02EF: stfld System.UInt16 Vehicle::m_firstCargo
IL_02F4: ldarg.0
IL_02F5: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02FA: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02FF: ldarg.1
IL_0300: ldind.u2
IL_0301: ldelema Vehicle
IL_0306: ldc.i4.0
IL_0307: stfld System.UInt16 Vehicle::m_nextCargo
IL_030C: ldarg.0
IL_030D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0312: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0317: ldarg.1
IL_0318: ldind.u2
IL_0319: ldelema Vehicle
IL_031E: ldc.i4.0
IL_031F: stfld System.UInt32 Vehicle::m_citizenUnits
IL_0324: ldarg.0
IL_0325: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_032A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_032F: ldarg.1
IL_0330: ldind.u2
IL_0331: ldelema Vehicle
IL_0336: ldc.i4.0
IL_0337: stfld System.UInt32 Vehicle::m_path
IL_033C: ldarg.0
IL_033D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0342: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0347: ldarg.1
IL_0348: ldind.u2
IL_0349: ldelema Vehicle
IL_034E: ldc.i4.0
IL_034F: stfld System.Byte Vehicle::m_lastFrame
IL_0354: ldarg.0
IL_0355: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_035A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_035F: ldarg.1
IL_0360: ldind.u2
IL_0361: ldelema Vehicle
IL_0366: ldc.i4.0
IL_0367: stfld System.Byte Vehicle::m_pathPositionIndex
IL_036C: ldarg.0
IL_036D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0372: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0377: ldarg.1
IL_0378: ldind.u2
IL_0379: ldelema Vehicle
IL_037E: ldc.i4.0
IL_037F: stfld System.Byte Vehicle::m_lastPathOffset
IL_0384: ldarg.0
IL_0385: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_038A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_038F: ldarg.1
IL_0390: ldind.u2
IL_0391: ldelema Vehicle
IL_0396: ldc.i4.0
IL_0397: stfld System.Byte Vehicle::m_gateIndex
IL_039C: ldarg.0
IL_039D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03A2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03A7: ldarg.1
IL_03A8: ldind.u2
IL_03A9: ldelema Vehicle
IL_03AE: ldc.i4.0
IL_03AF: stfld System.UInt16 Vehicle::m_waterSource
IL_03B4: ldarg.0
IL_03B5: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03BA: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03BF: ldarg.1
IL_03C0: ldind.u2
IL_03C1: ldelema Vehicle
IL_03C6: ldc.i4.0
IL_03C7: stfld System.UInt16 Vehicle::m_touristCount
IL_03CC: ldarg.0
IL_03CD: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03D2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03D7: ldarg.1
IL_03D8: ldind.u2
IL_03D9: ldelema Vehicle
IL_03DE: ldc.i4.0
IL_03DF: stfld System.UInt16 Vehicle::m_custom
IL_03E4: ldarg.3
IL_03E5: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_03EA: ldarg.1
IL_03EB: ldind.u2
IL_03EC: ldarg.0
IL_03ED: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03F2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03F7: ldarg.1
IL_03F8: ldind.u2
IL_03F9: ldelema Vehicle
IL_03FE: callvirt virtual System.Void VehicleAI::CreateVehicle(System.UInt16
vehicleID, Vehicle& data)
IL_0403: ldarg.3
IL_0404: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_0409: ldarg.1
IL_040A: ldind.u2
IL_040B: ldarg.0
IL_040C: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0411: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0416: ldarg.1
IL_0417: ldind.u2
IL_0418: ldelema Vehicle
IL_041D: ldarg.0
IL_041E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0423: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0428: ldarg.1
IL_0429: ldind.u2
IL_042A: ldelema Vehicle
IL_042F: ldflda Frame Vehicle::m_frame0
IL_0434: callvirt virtual System.Void VehicleAI::FrameDataUpdated(System.UInt16
vehicleID, Vehicle& vehicleData, Frame& frameData)
IL_0439: ldarg.0
IL_043A: ldarg.0
IL_043B: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0440: callvirt System.UInt32 Array16`1<Vehicle>::ItemCount()
IL_0445: ldc.i4.1
IL_0446: sub
IL_0447: stfld System.Int32 VehicleManager::m_vehicleCount
IL_044C: ldc.i4.1
IL_044D: br => Label3
IL_0452: Label0
IL_0452: ldarg.1
IL_0453: ldc.i4.0
IL_0454: stind.i2
IL_0455: ldc.i4.0
IL_0456: // end original
IL_0456: Label3
IL_0456: ret
DONE

### Patch: System.Void VehicleManager::ReleaseVehicle(System.UInt16 vehicle)


### Replacement: static System.Void
VehicleManager::VehicleManager.ReleaseVehicle_Patch0(VehicleManager this,
System.UInt16 vehicle)
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: ldarg.0
IL_0003: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0008: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_000D: ldarg.1
IL_000E: ldelema Vehicle
IL_0013: call System.Void
VehicleManager::ReleaseVehicleImplementation(System.UInt16 vehicle, Vehicle& data)
IL_0018: // end original
IL_0018: ret
DONE

### Patch: System.Void NetManager::UpdateSegment(System.UInt16 segment,


System.UInt16 fromNode, System.Int32 level)
### Replacement: static System.Void
NetManager::NetManager.UpdateSegment_Patch0(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<NetSegment> NetManager::m_segments
IL_0030: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0047: ldfld NetSegment[] Array16`1<NetSegment>::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: ret
DONE

### Patch: System.Void NetManager::FinalizeSegment(System.UInt16 segment,


NetSegment& data)
### Replacement: static System.Void
NetManager::NetManager.FinalizeSegment_Patch0(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<NetNode> NetManager::m_nodes
IL_0006: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0021: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_00CD: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_00F3: ldfld NetSegment[] Array16`1<NetSegment>::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<LogChannel>::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: ret
DONE

### Patch: static System.Void RoadBaseAI::TrafficLightSimulationStep(System.UInt16


nodeID, NetNode& data)
### Replacement: static System.Void
RoadBaseAI::RoadBaseAI.TrafficLightSimulationStep_Patch0(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.Int32
IL_0000: Local var 38: System.UInt16
IL_0000: Local var 39: RoadBaseAI/TrafficLightState
IL_0000: Local var 40: RoadBaseAI/TrafficLightState
IL_0000: Local var 41: UnityEngine.Vector3
IL_0000: // start original
IL_0000: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0005: stloc.0
IL_0006: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_000B: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0010: stloc.1
IL_0011: ldarg.1
IL_0012: ldfld System.Byte NetNode::m_maxWaitTime
IL_0017: ldc.i4.3
IL_0018: and
IL_0019: stloc.2
IL_001A: ldarg.1
IL_001B: ldfld System.Byte NetNode::m_maxWaitTime
IL_0020: ldc.i4.2
IL_0021: shr
IL_0022: ldc.i4.7
IL_0023: and
IL_0024: stloc.3
IL_0025: ldarg.1
IL_0026: ldfld System.Byte NetNode::m_maxWaitTime
IL_002B: ldc.i4.5
IL_002C: shr
IL_002D: stloc.s 4 (System.Int32)
IL_002F: ldc.i4.m1
IL_0030: stloc.s 5 (System.Int32)
IL_0032: ldc.i4.m1
IL_0033: stloc.s 6 (System.Int32)
IL_0035: ldc.i4.m1
IL_0036: stloc.s 7 (System.Int32)
IL_0038: ldc.i4.m1
IL_0039: stloc.s 8 (System.Int32)
IL_003B: ldc.i4.m1
IL_003C: stloc.s 9 (System.Int32)
IL_003E: ldc.i4.m1
IL_003F: stloc.s 10 (System.Int32)
IL_0041: ldc.i4.0
IL_0042: stloc.s 11 (System.Int32)
IL_0044: ldc.i4.0
IL_0045: stloc.s 12 (System.Int32)
IL_0047: ldc.i4.0
IL_0048: stloc.s 13 (System.Int32)
IL_004A: ldc.i4.0
IL_004B: stloc.s 14 (System.Int32)
IL_004D: ldc.i4.0
IL_004E: stloc.s 15 (System.Int32)
IL_0050: ldc.i4.0
IL_0051: stloc.s 16 (System.Int32)
IL_0053: br => Label0
IL_0058: Label22
IL_0058: ldarg.1
IL_0059: ldloc.s 16 (System.Int32)
IL_005B: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0060: stloc.s 17 (System.UInt16)
IL_0062: ldloc.s 17 (System.UInt16)
IL_0064: brfalse => Label1
IL_0069: ldc.i4.0
IL_006A: stloc.s 18 (System.Int32)
IL_006C: ldc.i4.0
IL_006D: stloc.s 19 (System.Int32)
IL_006F: ldloc.0
IL_0070: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0075: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_007A: ldloc.s 17 (System.UInt16)
IL_007C: ldelema NetSegment
IL_0081: ldloc.s 17 (System.UInt16)
IL_0083: ldc.i4.s 33
IL_0085: ldc.i4 65601
IL_008A: ldloca.s 18 (System.Int32)
IL_008C: ldloca.s 19 (System.Int32)
IL_008E: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_0093: ldloc.0
IL_0094: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0099: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_009E: ldloc.s 17 (System.UInt16)
IL_00A0: ldelema NetSegment
IL_00A5: ldfld System.UInt16 NetSegment::m_startNode
IL_00AA: ldarg.0
IL_00AB: ceq
IL_00AD: stloc.s 20 (System.Boolean)
IL_00AF: ldloc.s 20 (System.Boolean)
IL_00B1: brfalse => Label2
IL_00B6: ldloc.s 19 (System.Int32)
IL_00B8: ldc.i4.0
IL_00B9: ceq
IL_00BB: ldc.i4.0
IL_00BC: ceq
IL_00BE: br => Label3
IL_00C3: Label2
IL_00C3: ldloc.s 18 (System.Int32)
IL_00C5: ldc.i4.0
IL_00C6: ceq
IL_00C8: ldc.i4.0
IL_00C9: ceq
IL_00CB: Label3
IL_00CB: stloc.s 21 (System.Boolean)
IL_00CD: ldloc.s 20 (System.Boolean)
IL_00CF: brfalse => Label4
IL_00D4: ldloc.s 18 (System.Int32)
IL_00D6: ldc.i4.0
IL_00D7: ceq
IL_00D9: ldc.i4.0
IL_00DA: ceq
IL_00DC: br => Label5
IL_00E1: Label4
IL_00E1: ldloc.s 19 (System.Int32)
IL_00E3: ldc.i4.0
IL_00E4: ceq
IL_00E6: ldc.i4.0
IL_00E7: ceq
IL_00E9: Label5
IL_00E9: stloc.s 22 (System.Boolean)
IL_00EB: ldloc.s 21 (System.Boolean)
IL_00ED: brfalse => Label6
IL_00F2: ldloc.s 11 (System.Int32)
IL_00F4: ldc.i4.1
IL_00F5: ldloc.s 16 (System.Int32)
IL_00F7: ldc.i4.s 31
IL_00F9: and
IL_00FA: shl
IL_00FB: or
IL_00FC: stloc.s 11 (System.Int32)
IL_00FE: Label6
IL_00FE: ldloc.s 22 (System.Boolean)
IL_0100: brfalse => Label7
IL_0105: ldloc.s 12 (System.Int32)
IL_0107: ldc.i4.1
IL_0108: ldloc.s 16 (System.Int32)
IL_010A: ldc.i4.s 31
IL_010C: and
IL_010D: shl
IL_010E: or
IL_010F: stloc.s 12 (System.Int32)
IL_0111: ldloc.s 14 (System.Int32)
IL_0113: ldc.i4.1
IL_0114: add
IL_0115: stloc.s 14 (System.Int32)
IL_0117: Label7
IL_0117: ldarg.0
IL_0118: ldloc.0
IL_0119: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_011E: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0123: ldloc.s 17 (System.UInt16)
IL_0125: ldelema NetSegment
IL_012A: ldloc.1
IL_012B: ldc.i4 256
IL_0130: sub
IL_0131: ldloca.s 23 (RoadBaseAI+TrafficLightState)
IL_0133: ldloca.s 24 (RoadBaseAI+TrafficLightState)
IL_0135: ldloca.s 25 (System.Boolean)
IL_0137: ldloca.s 26 (System.Boolean)
IL_0139: 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_013E: ldloc.s 24 (RoadBaseAI+TrafficLightState)
IL_0140: ldc.i4.2
IL_0141: and
IL_0142: brfalse => Label8
IL_0147: ldloc.s 26 (System.Boolean)
IL_0149: brfalse => Label9
IL_014E: ldloc.s 8 (System.Int32)
IL_0150: ldc.i4.m1
IL_0151: bne.un => Label10
IL_0156: ldloc.s 16 (System.Int32)
IL_0158: stloc.s 8 (System.Int32)
IL_015A: Label10
IL_015A: ldloc.s 10 (System.Int32)
IL_015C: ldc.i4.m1
IL_015D: bne.un => Label11
IL_0162: ldloc.s 15 (System.Int32)
IL_0164: ldloc.s 4 (System.Int32)
IL_0166: blt => Label12
IL_016B: ldloc.s 16 (System.Int32)
IL_016D: stloc.s 10 (System.Int32)
IL_016F: Label8
IL_016F: Label9
IL_016F: Label11
IL_016F: Label12
IL_016F: ldloc.s 15 (System.Int32)
IL_0171: ldc.i4.1
IL_0172: add
IL_0173: stloc.s 15 (System.Int32)
IL_0175: ldloc.s 21 (System.Boolean)
IL_0177: brtrue => Label13
IL_017C: ldloc.s 25 (System.Boolean)
IL_017E: brfalse => Label14
IL_0183: Label13
IL_0183: ldloc.s 23 (RoadBaseAI+TrafficLightState)
IL_0185: ldc.i4.2
IL_0186: and
IL_0187: brtrue => Label15
IL_018C: ldloc.s 16 (System.Int32)
IL_018E: stloc.s 6 (System.Int32)
IL_0190: ldloc.s 25 (System.Boolean)
IL_0192: brfalse => Label16
IL_0197: ldloc.s 16 (System.Int32)
IL_0199: stloc.s 5 (System.Int32)
IL_019B: Label16
IL_019B: br => Label17
IL_01A0: Label15
IL_01A0: ldloc.s 25 (System.Boolean)
IL_01A2: brfalse => Label18
IL_01A7: ldloc.s 7 (System.Int32)
IL_01A9: ldc.i4.m1
IL_01AA: bne.un => Label19
IL_01AF: ldloc.s 16 (System.Int32)
IL_01B1: stloc.s 7 (System.Int32)
IL_01B3: Label19
IL_01B3: ldloc.s 9 (System.Int32)
IL_01B5: ldc.i4.m1
IL_01B6: bne.un => Label20
IL_01BB: ldloc.s 13 (System.Int32)
IL_01BD: ldloc.3
IL_01BE: blt => Label21
IL_01C3: ldloc.s 16 (System.Int32)
IL_01C5: stloc.s 9 (System.Int32)
IL_01C7: Label17
IL_01C7: Label18
IL_01C7: Label20
IL_01C7: Label21
IL_01C7: ldloc.s 13 (System.Int32)
IL_01C9: ldc.i4.1
IL_01CA: add
IL_01CB: stloc.s 13 (System.Int32)
IL_01CD: Label1
IL_01CD: Label14
IL_01CD: ldloc.s 16 (System.Int32)
IL_01CF: ldc.i4.1
IL_01D0: add
IL_01D1: stloc.s 16 (System.Int32)
IL_01D3: Label0
IL_01D3: ldloc.s 16 (System.Int32)
IL_01D5: ldc.i4.8
IL_01D6: blt => Label22
IL_01DB: ldloc.s 9 (System.Int32)
IL_01DD: ldc.i4.m1
IL_01DE: bne.un => Label23
IL_01E3: ldloc.s 7 (System.Int32)
IL_01E5: stloc.s 9 (System.Int32)
IL_01E7: Label23
IL_01E7: ldloc.s 10 (System.Int32)
IL_01E9: ldc.i4.m1
IL_01EA: bne.un => Label24
IL_01EF: ldloc.s 8 (System.Int32)
IL_01F1: stloc.s 10 (System.Int32)
IL_01F3: Label24
IL_01F3: ldloc.s 6 (System.Int32)
IL_01F5: ldc.i4.m1
IL_01F6: beq => Label25
IL_01FB: ldloc.s 5 (System.Int32)
IL_01FD: ldc.i4.m1
IL_01FE: beq => Label26
IL_0203: ldloc.2
IL_0204: ldc.i4.1
IL_0205: bgt => Label27
IL_020A: ldc.i4.m1
IL_020B: stloc.s 9 (System.Int32)
IL_020D: ldc.i4.m1
IL_020E: stloc.s 10 (System.Int32)
IL_0210: ldloc.2
IL_0211: ldc.i4.1
IL_0212: add
IL_0213: stloc.2
IL_0214: Label25
IL_0214: Label26
IL_0214: Label27
IL_0214: ldloc.s 10 (System.Int32)
IL_0216: ldc.i4.m1
IL_0217: beq => Label28
IL_021C: ldloc.s 9 (System.Int32)
IL_021E: ldc.i4.m1
IL_021F: beq => Label29
IL_0224: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0229: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_022E: ldc.i4.3
IL_022F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0234: brfalse => Label30
IL_0239: ldc.i4.m1
IL_023A: stloc.s 10 (System.Int32)
IL_023C: Label28
IL_023C: Label29
IL_023C: Label30
IL_023C: ldloc.s 9 (System.Int32)
IL_023E: ldc.i4.m1
IL_023F: beq => Label31
IL_0244: ldloc.s 9 (System.Int32)
IL_0246: stloc.s 6 (System.Int32)
IL_0248: Label31
IL_0248: ldloc.s 10 (System.Int32)
IL_024A: ldloc.s 6 (System.Int32)
IL_024C: bne.un => Label32
IL_0251: ldc.i4.m1
IL_0252: stloc.s 6 (System.Int32)
IL_0254: Label32
IL_0254: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_0259: stloc.s 27 (UnityEngine.Vector3)
IL_025B: ldloc.s 10 (System.Int32)
IL_025D: ldc.i4.m1
IL_025E: beq => Label33
IL_0263: ldarg.1
IL_0264: ldloc.s 10 (System.Int32)
IL_0266: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_026B: stloc.s 28 (System.UInt16)
IL_026D: ldloc.0
IL_026E: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0273: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0278: ldloc.s 28 (System.UInt16)
IL_027A: ldelema NetSegment
IL_027F: ldarg.0
IL_0280: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0285: stloc.s 27 (UnityEngine.Vector3)
IL_0287: ldloc.s 6 (System.Int32)
IL_0289: ldc.i4.m1
IL_028A: beq => Label34
IL_028F: ldarg.1
IL_0290: ldloc.s 6 (System.Int32)
IL_0292: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0297: stloc.s 28 (System.UInt16)
IL_0299: ldloc.0
IL_029A: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_029F: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02A4: ldloc.s 28 (System.UInt16)
IL_02A6: ldelema NetSegment
IL_02AB: ldarg.0
IL_02AC: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_02B1: stloc.s 29 (UnityEngine.Vector3)
IL_02B3: ldloca.s 29 (UnityEngine.Vector3)
IL_02B5: ldfld System.Single UnityEngine.Vector3::x
IL_02BA: ldloca.s 27 (UnityEngine.Vector3)
IL_02BC: ldfld System.Single UnityEngine.Vector3::x
IL_02C1: mul
IL_02C2: ldloca.s 29 (UnityEngine.Vector3)
IL_02C4: ldfld System.Single UnityEngine.Vector3::z
IL_02C9: ldloca.s 27 (UnityEngine.Vector3)
IL_02CB: ldfld System.Single UnityEngine.Vector3::z
IL_02D0: mul
IL_02D1: add
IL_02D2: ldc.r4 -0.5
IL_02D7: bge.un => Label35
IL_02DC: ldc.i4.m1
IL_02DD: stloc.s 6 (System.Int32)
IL_02DF: Label34
IL_02DF: Label35
IL_02DF: ldloc.s 6 (System.Int32)
IL_02E1: ldc.i4.m1
IL_02E2: bne.un => Label36
IL_02E7: ldc.i4.0
IL_02E8: stloc.s 30 (System.Int32)
IL_02EA: br => Label37
IL_02EF: Label43
IL_02EF: ldloc.s 30 (System.Int32)
IL_02F1: ldloc.s 10 (System.Int32)
IL_02F3: beq => Label38
IL_02F8: ldloc.s 11 (System.Int32)
IL_02FA: ldc.i4.1
IL_02FB: ldloc.s 30 (System.Int32)
IL_02FD: ldc.i4.s 31
IL_02FF: and
IL_0300: shl
IL_0301: and
IL_0302: brfalse => Label39
IL_0307: ldarg.1
IL_0308: ldloc.s 30 (System.Int32)
IL_030A: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_030F: stloc.s 28 (System.UInt16)
IL_0311: ldloc.s 28 (System.UInt16)
IL_0313: brfalse => Label40
IL_0318: ldloc.0
IL_0319: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_031E: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0323: ldloc.s 28 (System.UInt16)
IL_0325: ldelema NetSegment
IL_032A: ldarg.0
IL_032B: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0330: stloc.s 31 (UnityEngine.Vector3)
IL_0332: ldloca.s 31 (UnityEngine.Vector3)
IL_0334: ldfld System.Single UnityEngine.Vector3::x
IL_0339: ldloca.s 27 (UnityEngine.Vector3)
IL_033B: ldfld System.Single UnityEngine.Vector3::x
IL_0340: mul
IL_0341: ldloca.s 31 (UnityEngine.Vector3)
IL_0343: ldfld System.Single UnityEngine.Vector3::z
IL_0348: ldloca.s 27 (UnityEngine.Vector3)
IL_034A: ldfld System.Single UnityEngine.Vector3::z
IL_034F: mul
IL_0350: add
IL_0351: ldc.r4 -0.5
IL_0356: blt.un => Label41
IL_035B: ldloc.s 30 (System.Int32)
IL_035D: stloc.s 6 (System.Int32)
IL_035F: br => Label42
IL_0364: Label38
IL_0364: Label39
IL_0364: Label40
IL_0364: Label41
IL_0364: ldloc.s 30 (System.Int32)
IL_0366: ldc.i4.1
IL_0367: add
IL_0368: stloc.s 30 (System.Int32)
IL_036A: Label37
IL_036A: ldloc.s 30 (System.Int32)
IL_036C: ldc.i4.8
IL_036D: blt => Label43
IL_0372: Label33
IL_0372: Label36
IL_0372: Label42
IL_0372: ldc.i4.m1
IL_0373: stloc.s 32 (System.Int32)
IL_0375: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_037A: stloc.s 33 (UnityEngine.Vector3)
IL_037C: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_0381: stloc.s 34 (UnityEngine.Vector3)
IL_0383: ldloc.s 6 (System.Int32)
IL_0385: ldc.i4.m1
IL_0386: beq => Label44
IL_038B: ldarg.1
IL_038C: ldloc.s 6 (System.Int32)
IL_038E: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0393: stloc.s 35 (System.UInt16)
IL_0395: ldloc.0
IL_0396: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_039B: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_03A0: ldloc.s 35 (System.UInt16)
IL_03A2: ldelema NetSegment
IL_03A7: ldarg.0
IL_03A8: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_03AD: stloc.s 33 (UnityEngine.Vector3)
IL_03AF: ldloc.s 11 (System.Int32)
IL_03B1: ldloc.s 12 (System.Int32)
IL_03B3: and
IL_03B4: ldc.i4.1
IL_03B5: ldloc.s 6 (System.Int32)
IL_03B7: ldc.i4.s 31
IL_03B9: and
IL_03BA: shl
IL_03BB: and
IL_03BC: brfalse => Label45
IL_03C1: ldc.i4.0
IL_03C2: stloc.s 36 (System.Int32)
IL_03C4: br => Label46
IL_03C9: Label57
IL_03C9: ldloc.s 36 (System.Int32)
IL_03CB: ldloc.s 6 (System.Int32)
IL_03CD: beq => Label47
IL_03D2: ldloc.s 36 (System.Int32)
IL_03D4: ldloc.s 10 (System.Int32)
IL_03D6: beq => Label48
IL_03DB: ldloc.s 11 (System.Int32)
IL_03DD: ldloc.s 12 (System.Int32)
IL_03DF: and
IL_03E0: ldc.i4.1
IL_03E1: ldloc.s 36 (System.Int32)
IL_03E3: ldc.i4.s 31
IL_03E5: and
IL_03E6: shl
IL_03E7: and
IL_03E8: brfalse => Label49
IL_03ED: ldarg.1
IL_03EE: ldloc.s 36 (System.Int32)
IL_03F0: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_03F5: stloc.s 35 (System.UInt16)
IL_03F7: ldloc.s 35 (System.UInt16)
IL_03F9: brfalse => Label50
IL_03FE: ldloc.0
IL_03FF: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0404: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0409: ldloc.s 35 (System.UInt16)
IL_040B: ldelema NetSegment
IL_0410: ldarg.0
IL_0411: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0416: stloc.s 34 (UnityEngine.Vector3)
IL_0418: ldloc.s 10 (System.Int32)
IL_041A: ldc.i4.m1
IL_041B: beq => Label51
IL_0420: ldloca.s 34 (UnityEngine.Vector3)
IL_0422: ldfld System.Single UnityEngine.Vector3::x
IL_0427: ldloca.s 27 (UnityEngine.Vector3)
IL_0429: ldfld System.Single UnityEngine.Vector3::x
IL_042E: mul
IL_042F: ldloca.s 34 (UnityEngine.Vector3)
IL_0431: ldfld System.Single UnityEngine.Vector3::z
IL_0436: ldloca.s 27 (UnityEngine.Vector3)
IL_0438: ldfld System.Single UnityEngine.Vector3::z
IL_043D: mul
IL_043E: add
IL_043F: ldc.r4 -0.5
IL_0444: blt.un => Label52
IL_0449: Label51
IL_0449: ldloc.s 14 (System.Int32)
IL_044B: ldc.i4.2
IL_044C: bne.un => Label53
IL_0451: ldloc.s 36 (System.Int32)
IL_0453: stloc.s 32 (System.Int32)
IL_0455: br => Label54
IL_045A: Label53
IL_045A: ldloca.s 34 (UnityEngine.Vector3)
IL_045C: ldfld System.Single UnityEngine.Vector3::x
IL_0461: ldloca.s 33 (UnityEngine.Vector3)
IL_0463: ldfld System.Single UnityEngine.Vector3::x
IL_0468: mul
IL_0469: ldloca.s 34 (UnityEngine.Vector3)
IL_046B: ldfld System.Single UnityEngine.Vector3::z
IL_0470: ldloca.s 33 (UnityEngine.Vector3)
IL_0472: ldfld System.Single UnityEngine.Vector3::z
IL_0477: mul
IL_0478: add
IL_0479: ldc.r4 -0.9396926
IL_047E: bge.un => Label55
IL_0483: ldloc.s 36 (System.Int32)
IL_0485: stloc.s 32 (System.Int32)
IL_0487: br => Label56
IL_048C: Label47
IL_048C: Label48
IL_048C: Label49
IL_048C: Label50
IL_048C: Label52
IL_048C: Label55
IL_048C: ldloc.s 36 (System.Int32)
IL_048E: ldc.i4.1
IL_048F: add
IL_0490: stloc.s 36 (System.Int32)
IL_0492: Label46
IL_0492: ldloc.s 36 (System.Int32)
IL_0494: ldc.i4.8
IL_0495: blt => Label57
IL_049A: Label44
IL_049A: Label45
IL_049A: Label54
IL_049A: Label56
IL_049A: ldc.i4.0
IL_049B: stloc.s 37 (System.Int32)
IL_049D: br => Label58
IL_04A2: Label77
IL_04A2: ldarg.1
IL_04A3: ldloc.s 37 (System.Int32)
IL_04A5: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_04AA: stloc.s 38 (System.UInt16)
IL_04AC: ldloc.s 38 (System.UInt16)
IL_04AE: brfalse => Label59
IL_04B3: ldarg.0
IL_04B4: ldloc.0
IL_04B5: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_04BA: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_04BF: ldloc.s 38 (System.UInt16)
IL_04C1: ldelema NetSegment
IL_04C6: ldloc.1
IL_04C7: ldc.i4 256
IL_04CC: sub
IL_04CD: ldloca.s 39 (RoadBaseAI+TrafficLightState)
IL_04CF: ldloca.s 40 (RoadBaseAI+TrafficLightState)
IL_04D1: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_04D6: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_04D8: ldc.i4.s -2
IL_04DA: and
IL_04DB: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_04DD: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_04DF: ldc.i4.s -2
IL_04E1: and
IL_04E2: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_04E4: ldloc.s 6 (System.Int32)
IL_04E6: ldloc.s 37 (System.Int32)
IL_04E8: beq => Label60
IL_04ED: ldloc.s 32 (System.Int32)
IL_04EF: ldloc.s 37 (System.Int32)
IL_04F1: bne.un => Label61
IL_04F6: Label60
IL_04F6: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_04F8: ldc.i4.2
IL_04F9: and
IL_04FA: brfalse => Label62
IL_04FF: ldc.i4.1
IL_0500: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0502: ldc.i4.0
IL_0503: stloc.2
IL_0504: ldloc.3
IL_0505: ldc.i4.1
IL_0506: add
IL_0507: dup
IL_0508: stloc.3
IL_0509: ldloc.s 13 (System.Int32)
IL_050B: blt => Label63
IL_0510: ldc.i4.0
IL_0511: stloc.3
IL_0512: Label62
IL_0512: Label63
IL_0512: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0514: ldc.i4.2
IL_0515: and
IL_0516: brtrue => Label64
IL_051B: ldc.i4.3
IL_051C: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_051E: Label64
IL_051E: br => Label65
IL_0523: Label61
IL_0523: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0525: ldc.i4.2
IL_0526: and
IL_0527: brtrue => Label66
IL_052C: ldc.i4.3
IL_052D: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_052F: Label66
IL_052F: ldloc.0
IL_0530: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0535: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_053A: ldloc.s 38 (System.UInt16)
IL_053C: ldelema NetSegment
IL_0541: ldarg.0
IL_0542: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0547: stloc.s 41 (UnityEngine.Vector3)
IL_0549: ldloc.s 12 (System.Int32)
IL_054B: ldc.i4.1
IL_054C: ldloc.s 37 (System.Int32)
IL_054E: ldc.i4.s 31
IL_0550: and
IL_0551: shl
IL_0552: and
IL_0553: brfalse => Label67
IL_0558: ldloc.s 10 (System.Int32)
IL_055A: ldloc.s 37 (System.Int32)
IL_055C: beq => Label68
IL_0561: ldloc.s 6 (System.Int32)
IL_0563: ldc.i4.m1
IL_0564: beq => Label69
IL_0569: ldloca.s 41 (UnityEngine.Vector3)
IL_056B: ldfld System.Single UnityEngine.Vector3::x
IL_0570: ldloca.s 33 (UnityEngine.Vector3)
IL_0572: ldfld System.Single UnityEngine.Vector3::x
IL_0577: mul
IL_0578: ldloca.s 41 (UnityEngine.Vector3)
IL_057A: ldfld System.Single UnityEngine.Vector3::z
IL_057F: ldloca.s 33 (UnityEngine.Vector3)
IL_0581: ldfld System.Single UnityEngine.Vector3::z
IL_0586: mul
IL_0587: add
IL_0588: ldc.r4 -0.5
IL_058D: blt => Label70
IL_0592: Label69
IL_0592: ldloc.s 32 (System.Int32)
IL_0594: ldc.i4.m1
IL_0595: beq => Label71
IL_059A: ldloca.s 41 (UnityEngine.Vector3)
IL_059C: ldfld System.Single UnityEngine.Vector3::x
IL_05A1: ldloca.s 34 (UnityEngine.Vector3)
IL_05A3: ldfld System.Single UnityEngine.Vector3::x
IL_05A8: mul
IL_05A9: ldloca.s 41 (UnityEngine.Vector3)
IL_05AB: ldfld System.Single UnityEngine.Vector3::z
IL_05B0: ldloca.s 34 (UnityEngine.Vector3)
IL_05B2: ldfld System.Single UnityEngine.Vector3::z
IL_05B7: mul
IL_05B8: add
IL_05B9: ldc.r4 -0.5
IL_05BE: bge.un => Label72
IL_05C3: Label70
IL_05C3: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05C5: ldc.i4.2
IL_05C6: and
IL_05C7: brtrue => Label73
IL_05CC: ldc.i4.3
IL_05CD: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05CF: Label73
IL_05CF: br => Label74
IL_05D4: Label67
IL_05D4: Label68
IL_05D4: Label71
IL_05D4: Label72
IL_05D4: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05D6: ldc.i4.2
IL_05D7: and
IL_05D8: brfalse => Label75
IL_05DD: ldc.i4.1
IL_05DE: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05E0: ldloc.s 4 (System.Int32)
IL_05E2: ldc.i4.1
IL_05E3: add
IL_05E4: dup
IL_05E5: stloc.s 4 (System.Int32)
IL_05E7: ldloc.s 15 (System.Int32)
IL_05E9: blt => Label76
IL_05EE: ldc.i4.0
IL_05EF: stloc.s 4 (System.Int32)
IL_05F1: Label65
IL_05F1: Label74
IL_05F1: Label75
IL_05F1: Label76
IL_05F1: ldarg.0
IL_05F2: ldloc.0
IL_05F3: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_05F8: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_05FD: ldloc.s 38 (System.UInt16)
IL_05FF: ldelema NetSegment
IL_0604: ldloc.1
IL_0605: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0607: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0609: ldc.i4.0
IL_060A: ldc.i4.0
IL_060B: 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_0610: Label59
IL_0610: ldloc.s 37 (System.Int32)
IL_0612: ldc.i4.1
IL_0613: add
IL_0614: stloc.s 37 (System.Int32)
IL_0616: Label58
IL_0616: ldloc.s 37 (System.Int32)
IL_0618: ldc.i4.8
IL_0619: blt => Label77
IL_061E: ldarg.1
IL_061F: ldloc.s 4 (System.Int32)
IL_0621: ldc.i4.5
IL_0622: shl
IL_0623: ldloc.3
IL_0624: ldc.i4.2
IL_0625: shl
IL_0626: or
IL_0627: ldloc.2
IL_0628: or
IL_0629: conv.u1
IL_062A: stfld System.Byte NetNode::m_maxWaitTime
IL_062F: // end original
IL_062F: ret
DONE

### Patch: static System.Void RoadBaseAI::GetTrafficLightNodeState(System.UInt16


nodeID, NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData, Flags&
flags, UnityEngine.Color& color)
### Replacement: static System.Void
RoadBaseAI::RoadBaseAI.GetTrafficLightNodeState_Patch0(System.UInt16 nodeID,
NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData, Flags& 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: // start original
IL_0000: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0005: ldfld System.UInt32 SimulationManager::m_referenceFrameIndex
IL_000A: ldc.i4.s 15
IL_000C: sub
IL_000D: stloc.2
IL_000E: ldarg.0
IL_000F: ldc.i4.8
IL_0010: shl
IL_0011: ldc.i4 32768
IL_0016: div.un
IL_0017: stloc.3
IL_0018: ldloc.2
IL_0019: ldloc.3
IL_001A: sub
IL_001B: ldc.i4 255
IL_0020: and
IL_0021: stloc.s 4 (System.UInt32)
IL_0023: ldarg.0
IL_0024: ldarg.3
IL_0025: ldloc.2
IL_0026: ldloc.3
IL_0027: sub
IL_0028: ldloca.s 0 (RoadBaseAI+TrafficLightState)
IL_002A: ldloca.s 1 (RoadBaseAI+TrafficLightState)
IL_002C: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_0031: ldarg.s 5
IL_0033: ldc.r4 0.5
IL_0038: stfld System.Single UnityEngine.Color::a
IL_003D: ldloc.0
IL_003E: switch => Labels0,1,2,3
IL_0053: br => Label4
IL_0058: Label0
IL_0058: ldarg.s 5
IL_005A: ldc.r4 1
IL_005F: stfld System.Single UnityEngine.Color::g
IL_0064: br => Label5
IL_0069: Label1
IL_0069: ldloc.s 4 (System.UInt32)
IL_006B: ldc.i4.s 45
IL_006D: bge.un => Label6
IL_0072: ldarg.s 5
IL_0074: ldc.r4 0
IL_0079: stfld System.Single UnityEngine.Color::g
IL_007E: br => Label7
IL_0083: Label6
IL_0083: ldloc.s 4 (System.UInt32)
IL_0085: ldc.i4.s 60
IL_0087: bge.un => Label8
IL_008C: ldarg.s 5
IL_008E: ldc.r4 1
IL_0093: stfld System.Single UnityEngine.Color::r
IL_0098: br => Label9
IL_009D: Label8
IL_009D: ldarg.s 5
IL_009F: ldc.r4 1
IL_00A4: stfld System.Single UnityEngine.Color::g
IL_00A9: Label7
IL_00A9: Label9
IL_00A9: br => Label10
IL_00AE: Label2
IL_00AE: ldarg.s 5
IL_00B0: ldc.r4 0
IL_00B5: stfld System.Single UnityEngine.Color::g
IL_00BA: br => Label11
IL_00BF: Label3
IL_00BF: ldloc.s 4 (System.UInt32)
IL_00C1: ldc.i4.s 45
IL_00C3: bge.un => Label12
IL_00C8: ldarg.s 5
IL_00CA: ldc.r4 1
IL_00CF: stfld System.Single UnityEngine.Color::r
IL_00D4: br => Label13
IL_00D9: Label12
IL_00D9: ldarg.s 5
IL_00DB: ldc.r4 0
IL_00E0: stfld System.Single UnityEngine.Color::g
IL_00E5: Label13
IL_00E5: br => Label14
IL_00EA: Label4
IL_00EA: Label5
IL_00EA: Label10
IL_00EA: Label11
IL_00EA: Label14
IL_00EA: ldloc.1
IL_00EB: switch => Labels15,16,17,18
IL_0100: br => Label19
IL_0105: Label15
IL_0105: ldarg.s 5
IL_0107: ldc.r4 1
IL_010C: stfld System.Single UnityEngine.Color::b
IL_0111: br => Label20
IL_0116: Label16
IL_0116: ldloc.s 4 (System.UInt32)
IL_0118: ldc.i4.s 45
IL_011A: bge.un => Label21
IL_011F: ldarg.s 5
IL_0121: ldc.r4 0
IL_0126: stfld System.Single UnityEngine.Color::b
IL_012B: br => Label22
IL_0130: Label21
IL_0130: ldarg.s 5
IL_0132: ldc.r4 1
IL_0137: stfld System.Single UnityEngine.Color::b
IL_013C: Label22
IL_013C: br => Label23
IL_0141: Label17
IL_0141: ldarg.s 5
IL_0143: ldc.r4 0
IL_0148: stfld System.Single UnityEngine.Color::b
IL_014D: br => Label24
IL_0152: Label18
IL_0152: ldloc.s 4 (System.UInt32)
IL_0154: ldc.i4.s 45
IL_0156: bge.un => Label25
IL_015B: ldloc.s 4 (System.UInt32)
IL_015D: ldc.i4.8
IL_015E: div.un
IL_015F: ldc.i4.1
IL_0160: and
IL_0161: ldc.i4.1
IL_0162: bne.un => Label26
IL_0167: ldarg.s 5
IL_0169: ldc.r4 1
IL_016E: stfld System.Single UnityEngine.Color::b
IL_0173: Label26
IL_0173: br => Label27
IL_0178: Label25
IL_0178: ldarg.s 5
IL_017A: ldc.r4 0
IL_017F: stfld System.Single UnityEngine.Color::b
IL_0184: Label27
IL_0184: br => Label28
IL_0189: // end original
IL_0189: Label19
IL_0189: Label20
IL_0189: Label23
IL_0189: Label24
IL_0189: Label28
IL_0189: ret
DONE

### Patch: virtual System.Void RoadBaseAI::UpdateNode(System.UInt16 nodeID,


NetNode& data)
### Replacement: static System.Void
RoadBaseAI::RoadBaseAI.UpdateNode_Patch0(RoadBaseAI this, System.UInt16 nodeID,
NetNode& data)
IL_0000: Local var 0: Notification/Problem
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 Problem NetNode::m_problems
IL_000E: ldc.i8 72057602627866624
IL_0017: call static Problem Notification::RemoveProblems(Problem problems1,
Problem problems2)
IL_001C: stloc.0
IL_001D: ldc.i4.0
IL_001E: stloc.1
IL_001F: ldc.i4.0
IL_0020: stloc.2
IL_0021: ldarg.2
IL_0022: ldarg.1
IL_0023: ldc.i4.0
IL_0024: ldc.i4.s 33
IL_0026: ldc.i4.1
IL_0027: ldc.i4.1
IL_0028: ldloca.s 1 (System.Int32)
IL_002A: ldloca.s 2 (System.Int32)
IL_002C: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, LaneType laneTypes, VehicleType vehicleTypes,
System.Boolean onePerSegment, System.Int32& forward, System.Int32& backward)
IL_0031: ldarg.2
IL_0032: ldfld Flags NetNode::m_flags
IL_0037: ldc.i4 1024
IL_003C: and
IL_003D: brfalse => Label0
IL_0042: ldarg.2
IL_0043: ldfld System.UInt16 NetNode::m_building
IL_0048: brfalse => Label1
IL_004D: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0052: stloc.3
IL_0053: ldloc.1
IL_0054: brfalse => Label2
IL_0059: ldloc.3
IL_005A: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_005F: ldfld Building[] Array16`1<Building>::m_buffer
IL_0064: ldarg.2
IL_0065: ldfld System.UInt16 NetNode::m_building
IL_006A: ldelema Building
IL_006F: dup
IL_0070: ldfld Flags Building::m_flags
IL_0075: ldc.i4 128
IL_007A: or
IL_007B: stfld Flags Building::m_flags
IL_0080: br => Label3
IL_0085: Label2
IL_0085: ldloc.3
IL_0086: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008B: ldfld Building[] Array16`1<Building>::m_buffer
IL_0090: ldarg.2
IL_0091: ldfld System.UInt16 NetNode::m_building
IL_0096: ldelema Building
IL_009B: dup
IL_009C: ldfld Flags Building::m_flags
IL_00A1: ldc.i4 -129
IL_00A6: and
IL_00A7: stfld Flags Building::m_flags
IL_00AC: Label3
IL_00AC: ldloc.2
IL_00AD: brfalse => Label4
IL_00B2: ldloc.3
IL_00B3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00B8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00BD: ldarg.2
IL_00BE: ldfld System.UInt16 NetNode::m_building
IL_00C3: ldelema Building
IL_00C8: dup
IL_00C9: ldfld Flags Building::m_flags
IL_00CE: ldc.i4.s 64
IL_00D0: or
IL_00D1: stfld Flags Building::m_flags
IL_00D6: br => Label5
IL_00DB: Label4
IL_00DB: ldloc.3
IL_00DC: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00E1: ldfld Building[] Array16`1<Building>::m_buffer
IL_00E6: ldarg.2
IL_00E7: ldfld System.UInt16 NetNode::m_building
IL_00EC: ldelema Building
IL_00F1: dup
IL_00F2: ldfld Flags Building::m_flags
IL_00F7: ldc.i4.s -65
IL_00F9: and
IL_00FA: stfld Flags Building::m_flags
IL_00FF: Label5
IL_00FF: br => Label6
IL_0104: Label0
IL_0104: Label1
IL_0104: ldloc.1
IL_0105: brfalse => Label7
IL_010A: ldloc.2
IL_010B: brfalse => Label8
IL_0110: Label7
IL_0110: ldloc.1
IL_0111: brtrue => Label9
IL_0116: ldloc.2
IL_0117: brfalse => Label10
IL_011C: Label8
IL_011C: ldloc.0
IL_011D: ldc.i4 4096
IL_0122: conv.i8
IL_0123: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0128: stloc.0
IL_0129: Label6
IL_0129: Label9
IL_0129: Label10
IL_0129: ldloc.1
IL_012A: ldc.i4.1
IL_012B: bne.un => Label11
IL_0130: ldarg.2
IL_0131: dup
IL_0132: ldfld Flags NetNode::m_flags
IL_0137: ldc.i4 4194304
IL_013C: or
IL_013D: stfld Flags NetNode::m_flags
IL_0142: br => Label12
IL_0147: Label11
IL_0147: ldarg.2
IL_0148: dup
IL_0149: ldfld Flags NetNode::m_flags
IL_014E: ldc.i4 -4194305
IL_0153: and
IL_0154: stfld Flags NetNode::m_flags
IL_0159: Label12
IL_0159: ldloc.2
IL_015A: ldc.i4.1
IL_015B: bne.un => Label13
IL_0160: ldarg.2
IL_0161: dup
IL_0162: ldfld Flags NetNode::m_flags
IL_0167: ldc.i4 16777216
IL_016C: or
IL_016D: stfld Flags NetNode::m_flags
IL_0172: br => Label14
IL_0177: Label13
IL_0177: ldarg.2
IL_0178: dup
IL_0179: ldfld Flags NetNode::m_flags
IL_017E: ldc.i4 -16777217
IL_0183: and
IL_0184: stfld Flags NetNode::m_flags
IL_0189: Label14
IL_0189: ldarg.2
IL_018A: ldfld Flags NetNode::m_flags
IL_018F: ldc.i4 262144
IL_0194: and
IL_0195: brtrue => Label15
IL_019A: ldc.i4.0
IL_019B: stloc.s 4 (System.Int32)
IL_019D: ldc.i4.0
IL_019E: stloc.1
IL_019F: ldc.i4.0
IL_01A0: stloc.2
IL_01A1: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_01A6: stloc.s 5 (NetManager)
IL_01A8: ldc.i4.0
IL_01A9: stloc.s 6 (System.Int32)
IL_01AB: br => Label16
IL_01B0: Label24
IL_01B0: ldarg.2
IL_01B1: ldloc.s 6 (System.Int32)
IL_01B3: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_01B8: stloc.s 7 (System.UInt16)
IL_01BA: ldloc.s 7 (System.UInt16)
IL_01BC: brfalse => Label17
IL_01C1: ldc.i4.0
IL_01C2: stloc.s 8 (System.Int32)
IL_01C4: ldc.i4.0
IL_01C5: stloc.s 9 (System.Int32)
IL_01C7: ldloc.s 5 (NetManager)
IL_01C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01D3: ldloc.s 7 (System.UInt16)
IL_01D5: ldelema NetSegment
IL_01DA: ldloc.s 7 (System.UInt16)
IL_01DC: ldc.i4.s 33
IL_01DE: ldc.i4.s 64
IL_01E0: ldloca.s 8 (System.Int32)
IL_01E2: ldloca.s 9 (System.Int32)
IL_01E4: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_01E9: ldloc.s 8 (System.Int32)
IL_01EB: brtrue => Label18
IL_01F0: ldloc.s 9 (System.Int32)
IL_01F2: brfalse => Label19
IL_01F7: Label18
IL_01F7: ldloc.s 4 (System.Int32)
IL_01F9: ldc.i4.1
IL_01FA: add
IL_01FB: stloc.s 4 (System.Int32)
IL_01FD: ldloc.s 8 (System.Int32)
IL_01FF: brfalse => Label20
IL_0204: ldc.i4.1
IL_0205: stloc.s 8 (System.Int32)
IL_0207: Label20
IL_0207: ldloc.s 9 (System.Int32)
IL_0209: brfalse => Label21
IL_020E: ldc.i4.1
IL_020F: stloc.s 9 (System.Int32)
IL_0211: Label21
IL_0211: ldloc.s 5 (NetManager)
IL_0213: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0218: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_021D: ldloc.s 7 (System.UInt16)
IL_021F: ldelema NetSegment
IL_0224: ldfld System.UInt16 NetSegment::m_endNode
IL_0229: ldarg.1
IL_022A: bne.un => Label22
IL_022F: ldloc.1
IL_0230: ldloc.s 9 (System.Int32)
IL_0232: add
IL_0233: stloc.1
IL_0234: ldloc.2
IL_0235: ldloc.s 8 (System.Int32)
IL_0237: add
IL_0238: stloc.2
IL_0239: br => Label23
IL_023E: Label22
IL_023E: ldloc.1
IL_023F: ldloc.s 8 (System.Int32)
IL_0241: add
IL_0242: stloc.1
IL_0243: ldloc.2
IL_0244: ldloc.s 9 (System.Int32)
IL_0246: add
IL_0247: stloc.2
IL_0248: Label17
IL_0248: Label19
IL_0248: Label23
IL_0248: ldloc.s 6 (System.Int32)
IL_024A: ldc.i4.1
IL_024B: add
IL_024C: stloc.s 6 (System.Int32)
IL_024E: Label16
IL_024E: ldloc.s 6 (System.Int32)
IL_0250: ldc.i4.8
IL_0251: blt => Label24
IL_0256: ldloc.1
IL_0257: brfalse => Label25
IL_025C: ldloc.2
IL_025D: brfalse => Label26
IL_0262: Label25
IL_0262: ldloc.1
IL_0263: brtrue => Label27
IL_0268: ldloc.2
IL_0269: brtrue => Label28
IL_026E: Label27
IL_026E: ldloc.s 4 (System.Int32)
IL_0270: ldc.i4.1
IL_0271: bne.un => Label29
IL_0276: Label26
IL_0276: Label28
IL_0276: ldloc.0
IL_0277: ldc.i8 8589934592
IL_0280: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0285: stloc.0
IL_0286: Label29
IL_0286: ldc.i4.0
IL_0287: stloc.s 4 (System.Int32)
IL_0289: ldc.i4.0
IL_028A: stloc.1
IL_028B: ldc.i4.0
IL_028C: stloc.2
IL_028D: ldc.i4.0
IL_028E: stloc.s 10 (System.Int32)
IL_0290: br => Label30
IL_0295: Label38
IL_0295: ldarg.2
IL_0296: ldloc.s 10 (System.Int32)
IL_0298: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_029D: stloc.s 11 (System.UInt16)
IL_029F: ldloc.s 11 (System.UInt16)
IL_02A1: brfalse => Label31
IL_02A6: ldc.i4.0
IL_02A7: stloc.s 12 (System.Int32)
IL_02A9: ldc.i4.0
IL_02AA: stloc.s 13 (System.Int32)
IL_02AC: ldloc.s 5 (NetManager)
IL_02AE: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02B3: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02B8: ldloc.s 11 (System.UInt16)
IL_02BA: ldelema NetSegment
IL_02BF: ldloc.s 11 (System.UInt16)
IL_02C1: ldc.i4.s 33
IL_02C3: ldc.i4 65536
IL_02C8: ldloca.s 12 (System.Int32)
IL_02CA: ldloca.s 13 (System.Int32)
IL_02CC: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_02D1: ldloc.s 12 (System.Int32)
IL_02D3: brtrue => Label32
IL_02D8: ldloc.s 13 (System.Int32)
IL_02DA: brfalse => Label33
IL_02DF: Label32
IL_02DF: ldloc.s 4 (System.Int32)
IL_02E1: ldc.i4.1
IL_02E2: add
IL_02E3: stloc.s 4 (System.Int32)
IL_02E5: ldloc.s 12 (System.Int32)
IL_02E7: brfalse => Label34
IL_02EC: ldc.i4.1
IL_02ED: stloc.s 12 (System.Int32)
IL_02EF: Label34
IL_02EF: ldloc.s 13 (System.Int32)
IL_02F1: brfalse => Label35
IL_02F6: ldc.i4.1
IL_02F7: stloc.s 13 (System.Int32)
IL_02F9: Label35
IL_02F9: ldloc.s 5 (NetManager)
IL_02FB: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0300: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0305: ldloc.s 11 (System.UInt16)
IL_0307: ldelema NetSegment
IL_030C: ldfld System.UInt16 NetSegment::m_endNode
IL_0311: ldarg.1
IL_0312: bne.un => Label36
IL_0317: ldloc.1
IL_0318: ldloc.s 13 (System.Int32)
IL_031A: add
IL_031B: stloc.1
IL_031C: ldloc.2
IL_031D: ldloc.s 12 (System.Int32)
IL_031F: add
IL_0320: stloc.2
IL_0321: br => Label37
IL_0326: Label36
IL_0326: ldloc.1
IL_0327: ldloc.s 12 (System.Int32)
IL_0329: add
IL_032A: stloc.1
IL_032B: ldloc.2
IL_032C: ldloc.s 13 (System.Int32)
IL_032E: add
IL_032F: stloc.2
IL_0330: Label31
IL_0330: Label33
IL_0330: Label37
IL_0330: ldloc.s 10 (System.Int32)
IL_0332: ldc.i4.1
IL_0333: add
IL_0334: stloc.s 10 (System.Int32)
IL_0336: Label30
IL_0336: ldloc.s 10 (System.Int32)
IL_0338: ldc.i4.8
IL_0339: blt => Label38
IL_033E: ldloc.1
IL_033F: brfalse => Label39
IL_0344: ldloc.2
IL_0345: brfalse => Label40
IL_034A: Label39
IL_034A: ldloc.1
IL_034B: brtrue => Label41
IL_0350: ldloc.2
IL_0351: brtrue => Label42
IL_0356: Label41
IL_0356: ldloc.s 4 (System.Int32)
IL_0358: ldc.i4.1
IL_0359: bne.un => Label43
IL_035E: Label40
IL_035E: Label42
IL_035E: ldloc.0
IL_035F: ldc.i8 72057594037927936
IL_0368: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_036D: stloc.0
IL_036E: Label15
IL_036E: Label43
IL_036E: ldarg.2
IL_036F: ldloc.0
IL_0370: stfld Problem NetNode::m_problems
IL_0375: // end original
IL_0375: ret
DONE

### Patch: virtual System.Void RoadBaseAI::UpdateLanes(System.UInt16 segmentID,


NetSegment& data, System.Boolean loading)
### Replacement: static System.Void
RoadBaseAI::RoadBaseAI.UpdateLanes_Patch0(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<NetManager>::get_instance()
IL_0005: stloc.0
IL_0006: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::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<NetNode> NetManager::m_nodes
IL_0176: ldfld NetNode[] Array16`1<NetNode>::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: ldarg.2
IL_0192: ldfld UnityEngine.Vector3 NetSegment::m_endDirection
IL_0197: call static UnityEngine.Vector3
UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a)
IL_019C: ldloca.s 12 (System.Int32)
IL_019E: ldloca.s 13 (System.Int32)
IL_01A0: ldloca.s 14 (System.Int32)
IL_01A2: ldloca.s 15 (System.Int32)
IL_01A4: ldloca.s 16 (System.Int32)
IL_01A6: ldloca.s 17 (System.Int32)
IL_01A8: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, Direction directions, LaneType laneTypes, VehicleType
vehicleTypes, UnityEngine.Vector3 direction, System.Int32& left, System.Int32&
forward, System.Int32& right, System.Int32& left2, System.Int32& forward2,
System.Int32& right2)
IL_01AD: ldloc.0
IL_01AE: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_01B3: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_01B8: ldarg.2
IL_01B9: ldfld System.UInt16 NetSegment::m_endNode
IL_01BE: ldelema NetNode
IL_01C3: ldfld Flags NetNode::m_flags
IL_01C8: ldc.i4 1136
IL_01CD: and
IL_01CE: brfalse => Label2
IL_01D3: ldloc.s 12 (System.Int32)
IL_01D5: ldloc.s 13 (System.Int32)
IL_01D7: add
IL_01D8: ldloc.s 14 (System.Int32)
IL_01DA: add
IL_01DB: brtrue => Label3
IL_01E0: ldc.i4.1
IL_01E1: stloc.s 19 (System.Boolean)
IL_01E3: br => Label4
IL_01E8: Label3
IL_01E8: ldc.i4.1
IL_01E9: stloc.s 18 (System.Boolean)
IL_01EB: Label2
IL_01EB: Label4
IL_01EB: ldc.i4.0
IL_01EC: stloc.s 20 (System.Int32)
IL_01EE: ldc.i4.0
IL_01EF: stloc.s 21 (System.Int32)
IL_01F1: ldc.i4.0
IL_01F2: stloc.s 22 (System.Int32)
IL_01F4: ldc.i4.0
IL_01F5: stloc.s 23 (System.Int32)
IL_01F7: ldc.i4.0
IL_01F8: stloc.s 24 (System.Int32)
IL_01FA: ldc.i4.0
IL_01FB: stloc.s 25 (System.Int32)
IL_01FD: ldc.i4.0
IL_01FE: stloc.s 26 (System.Boolean)
IL_0200: ldc.i4.0
IL_0201: stloc.s 27 (System.Boolean)
IL_0203: ldloc.0
IL_0204: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0209: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_020E: ldarg.2
IL_020F: ldfld System.UInt16 NetSegment::m_startNode
IL_0214: ldelema NetNode
IL_0219: ldarg.2
IL_021A: ldfld System.UInt16 NetSegment::m_startNode
IL_021F: ldarg.1
IL_0220: ldc.i4.1
IL_0221: ldc.i4.s 33
IL_0223: ldc.i4.1
IL_0224: ldarg.2
IL_0225: ldfld UnityEngine.Vector3 NetSegment::m_startDirection
IL_022A: call static UnityEngine.Vector3
UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a)
IL_022F: ldloca.s 20 (System.Int32)
IL_0231: ldloca.s 21 (System.Int32)
IL_0233: ldloca.s 22 (System.Int32)
IL_0235: ldloca.s 23 (System.Int32)
IL_0237: ldloca.s 24 (System.Int32)
IL_0239: ldloca.s 25 (System.Int32)
IL_023B: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, Direction directions, LaneType laneTypes, VehicleType
vehicleTypes, UnityEngine.Vector3 direction, System.Int32& left, System.Int32&
forward, System.Int32& right, System.Int32& left2, System.Int32& forward2,
System.Int32& right2)
IL_0240: ldloc.0
IL_0241: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0246: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_024B: ldarg.2
IL_024C: ldfld System.UInt16 NetSegment::m_startNode
IL_0251: ldelema NetNode
IL_0256: ldfld Flags NetNode::m_flags
IL_025B: ldc.i4 1136
IL_0260: and
IL_0261: brfalse => Label5
IL_0266: ldloc.s 20 (System.Int32)
IL_0268: ldloc.s 21 (System.Int32)
IL_026A: add
IL_026B: ldloc.s 22 (System.Int32)
IL_026D: add
IL_026E: brtrue => Label6
IL_0273: ldc.i4.1
IL_0274: stloc.s 27 (System.Boolean)
IL_0276: br => Label7
IL_027B: Label6
IL_027B: ldc.i4.1
IL_027C: stloc.s 26 (System.Boolean)
IL_027E: Label5
IL_027E: Label7
IL_027E: ldc.i4.0
IL_027F: stloc.s 28 (NetLane+Flags)
IL_0281: ldloc.s 15 (System.Int32)
IL_0283: brfalse => Label8
IL_0288: ldloc.s 12 (System.Int32)
IL_028A: brtrue => Label9
IL_028F: ldloc.s 28 (NetLane+Flags)
IL_0291: ldarg.2
IL_0292: ldfld Flags NetSegment::m_flags
IL_0297: ldc.i4.s 16
IL_0299: and
IL_029A: brfalse => Label10
IL_029F: ldc.i4 4096
IL_02A4: br => Label11
IL_02A9: Label10
IL_02A9: ldc.i4 16384
IL_02AE: Label11
IL_02AE: or
IL_02AF: stloc.s 28 (NetLane+Flags)
IL_02B1: Label8
IL_02B1: Label9
IL_02B1: ldloc.s 17 (System.Int32)
IL_02B3: brfalse => Label12
IL_02B8: ldloc.s 14 (System.Int32)
IL_02BA: brtrue => Label13
IL_02BF: ldloc.s 28 (NetLane+Flags)
IL_02C1: ldarg.2
IL_02C2: ldfld Flags NetSegment::m_flags
IL_02C7: ldc.i4.s 16
IL_02C9: and
IL_02CA: brfalse => Label14
IL_02CF: ldc.i4 8192
IL_02D4: br => Label15
IL_02D9: Label14
IL_02D9: ldc.i4 32768
IL_02DE: Label15
IL_02DE: or
IL_02DF: stloc.s 28 (NetLane+Flags)
IL_02E1: Label12
IL_02E1: Label13
IL_02E1: ldloc.s 23 (System.Int32)
IL_02E3: brfalse => Label16
IL_02E8: ldloc.s 20 (System.Int32)
IL_02EA: brtrue => Label17
IL_02EF: ldloc.s 28 (NetLane+Flags)
IL_02F1: ldarg.2
IL_02F2: ldfld Flags NetSegment::m_flags
IL_02F7: ldc.i4.s 16
IL_02F9: and
IL_02FA: brfalse => Label18
IL_02FF: ldc.i4 16384
IL_0304: br => Label19
IL_0309: Label18
IL_0309: ldc.i4 4096
IL_030E: Label19
IL_030E: or
IL_030F: stloc.s 28 (NetLane+Flags)
IL_0311: Label16
IL_0311: Label17
IL_0311: ldloc.s 25 (System.Int32)
IL_0313: brfalse => Label20
IL_0318: ldloc.s 22 (System.Int32)
IL_031A: brtrue => Label21
IL_031F: ldloc.s 28 (NetLane+Flags)
IL_0321: ldarg.2
IL_0322: ldfld Flags NetSegment::m_flags
IL_0327: ldc.i4.s 16
IL_0329: and
IL_032A: brfalse => Label22
IL_032F: ldc.i4 32768
IL_0334: br => Label23
IL_0339: Label22
IL_0339: ldc.i4 8192
IL_033E: Label23
IL_033E: or
IL_033F: stloc.s 28 (NetLane+Flags)
IL_0341: Label20
IL_0341: Label21
IL_0341: ldarg.2
IL_0342: ldfld Flags NetSegment::m_flags
IL_0347: ldc.i4 1073741824
IL_034C: and
IL_034D: brfalse => Label24
IL_0352: ldloc.s 28 (NetLane+Flags)
IL_0354: ldarg.2
IL_0355: ldfld Flags NetSegment::m_flags
IL_035A: ldc.i4.s 16
IL_035C: and
IL_035D: brfalse => Label25
IL_0362: ldc.i4 2048
IL_0367: br => Label26
IL_036C: Label25
IL_036C: ldc.i4 1024
IL_0371: Label26
IL_0371: or
IL_0372: stloc.s 28 (NetLane+Flags)
IL_0374: Label24
IL_0374: ldarg.2
IL_0375: ldfld Flags NetSegment::m_flags
IL_037A: ldc.i4 -2147483648
IL_037F: and
IL_0380: brfalse => Label27
IL_0385: ldloc.s 28 (NetLane+Flags)
IL_0387: ldarg.2
IL_0388: ldfld Flags NetSegment::m_flags
IL_038D: ldc.i4.s 16
IL_038F: and
IL_0390: brfalse => Label28
IL_0395: ldc.i4 1024
IL_039A: br => Label29
IL_039F: Label28
IL_039F: ldc.i4 2048
IL_03A4: Label29
IL_03A4: or
IL_03A5: stloc.s 28 (NetLane+Flags)
IL_03A7: Label27
IL_03A7: ldc.r4 0
IL_03AC: stloc.s 29 (System.Single)
IL_03AE: ldc.r4 0
IL_03B3: stloc.s 30 (System.Single)
IL_03B5: ldc.i4.0
IL_03B6: stloc.s 31 (System.UInt32)
IL_03B8: ldarg.2
IL_03B9: ldfld System.UInt32 NetSegment::m_lanes
IL_03BE: stloc.s 32 (System.UInt32)
IL_03C0: ldc.i4.0
IL_03C1: stloc.s 33 (System.Int32)
IL_03C3: br => Label30
IL_03C8: Label89
IL_03C8: ldloc.s 32 (System.UInt32)
IL_03CA: brtrue => Label31
IL_03CF: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_03D4: ldloca.s 32 (System.UInt32)
IL_03D6: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_03DB: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_03E0: ldarg.1
IL_03E1: ldc.i4.1
IL_03E2: callvirt System.Boolean NetManager::CreateLanes(System.UInt32&
firstLane, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segment,
System.Int32 count)
IL_03E7: brfalse => Label32
IL_03EC: ldloc.s 31 (System.UInt32)
IL_03EE: brfalse => Label33
IL_03F3: ldloc.0
IL_03F4: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_03F9: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_03FE: ldloc.s 31 (System.UInt32)
IL_0400: conv.u
IL_0401: ldelema NetLane
IL_0406: ldloc.s 32 (System.UInt32)
IL_0408: stfld System.UInt32 NetLane::m_nextLane
IL_040D: br => Label34
IL_0412: Label33
IL_0412: ldarg.2
IL_0413: ldloc.s 32 (System.UInt32)
IL_0415: stfld System.UInt32 NetSegment::m_lanes
IL_041A: Label34
IL_041A: br => Label35
IL_041F: Label32
IL_041F: br => Label36
IL_0424: Label31
IL_0424: Label35
IL_0424: ldarg.0
IL_0425: ldfld NetInfo NetAI::m_info
IL_042A: ldfld Lane[] NetInfo::m_lanes
IL_042F: ldloc.s 33 (System.Int32)
IL_0431: ldelem.ref
IL_0432: stloc.s 34 (NetInfo+Lane)
IL_0434: ldloc.s 34 (NetInfo+Lane)
IL_0436: ldfld System.Single Lane::m_position
IL_043B: ldarg.0
IL_043C: ldfld NetInfo NetAI::m_info
IL_0441: ldfld System.Single NetInfo::m_halfWidth
IL_0446: ldc.r4 2
IL_044B: mul
IL_044C: div
IL_044D: ldc.r4 0.5
IL_0452: add
IL_0453: stloc.s 35 (System.Single)
IL_0455: ldarg.2
IL_0456: ldfld Flags NetSegment::m_flags
IL_045B: ldc.i4.s 16
IL_045D: and
IL_045E: brfalse => Label37
IL_0463: ldc.r4 1
IL_0468: ldloc.s 35 (System.Single)
IL_046A: sub
IL_046B: stloc.s 35 (System.Single)
IL_046D: Label37
IL_046D: ldloc.2
IL_046E: ldloc.3
IL_046F: ldloc.2
IL_0470: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0475: ldloc.s 35 (System.Single)
IL_0477: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_047C: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0481: stloc.s 36 (UnityEngine.Vector3)
IL_0483: ldloc.s 6 (UnityEngine.Vector3)
IL_0485: ldloc.s 7 (UnityEngine.Vector3)
IL_0487: ldloc.s 35 (System.Single)
IL_0489: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_048E: stloc.s 37 (UnityEngine.Vector3)
IL_0490: ldloc.s 4 (UnityEngine.Vector3)
IL_0492: ldloc.s 5 (UnityEngine.Vector3)
IL_0494: ldloc.s 4 (UnityEngine.Vector3)
IL_0496: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_049B: ldloc.s 35 (System.Single)
IL_049D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_04A2: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_04A7: stloc.s 38 (UnityEngine.Vector3)
IL_04A9: ldloc.s 8 (UnityEngine.Vector3)
IL_04AB: ldloc.s 9 (UnityEngine.Vector3)
IL_04AD: ldloc.s 35 (System.Single)
IL_04AF: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_04B4: stloc.s 39 (UnityEngine.Vector3)
IL_04B6: ldloca.s 36 (UnityEngine.Vector3)
IL_04B8: dup
IL_04B9: ldfld System.Single UnityEngine.Vector3::y
IL_04BE: ldloc.s 34 (NetInfo+Lane)
IL_04C0: ldfld System.Single Lane::m_verticalOffset
IL_04C5: add
IL_04C6: stfld System.Single UnityEngine.Vector3::y
IL_04CB: ldloca.s 38 (UnityEngine.Vector3)
IL_04CD: dup
IL_04CE: ldfld System.Single UnityEngine.Vector3::y
IL_04D3: ldloc.s 34 (NetInfo+Lane)
IL_04D5: ldfld System.Single Lane::m_verticalOffset
IL_04DA: add
IL_04DB: stfld System.Single UnityEngine.Vector3::y
IL_04E0: ldloc.s 36 (UnityEngine.Vector3)
IL_04E2: ldloc.s 37 (UnityEngine.Vector3)
IL_04E4: ldloc.s 38 (UnityEngine.Vector3)
IL_04E6: ldloc.s 39 (UnityEngine.Vector3)
IL_04E8: ldloc.s 10 (System.Boolean)
IL_04EA: ldloc.s 11 (System.Boolean)
IL_04EC: ldloca.s 40 (UnityEngine.Vector3)
IL_04EE: ldloca.s 41 (UnityEngine.Vector3)
IL_04F0: 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_04F5: ldloc.0
IL_04F6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_04FB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0500: ldloc.s 32 (System.UInt32)
IL_0502: conv.u
IL_0503: ldelema NetLane
IL_0508: ldfld System.UInt16 NetLane::m_flags
IL_050D: stloc.s 42 (NetLane+Flags)
IL_050F: ldloc.s 28 (NetLane+Flags)
IL_0511: stloc.s 43 (NetLane+Flags)
IL_0513: ldloc.s 42 (NetLane+Flags)
IL_0515: ldc.i4 -64753
IL_051A: and
IL_051B: stloc.s 42 (NetLane+Flags)
IL_051D: ldloc.s 34 (NetInfo+Lane)
IL_051F: ldfld Direction Lane::m_finalDirection
IL_0524: ldc.i4.3
IL_0525: and
IL_0526: conv.u1
IL_0527: ldc.i4.2
IL_0528: bne.un => Label38
IL_052D: ldloc.s 43 (NetLane+Flags)
IL_052F: ldc.i4 -2049
IL_0534: and
IL_0535: stloc.s 43 (NetLane+Flags)
IL_0537: Label38
IL_0537: ldloc.s 34 (NetInfo+Lane)
IL_0539: ldfld Direction Lane::m_finalDirection
IL_053E: ldc.i4.3
IL_053F: and
IL_0540: conv.u1
IL_0541: ldc.i4.1
IL_0542: bne.un => Label39
IL_0547: ldloc.s 43 (NetLane+Flags)
IL_0549: ldc.i4 -1025
IL_054E: and
IL_054F: stloc.s 43 (NetLane+Flags)
IL_0551: Label39
IL_0551: ldloc.s 34 (NetInfo+Lane)
IL_0553: ldfld VehicleType Lane::m_vehicleType
IL_0558: ldc.i4 2048
IL_055D: and
IL_055E: brfalse => Label40
IL_0563: ldloc.s 43 (NetLane+Flags)
IL_0565: ldc.i4 -3073
IL_056A: and
IL_056B: stloc.s 43 (NetLane+Flags)
IL_056D: Label40
IL_056D: ldloc.s 42 (NetLane+Flags)
IL_056F: ldloc.s 43 (NetLane+Flags)
IL_0571: or
IL_0572: stloc.s 42 (NetLane+Flags)
IL_0574: ldloc.1
IL_0575: brfalse => Label41
IL_057A: ldloc.s 42 (NetLane+Flags)
IL_057C: ldc.i4.4
IL_057D: or
IL_057E: stloc.s 42 (NetLane+Flags)
IL_0580: br => Label42
IL_0585: Label41
IL_0585: ldloc.s 42 (NetLane+Flags)
IL_0587: ldc.i4.s -5
IL_0589: and
IL_058A: stloc.s 42 (NetLane+Flags)
IL_058C: Label42
IL_058C: ldc.i4.0
IL_058D: stloc.s 44 (System.Int32)
IL_058F: ldc.i4 255
IL_0594: stloc.s 45 (System.Int32)
IL_0596: ldloc.s 34 (NetInfo+Lane)
IL_0598: ldfld LaneType Lane::m_laneType
IL_059D: ldc.i4.s 33
IL_059F: and
IL_05A0: conv.u1
IL_05A1: brfalse => Label43
IL_05A6: ldloc.s 34 (NetInfo+Lane)
IL_05A8: ldfld Direction Lane::m_finalDirection
IL_05AD: ldc.i4.1
IL_05AE: and
IL_05AF: conv.u1
IL_05B0: ldc.i4.0
IL_05B1: ceq
IL_05B3: ldc.i4.0
IL_05B4: ceq
IL_05B6: ldarg.2
IL_05B7: ldfld Flags NetSegment::m_flags
IL_05BC: ldc.i4.s 16
IL_05BE: and
IL_05BF: ldc.i4.0
IL_05C0: ceq
IL_05C2: ceq
IL_05C4: stloc.s 46 (System.Boolean)
IL_05C6: ldloc.s 46 (System.Boolean)
IL_05C8: brfalse => Label44
IL_05CD: ldloc.s 12 (System.Int32)
IL_05CF: stloc.s 47 (System.Int32)
IL_05D1: ldloc.s 13 (System.Int32)
IL_05D3: stloc.s 48 (System.Int32)
IL_05D5: ldloc.s 14 (System.Int32)
IL_05D7: stloc.s 49 (System.Int32)
IL_05D9: br => Label45
IL_05DE: Label44
IL_05DE: ldloc.s 20 (System.Int32)
IL_05E0: stloc.s 47 (System.Int32)
IL_05E2: ldloc.s 21 (System.Int32)
IL_05E4: stloc.s 48 (System.Int32)
IL_05E6: ldloc.s 22 (System.Int32)
IL_05E8: stloc.s 49 (System.Int32)
IL_05EA: Label45
IL_05EA: ldloc.s 34 (NetInfo+Lane)
IL_05EC: ldfld Direction Lane::m_finalDirection
IL_05F1: ldc.i4.1
IL_05F2: and
IL_05F3: conv.u1
IL_05F4: brfalse => Label46
IL_05F9: ldloc.s 34 (NetInfo+Lane)
IL_05FB: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0600: stloc.s 50 (System.Int32)
IL_0602: ldloc.s 34 (NetInfo+Lane)
IL_0604: ldfld System.Int32 Lane::m_similarLaneCount
IL_0609: ldloc.s 34 (NetInfo+Lane)
IL_060B: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0610: sub
IL_0611: ldc.i4.1
IL_0612: sub
IL_0613: stloc.s 51 (System.Int32)
IL_0615: br => Label47
IL_061A: Label46
IL_061A: ldloc.s 34 (NetInfo+Lane)
IL_061C: ldfld System.Int32 Lane::m_similarLaneCount
IL_0621: ldloc.s 34 (NetInfo+Lane)
IL_0623: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0628: sub
IL_0629: ldc.i4.1
IL_062A: sub
IL_062B: stloc.s 50 (System.Int32)
IL_062D: ldloc.s 34 (NetInfo+Lane)
IL_062F: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0634: stloc.s 51 (System.Int32)
IL_0636: Label47
IL_0636: ldloc.s 47 (System.Int32)
IL_0638: ldloc.s 48 (System.Int32)
IL_063A: add
IL_063B: ldloc.s 49 (System.Int32)
IL_063D: add
IL_063E: stloc.s 52 (System.Int32)
IL_0640: ldc.i4 255
IL_0645: stloc.s 44 (System.Int32)
IL_0647: ldc.i4.0
IL_0648: stloc.s 45 (System.Int32)
IL_064A: ldloc.s 52 (System.Int32)
IL_064C: brfalse => Label48
IL_0651: ldloc.s 34 (NetInfo+Lane)
IL_0653: ldfld System.Int32 Lane::m_similarLaneCount
IL_0658: ldloc.s 52 (System.Int32)
IL_065A: ble => Label49
IL_065F: ldloc.s 52 (System.Int32)
IL_0661: ldc.i4.0
IL_0662: ble => Label50
IL_0667: ldloc.s 52 (System.Int32)
IL_0669: ldloc.s 50 (System.Int32)
IL_066B: mul
IL_066C: ldloc.s 34 (NetInfo+Lane)
IL_066E: ldfld System.Int32 Lane::m_similarLaneCount
IL_0673: div
IL_0674: stloc.s 44 (System.Int32)
IL_0676: ldloc.s 52 (System.Int32)
IL_0678: ldloc.s 52 (System.Int32)
IL_067A: ldloc.s 51 (System.Int32)
IL_067C: mul
IL_067D: ldloc.s 34 (NetInfo+Lane)
IL_067F: ldfld System.Int32 Lane::m_similarLaneCount
IL_0684: div
IL_0685: sub
IL_0686: stloc.s 45 (System.Int32)
IL_0688: ldloc.s 42 (NetLane+Flags)
IL_068A: ldc.i4 128
IL_068F: or
IL_0690: stloc.s 42 (NetLane+Flags)
IL_0692: ldloc.s 44 (System.Int32)
IL_0694: ldloc.s 47 (System.Int32)
IL_0696: bge => Label51
IL_069B: ldloc.s 42 (NetLane+Flags)
IL_069D: ldc.i4.s 32
IL_069F: or
IL_06A0: stloc.s 42 (NetLane+Flags)
IL_06A2: Label51
IL_06A2: ldloc.s 52 (System.Int32)
IL_06A4: ldloc.s 45 (System.Int32)
IL_06A6: sub
IL_06A7: ldloc.s 49 (System.Int32)
IL_06A9: bge => Label52
IL_06AE: ldloc.s 42 (NetLane+Flags)
IL_06B0: ldc.i4.s 64
IL_06B2: or
IL_06B3: stloc.s 42 (NetLane+Flags)
IL_06B5: Label52
IL_06B5: ldloc.s 48 (System.Int32)
IL_06B7: brfalse => Label53
IL_06BC: ldloc.s 44 (System.Int32)
IL_06BE: ldloc.s 47 (System.Int32)
IL_06C0: ldloc.s 48 (System.Int32)
IL_06C2: add
IL_06C3: bge => Label54
IL_06C8: ldloc.s 45 (System.Int32)
IL_06CA: ldloc.s 47 (System.Int32)
IL_06CC: ble => Label55
IL_06D1: ldloc.s 42 (NetLane+Flags)
IL_06D3: ldc.i4.s 16
IL_06D5: or
IL_06D6: stloc.s 42 (NetLane+Flags)
IL_06D8: Label53
IL_06D8: Label54
IL_06D8: Label55
IL_06D8: br => Label56
IL_06DD: Label49
IL_06DD: Label50
IL_06DD: ldloc.s 34 (NetInfo+Lane)
IL_06DF: ldfld System.Int32 Lane::m_similarLaneCount
IL_06E4: ldloc.s 52 (System.Int32)
IL_06E6: blt => Label57
IL_06EB: ldloc.s 47 (System.Int32)
IL_06ED: stloc.s 53 (System.Int32)
IL_06EF: ldloc.s 49 (System.Int32)
IL_06F1: stloc.s 54 (System.Int32)
IL_06F3: br => Label58
IL_06F8: Label57
IL_06F8: ldloc.s 47 (System.Int32)
IL_06FA: ldloc.s 34 (NetInfo+Lane)
IL_06FC: ldfld System.Int32 Lane::m_similarLaneCount
IL_0701: mul
IL_0702: ldloc.s 52 (System.Int32)
IL_0704: ldloc.s 48 (System.Int32)
IL_0706: ldc.i4.1
IL_0707: shr
IL_0708: add
IL_0709: div
IL_070A: stloc.s 53 (System.Int32)
IL_070C: ldloc.s 49 (System.Int32)
IL_070E: ldloc.s 34 (NetInfo+Lane)
IL_0710: ldfld System.Int32 Lane::m_similarLaneCount
IL_0715: mul
IL_0716: ldloc.s 52 (System.Int32)
IL_0718: ldloc.s 48 (System.Int32)
IL_071A: ldc.i4.1
IL_071B: shr
IL_071C: add
IL_071D: div
IL_071E: stloc.s 54 (System.Int32)
IL_0720: Label58
IL_0720: ldloc.s 53 (System.Int32)
IL_0722: stloc.s 55 (System.Int32)
IL_0724: ldloc.s 34 (NetInfo+Lane)
IL_0726: ldfld System.Int32 Lane::m_similarLaneCount
IL_072B: ldloc.s 53 (System.Int32)
IL_072D: sub
IL_072E: ldloc.s 54 (System.Int32)
IL_0730: sub
IL_0731: stloc.s 56 (System.Int32)
IL_0733: ldloc.s 54 (System.Int32)
IL_0735: stloc.s 57 (System.Int32)
IL_0737: ldloc.s 56 (System.Int32)
IL_0739: ldc.i4.0
IL_073A: ble => Label59
IL_073F: ldloc.s 47 (System.Int32)
IL_0741: ldloc.s 53 (System.Int32)
IL_0743: ble => Label60
IL_0748: ldloc.s 55 (System.Int32)
IL_074A: ldc.i4.1
IL_074B: add
IL_074C: stloc.s 55 (System.Int32)
IL_074E: Label60
IL_074E: ldloc.s 49 (System.Int32)
IL_0750: ldloc.s 54 (System.Int32)
IL_0752: ble => Label61
IL_0757: ldloc.s 57 (System.Int32)
IL_0759: ldc.i4.1
IL_075A: add
IL_075B: stloc.s 57 (System.Int32)
IL_075D: Label59
IL_075D: Label61
IL_075D: ldloc.s 50 (System.Int32)
IL_075F: ldloc.s 55 (System.Int32)
IL_0761: bge => Label62
IL_0766: ldloc.s 50 (System.Int32)
IL_0768: ldloc.s 47 (System.Int32)
IL_076A: mul
IL_076B: ldloc.s 55 (System.Int32)
IL_076D: add
IL_076E: ldc.i4.1
IL_076F: sub
IL_0770: ldloc.s 55 (System.Int32)
IL_0772: div
IL_0773: stloc.s 58 (System.Int32)
IL_0775: ldloc.s 50 (System.Int32)
IL_0777: ldc.i4.1
IL_0778: add
IL_0779: ldloc.s 47 (System.Int32)
IL_077B: mul
IL_077C: ldloc.s 55 (System.Int32)
IL_077E: add
IL_077F: ldc.i4.1
IL_0780: sub
IL_0781: ldloc.s 55 (System.Int32)
IL_0783: div
IL_0784: stloc.s 59 (System.Int32)
IL_0786: ldloc.s 59 (System.Int32)
IL_0788: ldloc.s 58 (System.Int32)
IL_078A: ble => Label63
IL_078F: ldloc.s 42 (NetLane+Flags)
IL_0791: ldc.i4.s 32
IL_0793: or
IL_0794: stloc.s 42 (NetLane+Flags)
IL_0796: ldloc.s 44 (System.Int32)
IL_0798: ldloc.s 58 (System.Int32)
IL_079A: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_079F: stloc.s 44 (System.Int32)
IL_07A1: ldloc.s 45 (System.Int32)
IL_07A3: ldloc.s 59 (System.Int32)
IL_07A5: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_07AA: stloc.s 45 (System.Int32)
IL_07AC: Label62
IL_07AC: Label63
IL_07AC: ldloc.s 50 (System.Int32)
IL_07AE: ldloc.s 53 (System.Int32)
IL_07B0: blt => Label64
IL_07B5: ldloc.s 51 (System.Int32)
IL_07B7: ldloc.s 54 (System.Int32)
IL_07B9: blt => Label65
IL_07BE: ldloc.s 48 (System.Int32)
IL_07C0: brfalse => Label66
IL_07C5: ldloc.s 34 (NetInfo+Lane)
IL_07C7: ldfld System.Int32 Lane::m_similarLaneCount
IL_07CC: ldloc.s 52 (System.Int32)
IL_07CE: ble => Label67
IL_07D3: ldloc.s 53 (System.Int32)
IL_07D5: ldc.i4.1
IL_07D6: add
IL_07D7: stloc.s 53 (System.Int32)
IL_07D9: Label67
IL_07D9: ldloc.s 47 (System.Int32)
IL_07DB: ldloc.s 50 (System.Int32)
IL_07DD: ldloc.s 53 (System.Int32)
IL_07DF: sub
IL_07E0: ldloc.s 48 (System.Int32)
IL_07E2: mul
IL_07E3: ldloc.s 56 (System.Int32)
IL_07E5: add
IL_07E6: ldc.i4.1
IL_07E7: sub
IL_07E8: ldloc.s 56 (System.Int32)
IL_07EA: div
IL_07EB: add
IL_07EC: stloc.s 60 (System.Int32)
IL_07EE: ldloc.s 47 (System.Int32)
IL_07F0: ldloc.s 50 (System.Int32)
IL_07F2: ldc.i4.1
IL_07F3: add
IL_07F4: ldloc.s 53 (System.Int32)
IL_07F6: sub
IL_07F7: ldloc.s 48 (System.Int32)
IL_07F9: mul
IL_07FA: ldloc.s 56 (System.Int32)
IL_07FC: add
IL_07FD: ldc.i4.1
IL_07FE: sub
IL_07FF: ldloc.s 56 (System.Int32)
IL_0801: div
IL_0802: add
IL_0803: stloc.s 61 (System.Int32)
IL_0805: ldloc.s 61 (System.Int32)
IL_0807: ldloc.s 60 (System.Int32)
IL_0809: ble => Label68
IL_080E: ldloc.s 42 (NetLane+Flags)
IL_0810: ldc.i4.s 16
IL_0812: or
IL_0813: stloc.s 42 (NetLane+Flags)
IL_0815: ldloc.s 44 (System.Int32)
IL_0817: ldloc.s 60 (System.Int32)
IL_0819: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_081E: stloc.s 44 (System.Int32)
IL_0820: ldloc.s 45 (System.Int32)
IL_0822: ldloc.s 61 (System.Int32)
IL_0824: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0829: stloc.s 45 (System.Int32)
IL_082B: Label64
IL_082B: Label65
IL_082B: Label66
IL_082B: Label68
IL_082B: ldloc.s 51 (System.Int32)
IL_082D: ldloc.s 57 (System.Int32)
IL_082F: bge => Label69
IL_0834: ldloc.s 52 (System.Int32)
IL_0836: ldloc.s 51 (System.Int32)
IL_0838: ldc.i4.1
IL_0839: add
IL_083A: ldloc.s 49 (System.Int32)
IL_083C: mul
IL_083D: ldloc.s 57 (System.Int32)
IL_083F: add
IL_0840: ldc.i4.1
IL_0841: sub
IL_0842: ldloc.s 57 (System.Int32)
IL_0844: div
IL_0845: sub
IL_0846: stloc.s 62 (System.Int32)
IL_0848: ldloc.s 52 (System.Int32)
IL_084A: ldloc.s 51 (System.Int32)
IL_084C: ldloc.s 49 (System.Int32)
IL_084E: mul
IL_084F: ldloc.s 57 (System.Int32)
IL_0851: add
IL_0852: ldc.i4.1
IL_0853: sub
IL_0854: ldloc.s 57 (System.Int32)
IL_0856: div
IL_0857: sub
IL_0858: stloc.s 63 (System.Int32)
IL_085A: ldloc.s 63 (System.Int32)
IL_085C: ldloc.s 62 (System.Int32)
IL_085E: ble => Label70
IL_0863: ldloc.s 42 (NetLane+Flags)
IL_0865: ldc.i4.s 64
IL_0867: or
IL_0868: stloc.s 42 (NetLane+Flags)
IL_086A: ldloc.s 44 (System.Int32)
IL_086C: ldloc.s 62 (System.Int32)
IL_086E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0873: stloc.s 44 (System.Int32)
IL_0875: ldloc.s 45 (System.Int32)
IL_0877: ldloc.s 63 (System.Int32)
IL_0879: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_087E: stloc.s 45 (System.Int32)
IL_0880: Label69
IL_0880: Label70
IL_0880: ldarg.0
IL_0881: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_0886: brfalse => Label71
IL_088B: ldloc.s 42 (NetLane+Flags)
IL_088D: ldc.i4.s 96
IL_088F: and
IL_0890: ldc.i4.s 32
IL_0892: bne.un => Label72
IL_0897: ldloc.s 42 (NetLane+Flags)
IL_0899: ldc.i4.s 16
IL_089B: and
IL_089C: brfalse => Label73
IL_08A1: ldloc.s 48 (System.Int32)
IL_08A3: ldc.i4.2
IL_08A4: blt => Label74
IL_08A9: ldloc.s 47 (System.Int32)
IL_08AB: ldc.i4.1
IL_08AC: bne.un => Label75
IL_08B1: Label73
IL_08B1: ldloc.s 45 (System.Int32)
IL_08B3: ldloc.s 44 (System.Int32)
IL_08B5: ldc.i4.1
IL_08B6: add
IL_08B7: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_08BC: stloc.s 45 (System.Int32)
IL_08BE: Label74
IL_08BE: Label75
IL_08BE: br => Label76
IL_08C3: Label72
IL_08C3: ldloc.s 42 (NetLane+Flags)
IL_08C5: ldc.i4.s 96
IL_08C7: and
IL_08C8: ldc.i4.s 64
IL_08CA: bne.un => Label77
IL_08CF: ldloc.s 42 (NetLane+Flags)
IL_08D1: ldc.i4.s 16
IL_08D3: and
IL_08D4: brfalse => Label78
IL_08D9: ldloc.s 48 (System.Int32)
IL_08DB: ldc.i4.2
IL_08DC: blt => Label79
IL_08E1: ldloc.s 49 (System.Int32)
IL_08E3: ldc.i4.1
IL_08E4: bne.un => Label80
IL_08E9: Label78
IL_08E9: ldloc.s 44 (System.Int32)
IL_08EB: ldloc.s 45 (System.Int32)
IL_08ED: ldc.i4.1
IL_08EE: sub
IL_08EF: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_08F4: stloc.s 44 (System.Int32)
IL_08F6: Label48
IL_08F6: Label56
IL_08F6: Label71
IL_08F6: Label76
IL_08F6: Label77
IL_08F6: Label79
IL_08F6: Label80
IL_08F6: ldloc.s 46 (System.Boolean)
IL_08F8: brfalse => Label81
IL_08FD: ldloc.s 18 (System.Boolean)
IL_08FF: brfalse => Label82
IL_0904: ldloc.s 42 (NetLane+Flags)
IL_0906: ldc.i4.s -113
IL_0908: and
IL_0909: stloc.s 42 (NetLane+Flags)
IL_090B: br => Label83
IL_0910: Label82
IL_0910: ldloc.s 19 (System.Boolean)
IL_0912: brfalse => Label84
IL_0917: ldloc.s 42 (NetLane+Flags)
IL_0919: ldc.i4.s 16
IL_091B: or
IL_091C: stloc.s 42 (NetLane+Flags)
IL_091E: Label83
IL_091E: Label84
IL_091E: br => Label85
IL_0923: Label81
IL_0923: ldloc.s 26 (System.Boolean)
IL_0925: brfalse => Label86
IL_092A: ldloc.s 42 (NetLane+Flags)
IL_092C: ldc.i4.s -113
IL_092E: and
IL_092F: stloc.s 42 (NetLane+Flags)
IL_0931: br => Label87
IL_0936: Label86
IL_0936: ldloc.s 27 (System.Boolean)
IL_0938: brfalse => Label88
IL_093D: ldloc.s 42 (NetLane+Flags)
IL_093F: ldc.i4.s 16
IL_0941: or
IL_0942: stloc.s 42 (NetLane+Flags)
IL_0944: Label43
IL_0944: Label85
IL_0944: Label87
IL_0944: Label88
IL_0944: ldloc.0
IL_0945: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_094A: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_094F: ldloc.s 32 (System.UInt32)
IL_0951: conv.u
IL_0952: ldelema NetLane
IL_0957: ldloc.s 36 (UnityEngine.Vector3)
IL_0959: ldloc.s 40 (UnityEngine.Vector3)
IL_095B: ldloc.s 41 (UnityEngine.Vector3)
IL_095D: ldloc.s 38 (UnityEngine.Vector3)
IL_095F: newobj System.Void
ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3
_b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d)
IL_0964: stfld ColossalFramework.Math.Bezier3 NetLane::m_bezier
IL_0969: ldloc.0
IL_096A: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_096F: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0974: ldloc.s 32 (System.UInt32)
IL_0976: conv.u
IL_0977: ldelema NetLane
IL_097C: ldarg.1
IL_097D: stfld System.UInt16 NetLane::m_segment
IL_0982: ldloc.0
IL_0983: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0988: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_098D: ldloc.s 32 (System.UInt32)
IL_098F: conv.u
IL_0990: ldelema NetLane
IL_0995: ldloc.s 42 (NetLane+Flags)
IL_0997: conv.u2
IL_0998: stfld System.UInt16 NetLane::m_flags
IL_099D: ldloc.0
IL_099E: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09A3: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09A8: ldloc.s 32 (System.UInt32)
IL_09AA: conv.u
IL_09AB: ldelema NetLane
IL_09B0: ldloc.s 44 (System.Int32)
IL_09B2: conv.u1
IL_09B3: stfld System.Byte NetLane::m_firstTarget
IL_09B8: ldloc.0
IL_09B9: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09BE: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09C3: ldloc.s 32 (System.UInt32)
IL_09C5: conv.u
IL_09C6: ldelema NetLane
IL_09CB: ldloc.s 45 (System.Int32)
IL_09CD: conv.u1
IL_09CE: stfld System.Byte NetLane::m_lastTarget
IL_09D3: ldloc.s 29 (System.Single)
IL_09D5: ldloc.0
IL_09D6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09DB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09E0: ldloc.s 32 (System.UInt32)
IL_09E2: conv.u
IL_09E3: ldelema NetLane
IL_09E8: call System.Single NetLane::UpdateLength()
IL_09ED: add
IL_09EE: stloc.s 29 (System.Single)
IL_09F0: ldloc.s 30 (System.Single)
IL_09F2: ldc.r4 1
IL_09F7: add
IL_09F8: stloc.s 30 (System.Single)
IL_09FA: ldloc.s 32 (System.UInt32)
IL_09FC: stloc.s 31 (System.UInt32)
IL_09FE: ldloc.0
IL_09FF: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0A04: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0A09: ldloc.s 32 (System.UInt32)
IL_0A0B: conv.u
IL_0A0C: ldelema NetLane
IL_0A11: ldfld System.UInt32 NetLane::m_nextLane
IL_0A16: stloc.s 32 (System.UInt32)
IL_0A18: ldloc.s 33 (System.Int32)
IL_0A1A: ldc.i4.1
IL_0A1B: add
IL_0A1C: stloc.s 33 (System.Int32)
IL_0A1E: Label30
IL_0A1E: ldloc.s 33 (System.Int32)
IL_0A20: ldarg.0
IL_0A21: ldfld NetInfo NetAI::m_info
IL_0A26: ldfld Lane[] NetInfo::m_lanes
IL_0A2B: ldlen
IL_0A2C: conv.i4
IL_0A2D: blt => Label89
IL_0A32: Label36
IL_0A32: ldloc.s 30 (System.Single)
IL_0A34: ldc.r4 0
IL_0A39: beq => Label90
IL_0A3E: ldarg.2
IL_0A3F: ldloc.s 29 (System.Single)
IL_0A41: ldloc.s 30 (System.Single)
IL_0A43: div
IL_0A44: stfld System.Single NetSegment::m_averageLength
IL_0A49: br => Label91
IL_0A4E: Label90
IL_0A4E: ldarg.2
IL_0A4F: ldc.r4 0
IL_0A54: stfld System.Single NetSegment::m_averageLength
IL_0A59: Label91
IL_0A59: ldc.i4.0
IL_0A5A: stloc.s 64 (System.Boolean)
IL_0A5C: ldarg.2
IL_0A5D: ldfld System.Single NetSegment::m_averageLength
IL_0A62: ldc.r4 11
IL_0A67: bge.un => Label92
IL_0A6C: ldloc.0
IL_0A6D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0A72: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A77: ldarg.2
IL_0A78: ldfld System.UInt16 NetSegment::m_startNode
IL_0A7D: ldelema NetNode
IL_0A82: ldfld Flags NetNode::m_flags
IL_0A87: ldc.i4 128
IL_0A8C: and
IL_0A8D: brfalse => Label93
IL_0A92: ldloc.0
IL_0A93: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0A98: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A9D: ldarg.2
IL_0A9E: ldfld System.UInt16 NetSegment::m_endNode
IL_0AA3: ldelema NetNode
IL_0AA8: ldfld Flags NetNode::m_flags
IL_0AAD: ldc.i4 128
IL_0AB2: and
IL_0AB3: brfalse => Label94
IL_0AB8: ldc.i4.1
IL_0AB9: stloc.s 64 (System.Boolean)
IL_0ABB: Label92
IL_0ABB: Label93
IL_0ABB: Label94
IL_0ABB: ldarg.2
IL_0ABC: ldfld System.UInt32 NetSegment::m_lanes
IL_0AC1: stloc.s 32 (System.UInt32)
IL_0AC3: ldc.i4.0
IL_0AC4: stloc.s 65 (System.Int32)
IL_0AC6: br => Label95
IL_0ACB: Label98
IL_0ACB: ldloc.0
IL_0ACC: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0AD1: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0AD6: ldloc.s 32 (System.UInt32)
IL_0AD8: conv.u
IL_0AD9: ldelema NetLane
IL_0ADE: ldfld System.UInt16 NetLane::m_flags
IL_0AE3: ldc.i4.s -9
IL_0AE5: and
IL_0AE6: stloc.s 66 (NetLane+Flags)
IL_0AE8: ldloc.s 64 (System.Boolean)
IL_0AEA: brfalse => Label96
IL_0AEF: ldloc.s 66 (NetLane+Flags)
IL_0AF1: ldc.i4.8
IL_0AF2: or
IL_0AF3: stloc.s 66 (NetLane+Flags)
IL_0AF5: Label96
IL_0AF5: ldloc.0
IL_0AF6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0AFB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0B00: ldloc.s 32 (System.UInt32)
IL_0B02: conv.u
IL_0B03: ldelema NetLane
IL_0B08: ldloc.s 66 (NetLane+Flags)
IL_0B0A: conv.u2
IL_0B0B: stfld System.UInt16 NetLane::m_flags
IL_0B10: ldloc.0
IL_0B11: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0B16: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0B1B: ldloc.s 32 (System.UInt32)
IL_0B1D: conv.u
IL_0B1E: ldelema NetLane
IL_0B23: ldfld System.UInt32 NetLane::m_nextLane
IL_0B28: stloc.s 32 (System.UInt32)
IL_0B2A: ldloc.s 65 (System.Int32)
IL_0B2C: ldc.i4.1
IL_0B2D: add
IL_0B2E: stloc.s 65 (System.Int32)
IL_0B30: Label95
IL_0B30: ldloc.s 65 (System.Int32)
IL_0B32: ldarg.0
IL_0B33: ldfld NetInfo NetAI::m_info
IL_0B38: ldfld Lane[] NetInfo::m_lanes
IL_0B3D: ldlen
IL_0B3E: conv.i4
IL_0B3F: bge => Label97
IL_0B44: ldloc.s 32 (System.UInt32)
IL_0B46: brtrue => Label98
IL_0B4B: Label97
IL_0B4B: ldarg.3
IL_0B4C: brtrue => Label99
IL_0B51: ldarg.2
IL_0B52: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0B57: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0B5C: stloc.s 68 (UnityEngine.Vector3)
IL_0B5E: ldloca.s 68 (UnityEngine.Vector3)
IL_0B60: ldfld System.Single UnityEngine.Vector3::x
IL_0B65: ldc.r4 16
IL_0B6A: sub
IL_0B6B: ldc.r4 64
IL_0B70: div
IL_0B71: ldc.r4 135
IL_0B76: add
IL_0B77: conv.i4
IL_0B78: ldc.i4.0
IL_0B79: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0B7E: stloc.s 67 (System.Int32)
IL_0B80: ldarg.2
IL_0B81: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0B86: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0B8B: stloc.s 70 (UnityEngine.Vector3)
IL_0B8D: ldloca.s 70 (UnityEngine.Vector3)
IL_0B8F: ldfld System.Single UnityEngine.Vector3::z
IL_0B94: ldc.r4 16
IL_0B99: sub
IL_0B9A: ldc.r4 64
IL_0B9F: div
IL_0BA0: ldc.r4 135
IL_0BA5: add
IL_0BA6: conv.i4
IL_0BA7: ldc.i4.0
IL_0BA8: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0BAD: stloc.s 69 (System.Int32)
IL_0BAF: ldarg.2
IL_0BB0: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0BB5: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0BBA: stloc.s 72 (UnityEngine.Vector3)
IL_0BBC: ldloca.s 72 (UnityEngine.Vector3)
IL_0BBE: ldfld System.Single UnityEngine.Vector3::x
IL_0BC3: ldc.r4 16
IL_0BC8: add
IL_0BC9: ldc.r4 64
IL_0BCE: div
IL_0BCF: ldc.r4 135
IL_0BD4: add
IL_0BD5: conv.i4
IL_0BD6: ldc.i4 269
IL_0BDB: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0BE0: stloc.s 71 (System.Int32)
IL_0BE2: ldarg.2
IL_0BE3: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0BE8: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0BED: stloc.s 74 (UnityEngine.Vector3)
IL_0BEF: ldloca.s 74 (UnityEngine.Vector3)
IL_0BF1: ldfld System.Single UnityEngine.Vector3::z
IL_0BF6: ldc.r4 16
IL_0BFB: add
IL_0BFC: ldc.r4 64
IL_0C01: div
IL_0C02: ldc.r4 135
IL_0C07: add
IL_0C08: conv.i4
IL_0C09: ldc.i4 269
IL_0C0E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0C13: stloc.s 73 (System.Int32)
IL_0C15: ldloc.s 69 (System.Int32)
IL_0C17: stloc.s 75 (System.Int32)
IL_0C19: br => Label100
IL_0C1E: Label108
IL_0C1E: ldloc.s 67 (System.Int32)
IL_0C20: stloc.s 76 (System.Int32)
IL_0C22: br => Label101
IL_0C27: Label107
IL_0C27: ldloc.0
IL_0C28: ldfld System.UInt16[] NetManager::m_nodeGrid
IL_0C2D: ldloc.s 75 (System.Int32)
IL_0C2F: ldc.i4 270
IL_0C34: mul
IL_0C35: ldloc.s 76 (System.Int32)
IL_0C37: add
IL_0C38: ldelem.u2
IL_0C39: stloc.s 77 (System.UInt16)
IL_0C3B: ldc.i4.0
IL_0C3C: stloc.s 78 (System.Int32)
IL_0C3E: br => Label102
IL_0C43: Label106
IL_0C43: ldloc.0
IL_0C44: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0C49: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0C4E: ldloc.s 77 (System.UInt16)
IL_0C50: ldelema NetNode
IL_0C55: call NetInfo NetNode::get_Info()
IL_0C5A: stloc.s 79 (NetInfo)
IL_0C5C: ldloc.0
IL_0C5D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0C62: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0C67: ldloc.s 77 (System.UInt16)
IL_0C69: ldelema NetNode
IL_0C6E: ldfld UnityEngine.Vector3 NetNode::m_position
IL_0C73: stloc.s 80 (UnityEngine.Vector3)
IL_0C75: ldarg.2
IL_0C76: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0C7B: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0C80: stloc.s 82 (UnityEngine.Vector3)
IL_0C82: ldloca.s 82 (UnityEngine.Vector3)
IL_0C84: ldfld System.Single UnityEngine.Vector3::x
IL_0C89: ldc.r4 16
IL_0C8E: sub
IL_0C8F: ldloca.s 80 (UnityEngine.Vector3)
IL_0C91: ldfld System.Single UnityEngine.Vector3::x
IL_0C96: sub
IL_0C97: ldarg.2
IL_0C98: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0C9D: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0CA2: stloc.s 83 (UnityEngine.Vector3)
IL_0CA4: ldloca.s 83 (UnityEngine.Vector3)
IL_0CA6: ldfld System.Single UnityEngine.Vector3::z
IL_0CAB: ldc.r4 16
IL_0CB0: sub
IL_0CB1: ldloca.s 80 (UnityEngine.Vector3)
IL_0CB3: ldfld System.Single UnityEngine.Vector3::z
IL_0CB8: sub
IL_0CB9: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0CBE: ldloca.s 80 (UnityEngine.Vector3)
IL_0CC0: ldfld System.Single UnityEngine.Vector3::x
IL_0CC5: ldarg.2
IL_0CC6: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0CCB: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0CD0: stloc.s 84 (UnityEngine.Vector3)
IL_0CD2: ldloca.s 84 (UnityEngine.Vector3)
IL_0CD4: ldfld System.Single UnityEngine.Vector3::x
IL_0CD9: sub
IL_0CDA: ldc.r4 16
IL_0CDF: sub
IL_0CE0: ldloca.s 80 (UnityEngine.Vector3)
IL_0CE2: ldfld System.Single UnityEngine.Vector3::z
IL_0CE7: ldarg.2
IL_0CE8: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0CED: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0CF2: stloc.s 85 (UnityEngine.Vector3)
IL_0CF4: ldloca.s 85 (UnityEngine.Vector3)
IL_0CF6: ldfld System.Single UnityEngine.Vector3::z
IL_0CFB: sub
IL_0CFC: ldc.r4 16
IL_0D01: sub
IL_0D02: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0D07: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0D0C: stloc.s 81 (System.Single)
IL_0D0E: ldloc.s 81 (System.Single)
IL_0D10: ldc.r4 0
IL_0D15: bge.un => Label103
IL_0D1A: ldloc.s 79 (NetInfo)
IL_0D1C: ldfld NetAI NetInfo::m_netAI
IL_0D21: ldloc.s 77 (System.UInt16)
IL_0D23: ldloc.0
IL_0D24: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0D29: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0D2E: ldloc.s 77 (System.UInt16)
IL_0D30: ldelema NetNode
IL_0D35: callvirt virtual System.Void NetAI::NearbyLanesUpdated(System.UInt16
nodeID, NetNode& data)
IL_0D3A: Label103
IL_0D3A: ldloc.0
IL_0D3B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0D40: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0D45: ldloc.s 77 (System.UInt16)
IL_0D47: ldelema NetNode
IL_0D4C: ldfld System.UInt16 NetNode::m_nextGridNode
IL_0D51: stloc.s 77 (System.UInt16)
IL_0D53: ldloc.s 78 (System.Int32)
IL_0D55: ldc.i4.1
IL_0D56: add
IL_0D57: dup
IL_0D58: stloc.s 78 (System.Int32)
IL_0D5A: ldc.i4 32768
IL_0D5F: blt => Label104
IL_0D64: ldc.i4.1
IL_0D65: ldstr "Invalid list detected!\n"
IL_0D6A: call static System.String System.Environment::get_StackTrace()
IL_0D6F: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_0D74: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Error(LogChannel ll, System.String
msg)
IL_0D79: br => Label105
IL_0D7E: Label102
IL_0D7E: Label104
IL_0D7E: ldloc.s 77 (System.UInt16)
IL_0D80: brtrue => Label106
IL_0D85: Label105
IL_0D85: ldloc.s 76 (System.Int32)
IL_0D87: ldc.i4.1
IL_0D88: add
IL_0D89: stloc.s 76 (System.Int32)
IL_0D8B: Label101
IL_0D8B: ldloc.s 76 (System.Int32)
IL_0D8D: ldloc.s 71 (System.Int32)
IL_0D8F: ble => Label107
IL_0D94: ldloc.s 75 (System.Int32)
IL_0D96: ldc.i4.1
IL_0D97: add
IL_0D98: stloc.s 75 (System.Int32)
IL_0D9A: Label100
IL_0D9A: ldloc.s 75 (System.Int32)
IL_0D9C: ldloc.s 73 (System.Int32)
IL_0D9E: ble => Label108
IL_0DA3: ldarg.0
IL_0DA4: ldfld NetInfo NetAI::m_info
IL_0DA9: ldfld System.Boolean NetInfo::m_hasPedestrianLanes
IL_0DAE: brfalse => Label109
IL_0DB3: ldarg.0
IL_0DB4: ldfld NetInfo NetAI::m_info
IL_0DB9: ldfld System.Boolean NetInfo::m_hasForwardVehicleLanes
IL_0DBE: brtrue => Label110
IL_0DC3: ldarg.0
IL_0DC4: ldfld NetInfo NetAI::m_info
IL_0DC9: ldfld System.Boolean NetInfo::m_hasBackwardVehicleLanes
IL_0DCE: brfalse => Label111
IL_0DD3: Label110
IL_0DD3: ldarg.1
IL_0DD4: ldarg.2
IL_0DD5: call static System.Void RoadBaseAI::CheckBuildings(System.UInt16
segmentID, NetSegment& data)
IL_0DDA: // end original
IL_0DDA: Label99
IL_0DDA: Label109
IL_0DDA: Label111
IL_0DDA: 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_Patch0(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: // start original
IL_0000: ldarg.s 4
IL_0002: ldc.i4.2
IL_0003: shl
IL_0004: ldarg.3
IL_0005: or
IL_0006: stloc.0
IL_0007: ldarg.1
IL_0008: ldfld System.UInt16 NetSegment::m_startNode
IL_000D: ldarg.0
IL_000E: bne.un => Label0
IL_0013: ldarg.2
IL_0014: ldc.i4.8
IL_0015: shr.un
IL_0016: ldc.i4.1
IL_0017: and
IL_0018: brtrue => Label1
IL_001D: ldarg.1
IL_001E: ldarg.1
IL_001F: ldfld System.Byte NetSegment::m_trafficLightState0
IL_0024: ldc.i4 240
IL_0029: and
IL_002A: ldloc.0
IL_002B: or
IL_002C: conv.u1
IL_002D: stfld System.Byte NetSegment::m_trafficLightState0
IL_0032: br => Label2
IL_0037: Label1
IL_0037: ldarg.1
IL_0038: ldarg.1
IL_0039: ldfld System.Byte NetSegment::m_trafficLightState1
IL_003E: ldc.i4 240
IL_0043: and
IL_0044: ldloc.0
IL_0045: or
IL_0046: conv.u1
IL_0047: stfld System.Byte NetSegment::m_trafficLightState1
IL_004C: Label2
IL_004C: ldarg.s 5
IL_004E: brfalse => Label3
IL_0053: ldarg.1
IL_0054: dup
IL_0055: ldfld Flags NetSegment::m_flags
IL_005A: ldc.i4 4096
IL_005F: or
IL_0060: stfld Flags NetSegment::m_flags
IL_0065: br => Label4
IL_006A: Label3
IL_006A: ldarg.1
IL_006B: dup
IL_006C: ldfld Flags NetSegment::m_flags
IL_0071: ldc.i4 -4097
IL_0076: and
IL_0077: stfld Flags NetSegment::m_flags
IL_007C: Label4
IL_007C: ldarg.s 6
IL_007E: brfalse => Label5
IL_0083: ldarg.1
IL_0084: dup
IL_0085: ldfld Flags NetSegment::m_flags
IL_008A: ldc.i4 16384
IL_008F: or
IL_0090: stfld Flags NetSegment::m_flags
IL_0095: br => Label6
IL_009A: Label5
IL_009A: ldarg.1
IL_009B: dup
IL_009C: ldfld Flags NetSegment::m_flags
IL_00A1: ldc.i4 -16385
IL_00A6: and
IL_00A7: stfld Flags NetSegment::m_flags
IL_00AC: Label6
IL_00AC: br => Label7
IL_00B1: Label0
IL_00B1: ldarg.2
IL_00B2: ldc.i4.8
IL_00B3: shr.un
IL_00B4: ldc.i4.1
IL_00B5: and
IL_00B6: brtrue => Label8
IL_00BB: ldarg.1
IL_00BC: ldarg.1
IL_00BD: ldfld System.Byte NetSegment::m_trafficLightState0
IL_00C2: ldc.i4.s 15
IL_00C4: and
IL_00C5: ldloc.0
IL_00C6: ldc.i4.4
IL_00C7: shl
IL_00C8: or
IL_00C9: conv.u1
IL_00CA: stfld System.Byte NetSegment::m_trafficLightState0
IL_00CF: br => Label9
IL_00D4: Label8
IL_00D4: ldarg.1
IL_00D5: ldarg.1
IL_00D6: ldfld System.Byte NetSegment::m_trafficLightState1
IL_00DB: ldc.i4.s 15
IL_00DD: and
IL_00DE: ldloc.0
IL_00DF: ldc.i4.4
IL_00E0: shl
IL_00E1: or
IL_00E2: conv.u1
IL_00E3: stfld System.Byte NetSegment::m_trafficLightState1
IL_00E8: Label9
IL_00E8: ldarg.s 5
IL_00EA: brfalse => Label10
IL_00EF: ldarg.1
IL_00F0: dup
IL_00F1: ldfld Flags NetSegment::m_flags
IL_00F6: ldc.i4 8192
IL_00FB: or
IL_00FC: stfld Flags NetSegment::m_flags
IL_0101: br => Label11
IL_0106: Label10
IL_0106: ldarg.1
IL_0107: dup
IL_0108: ldfld Flags NetSegment::m_flags
IL_010D: ldc.i4 -8193
IL_0112: and
IL_0113: stfld Flags NetSegment::m_flags
IL_0118: Label11
IL_0118: ldarg.s 6
IL_011A: brfalse => Label12
IL_011F: ldarg.1
IL_0120: dup
IL_0121: ldfld Flags NetSegment::m_flags
IL_0126: ldc.i4 32768
IL_012B: or
IL_012C: stfld Flags NetSegment::m_flags
IL_0131: br => Label13
IL_0136: Label12
IL_0136: ldarg.1
IL_0137: dup
IL_0138: ldfld Flags NetSegment::m_flags
IL_013D: ldc.i4 -32769
IL_0142: and
IL_0143: stfld Flags NetSegment::m_flags
IL_0148: // end original
IL_0148: Label7
IL_0148: Label13
IL_0148: ret
DONE

### Patch: virtual System.Void RoadBaseAI::SimulationStep(System.UInt16 segmentID,


NetSegment& data)
### Replacement: static System.Void
RoadBaseAI::RoadBaseAI.SimulationStep_Patch0(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/Problem
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: // start original
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: ldarg.2
IL_0003: call virtual System.Void PlayerNetAI::SimulationStep(System.UInt16
segmentID, NetSegment& data)
IL_0008: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_000D: stloc.0
IL_000E: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0013: stloc.1
IL_0014: ldarg.2
IL_0015: ldfld Problem NetSegment::m_problems
IL_001A: ldc.i4 805306368
IL_001F: conv.i8
IL_0020: call static Problem Notification::RemoveProblems(Problem problems1,
Problem problems2)
IL_0025: stloc.2
IL_0026: ldarg.2
IL_0027: ldfld Flags NetSegment::m_flags
IL_002C: ldc.i4 2048
IL_0031: and
IL_0032: brfalse => Label0
IL_0037: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_003C: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0041: ldc.i4.s 16
IL_0043: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0048: brtrue => Label1
IL_004D: ldarg.2
IL_004E: dup
IL_004F: ldfld Flags NetSegment::m_flags
IL_0054: ldc.i4 -2049
IL_0059: and
IL_005A: stfld Flags NetSegment::m_flags
IL_005F: Label0
IL_005F: Label1
IL_005F: ldc.r4 0
IL_0064: stloc.3
IL_0065: ldarg.2
IL_0066: ldfld System.UInt32 NetSegment::m_lanes
IL_006B: stloc.s 4 (System.UInt32)
IL_006D: ldc.i4.0
IL_006E: stloc.s 5 (System.Int32)
IL_0070: br => Label2
IL_0075: Label6
IL_0075: ldarg.0
IL_0076: ldfld NetInfo NetAI::m_info
IL_007B: ldfld Lane[] NetInfo::m_lanes
IL_0080: ldloc.s 5 (System.Int32)
IL_0082: ldelem.ref
IL_0083: stloc.s 6 (NetInfo+Lane)
IL_0085: ldloc.s 6 (NetInfo+Lane)
IL_0087: ldfld LaneType Lane::m_laneType
IL_008C: ldc.i4.s 33
IL_008E: and
IL_008F: conv.u1
IL_0090: brfalse => Label3
IL_0095: ldloc.s 6 (NetInfo+Lane)
IL_0097: ldfld VehicleType Lane::m_vehicleType
IL_009C: ldc.i4.s -33
IL_009E: and
IL_009F: brfalse => Label4
IL_00A4: ldloc.3
IL_00A5: ldloc.1
IL_00A6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00AB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00B0: ldloc.s 4 (System.UInt32)
IL_00B2: conv.u
IL_00B3: ldelema NetLane
IL_00B8: ldfld System.Single NetLane::m_length
IL_00BD: add
IL_00BE: stloc.3
IL_00BF: Label3
IL_00BF: Label4
IL_00BF: ldloc.1
IL_00C0: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00C5: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00CA: ldloc.s 4 (System.UInt32)
IL_00CC: conv.u
IL_00CD: ldelema NetLane
IL_00D2: ldfld System.UInt32 NetLane::m_nextLane
IL_00D7: stloc.s 4 (System.UInt32)
IL_00D9: ldloc.s 5 (System.Int32)
IL_00DB: ldc.i4.1
IL_00DC: add
IL_00DD: stloc.s 5 (System.Int32)
IL_00DF: Label2
IL_00DF: ldloc.s 5 (System.Int32)
IL_00E1: ldarg.0
IL_00E2: ldfld NetInfo NetAI::m_info
IL_00E7: ldfld Lane[] NetInfo::m_lanes
IL_00EC: ldlen
IL_00ED: conv.i4
IL_00EE: bge => Label5
IL_00F3: ldloc.s 4 (System.UInt32)
IL_00F5: brtrue => Label6
IL_00FA: Label5
IL_00FA: ldc.i4.0
IL_00FB: stloc.s 7 (System.Int32)
IL_00FD: ldc.i4.0
IL_00FE: stloc.s 8 (System.Int32)
IL_0100: ldarg.2
IL_0101: ldfld System.UInt16 NetSegment::m_trafficBuffer
IL_0106: ldc.i4 65535
IL_010B: bne.un => Label7
IL_0110: ldarg.2
IL_0111: ldfld Flags NetSegment::m_flags
IL_0116: ldc.i4 2097152
IL_011B: and
IL_011C: brtrue => Label8
IL_0121: ldarg.2
IL_0122: dup
IL_0123: ldfld Flags NetSegment::m_flags
IL_0128: ldc.i4 2097152
IL_012D: or
IL_012E: stfld Flags NetSegment::m_flags
IL_0133: ldarg.2
IL_0134: ldloc.0
IL_0135: dup
IL_0136: ldfld System.UInt32 SimulationManager::m_currentBuildIndex
IL_013B: dup
IL_013C: stloc.s 9 (System.UInt32)
IL_013E: ldc.i4.1
IL_013F: add
IL_0140: stfld System.UInt32 SimulationManager::m_currentBuildIndex
IL_0145: ldloc.s 9 (System.UInt32)
IL_0147: stfld System.UInt32 NetSegment::m_modifiedIndex
IL_014C: Label8
IL_014C: br => Label9
IL_0151: Label7
IL_0151: ldarg.2
IL_0152: dup
IL_0153: ldfld Flags NetSegment::m_flags
IL_0158: ldc.i4 -2097153
IL_015D: and
IL_015E: stfld Flags NetSegment::m_flags
IL_0163: ldloc.3
IL_0164: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_0169: ldc.i4.4
IL_016A: shl
IL_016B: stloc.s 10 (System.Int32)
IL_016D: ldloc.s 10 (System.Int32)
IL_016F: brfalse => Label10
IL_0174: ldarg.2
IL_0175: ldfld System.UInt16 NetSegment::m_trafficBuffer
IL_017A: ldc.i4.s 100
IL_017C: mul
IL_017D: ldloc.s 10 (System.Int32)
IL_017F: div
IL_0180: ldc.i4.s 100
IL_0182: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0187: conv.u1
IL_0188: stloc.s 7 (System.Int32)
IL_018A: ldarg.2
IL_018B: ldfld System.UInt16 NetSegment::m_noiseBuffer
IL_0190: ldc.i4 250
IL_0195: mul
IL_0196: ldloc.s 10 (System.Int32)
IL_0198: div
IL_0199: ldc.i4.s 100
IL_019B: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01A0: conv.u1
IL_01A1: stloc.s 8 (System.Int32)
IL_01A3: Label9
IL_01A3: Label10
IL_01A3: ldarg.2
IL_01A4: ldc.i4.0
IL_01A5: stfld System.UInt16 NetSegment::m_trafficBuffer
IL_01AA: ldarg.2
IL_01AB: ldc.i4.0
IL_01AC: stfld System.UInt16 NetSegment::m_noiseBuffer
IL_01B1: ldloc.s 7 (System.Int32)
IL_01B3: ldarg.2
IL_01B4: ldfld System.Byte NetSegment::m_trafficDensity
IL_01B9: ble => Label11
IL_01BE: ldarg.2
IL_01BF: ldarg.2
IL_01C0: ldfld System.Byte NetSegment::m_trafficDensity
IL_01C5: ldc.i4.5
IL_01C6: add
IL_01C7: ldloc.s 7 (System.Int32)
IL_01C9: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01CE: conv.u1
IL_01CF: stfld System.Byte NetSegment::m_trafficDensity
IL_01D4: br => Label12
IL_01D9: Label11
IL_01D9: ldloc.s 7 (System.Int32)
IL_01DB: ldarg.2
IL_01DC: ldfld System.Byte NetSegment::m_trafficDensity
IL_01E1: bge => Label13
IL_01E6: ldarg.2
IL_01E7: ldarg.2
IL_01E8: ldfld System.Byte NetSegment::m_trafficDensity
IL_01ED: ldc.i4.5
IL_01EE: sub
IL_01EF: ldloc.s 7 (System.Int32)
IL_01F1: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_01F6: conv.u1
IL_01F7: stfld System.Byte NetSegment::m_trafficDensity
IL_01FC: Label12
IL_01FC: Label13
IL_01FC: ldloc.s 8 (System.Int32)
IL_01FE: ldarg.2
IL_01FF: ldfld System.Byte NetSegment::m_noiseDensity
IL_0204: ble => Label14
IL_0209: ldarg.2
IL_020A: ldarg.2
IL_020B: ldfld System.Byte NetSegment::m_noiseDensity
IL_0210: ldc.i4.2
IL_0211: add
IL_0212: ldloc.s 8 (System.Int32)
IL_0214: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0219: conv.u1
IL_021A: stfld System.Byte NetSegment::m_noiseDensity
IL_021F: br => Label15
IL_0224: Label14
IL_0224: ldloc.s 8 (System.Int32)
IL_0226: ldarg.2
IL_0227: ldfld System.Byte NetSegment::m_noiseDensity
IL_022C: bge => Label16
IL_0231: ldarg.2
IL_0232: ldarg.2
IL_0233: ldfld System.Byte NetSegment::m_noiseDensity
IL_0238: ldc.i4.2
IL_0239: sub
IL_023A: ldloc.s 8 (System.Int32)
IL_023C: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0241: conv.u1
IL_0242: stfld System.Byte NetSegment::m_noiseDensity
IL_0247: Label15
IL_0247: Label16
IL_0247: ldloc.1
IL_0248: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_024D: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0252: ldarg.2
IL_0253: ldfld System.UInt16 NetSegment::m_startNode
IL_0258: ldelema NetNode
IL_025D: ldfld UnityEngine.Vector3 NetNode::m_position
IL_0262: stloc.s 11 (UnityEngine.Vector3)
IL_0264: ldloc.1
IL_0265: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_026A: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_026F: ldarg.2
IL_0270: ldfld System.UInt16 NetSegment::m_endNode
IL_0275: ldelema NetNode
IL_027A: ldfld UnityEngine.Vector3 NetNode::m_position
IL_027F: stloc.s 12 (UnityEngine.Vector3)
IL_0281: ldloc.s 11 (UnityEngine.Vector3)
IL_0283: ldloc.s 12 (UnityEngine.Vector3)
IL_0285: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_028A: ldc.r4 0.5
IL_028F: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_0294: stloc.s 13 (UnityEngine.Vector3)
IL_0296: ldc.i4.0
IL_0297: stloc.s 14 (System.Boolean)
IL_0299: ldarg.0
IL_029A: ldfld NetInfo NetAI::m_info
IL_029F: ldfld Flags NetInfo::m_setVehicleFlags
IL_02A4: ldc.i4 268435456
IL_02A9: and
IL_02AA: brtrue => Label17
IL_02AF: call static TerrainManager
ColossalFramework.Singleton`1<TerrainManager>::get_instance()
IL_02B4: ldloc.s 13 (UnityEngine.Vector3)
IL_02B6: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_02BB: callvirt System.Single TerrainManager::WaterLevel(UnityEngine.Vector2
position)
IL_02C0: stloc.s 15 (System.Single)
IL_02C2: ldloc.s 15 (System.Single)
IL_02C4: ldloca.s 13 (UnityEngine.Vector3)
IL_02C6: ldfld System.Single UnityEngine.Vector3::y
IL_02CB: ldc.r4 1
IL_02D0: add
IL_02D1: ble.un => Label18
IL_02D6: ldloc.s 15 (System.Single)
IL_02D8: ldc.r4 0
IL_02DD: ble.un => Label19
IL_02E2: ldc.i4.1
IL_02E3: stloc.s 14 (System.Boolean)
IL_02E5: ldarg.2
IL_02E6: dup
IL_02E7: ldfld Flags NetSegment::m_flags
IL_02EC: ldc.i4 4194304
IL_02F1: or
IL_02F2: stfld Flags NetSegment::m_flags
IL_02F7: ldloc.2
IL_02F8: ldc.i8 4611686018695823360
IL_0301: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0306: stloc.2
IL_0307: ldarg.2
IL_0308: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_030D: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0312: stloc.s 16 (UnityEngine.Vector3)
IL_0314: ldarg.2
IL_0315: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_031A: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_031F: stloc.s 17 (UnityEngine.Vector3)
IL_0321: ldloca.s 16 (UnityEngine.Vector3)
IL_0323: ldfld System.Single UnityEngine.Vector3::x
IL_0328: ldloca.s 16 (UnityEngine.Vector3)
IL_032A: ldfld System.Single UnityEngine.Vector3::z
IL_032F: ldloca.s 17 (UnityEngine.Vector3)
IL_0331: ldfld System.Single UnityEngine.Vector3::x
IL_0336: ldloca.s 17 (UnityEngine.Vector3)
IL_0338: ldfld System.Single UnityEngine.Vector3::z
IL_033D: call static System.Void RoadBaseAI::FloodParkedCars(System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0342: br => Label20
IL_0347: Label18
IL_0347: Label19
IL_0347: ldarg.2
IL_0348: dup
IL_0349: ldfld Flags NetSegment::m_flags
IL_034E: ldc.i4 -4194305
IL_0353: and
IL_0354: stfld Flags NetSegment::m_flags
IL_0359: ldloc.s 15 (System.Single)
IL_035B: ldloca.s 13 (UnityEngine.Vector3)
IL_035D: ldfld System.Single UnityEngine.Vector3::y
IL_0362: ble.un => Label21
IL_0367: ldloc.s 15 (System.Single)
IL_0369: ldc.r4 0
IL_036E: ble.un => Label22
IL_0373: ldc.i4.1
IL_0374: stloc.s 14 (System.Boolean)
IL_0376: ldloc.2
IL_0377: ldc.i4 268435456
IL_037C: conv.i8
IL_037D: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0382: stloc.2
IL_0383: Label17
IL_0383: Label20
IL_0383: Label21
IL_0383: Label22
IL_0383: call static DistrictManager
ColossalFramework.Singleton`1<DistrictManager>::get_instance()
IL_0388: stloc.s 18 (DistrictManager)
IL_038A: ldloc.s 18 (DistrictManager)
IL_038C: ldloc.s 13 (UnityEngine.Vector3)
IL_038E: callvirt System.Byte DistrictManager::GetDistrict(UnityEngine.Vector3
worldPos)
IL_0393: stloc.s 19 (System.Byte)
IL_0395: ldloc.s 18 (DistrictManager)
IL_0397: ldfld Array8`1<District> DistrictManager::m_districts
IL_039C: ldfld District[] Array8`1<District>::m_buffer
IL_03A1: ldloc.s 19 (System.Byte)
IL_03A3: ldelema District
IL_03A8: ldfld CityPlanning District::m_cityPlanningPolicies
IL_03AD: stloc.s 20 (DistrictPolicies+CityPlanning)
IL_03AF: ldc.i4.s 100
IL_03B1: ldarg.2
IL_03B2: ldfld System.Byte NetSegment::m_noiseDensity
IL_03B7: ldc.i4.s 100
IL_03B9: sub
IL_03BA: ldarg.2
IL_03BB: ldfld System.Byte NetSegment::m_noiseDensity
IL_03C0: ldc.i4.s 100
IL_03C2: sub
IL_03C3: mul
IL_03C4: ldc.i4.s 100
IL_03C6: div
IL_03C7: sub
IL_03C8: stloc.s 21 (System.Int32)
IL_03CA: ldarg.0
IL_03CB: ldfld NetInfo NetAI::m_info
IL_03D0: ldfld VehicleType NetInfo::m_vehicleTypes
IL_03D5: ldc.i4.1
IL_03D6: and
IL_03D7: brfalse => Label23
IL_03DC: ldarg.0
IL_03DD: ldfld NetInfo NetAI::m_info
IL_03E2: ldfld Flags NetInfo::m_setVehicleFlags
IL_03E7: ldc.i4 268435456
IL_03EC: and
IL_03ED: brtrue => Label24
IL_03F2: ldloc.s 14 (System.Boolean)
IL_03F4: brfalse => Label25
IL_03F9: ldarg.2
IL_03FA: ldfld Flags NetSegment::m_flags
IL_03FF: ldc.i4 2099200
IL_0404: and
IL_0405: brtrue => Label26
IL_040A: ldloc.0
IL_040B: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0410: ldc.i4.s 10
IL_0412: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0417: brtrue => Label27
IL_041C: ldloca.s 22 (TransferManager+TransferOffer)
IL_041E: initobj TransferManager+TransferOffer
IL_0424: ldloca.s 22 (TransferManager+TransferOffer)
IL_0426: ldc.i4.4
IL_0427: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_042C: ldloca.s 22 (TransferManager+TransferOffer)
IL_042E: ldarg.1
IL_042F: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_0434: ldloca.s 22 (TransferManager+TransferOffer)
IL_0436: ldloc.s 13 (UnityEngine.Vector3)
IL_0438: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_043D: ldloca.s 22 (TransferManager+TransferOffer)
IL_043F: ldc.i4.1
IL_0440: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_0445: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_044A: ldc.i4.s 73
IL_044C: ldloc.s 22 (TransferManager+TransferOffer)
IL_044E: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason
material, TransferOffer offer)
IL_0453: Label25
IL_0453: Label26
IL_0453: Label27
IL_0453: ldarg.2
IL_0454: ldfld System.Byte NetSegment::m_wetness
IL_0459: stloc.s 23 (System.Int32)
IL_045B: ldloc.1
IL_045C: ldfld System.Boolean NetManager::m_treatWetAsSnow
IL_0461: brtrue => Label28
IL_0466: ldloc.s 14 (System.Boolean)
IL_0468: brfalse => Label29
IL_046D: ldc.i4 255
IL_0472: stloc.s 23 (System.Int32)
IL_0474: br => Label30
IL_0479: Label29
IL_0479: ldloc.s 23 (System.Int32)
IL_047B: ldc.i4.s 63
IL_047D: add
IL_047E: ldc.i4.5
IL_047F: shr
IL_0480: neg
IL_0481: stloc.s 24 (System.Int32)
IL_0483: call static WeatherManager
ColossalFramework.Singleton`1<WeatherManager>::get_instance()
IL_0488: ldloc.s 13 (UnityEngine.Vector3)
IL_048A: ldc.i4.0
IL_048B: callvirt System.Single
WeatherManager::SampleRainIntensity(UnityEngine.Vector3 pos, System.Boolean
ignoreWeather)
IL_0490: stloc.s 25 (System.Single)
IL_0492: ldloc.s 25 (System.Single)
IL_0494: ldc.r4 0
IL_0499: beq => Label31
IL_049E: ldloc.s 25 (System.Single)
IL_04A0: ldc.r4 4000
IL_04A5: mul
IL_04A6: ldc.r4 1000
IL_04AB: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_04B0: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_04B5: stloc.s 26 (System.Int32)
IL_04B7: ldloc.s 24 (System.Int32)
IL_04B9: ldloc.0
IL_04BA: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_04BF: ldloc.s 26 (System.Int32)
IL_04C1: ldloc.s 26 (System.Int32)
IL_04C3: ldc.i4.s 99
IL_04C5: add
IL_04C6: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_04CB: ldc.i4.s 100
IL_04CD: div
IL_04CE: add
IL_04CF: stloc.s 24 (System.Int32)
IL_04D1: Label31
IL_04D1: ldloc.s 23 (System.Int32)
IL_04D3: ldloc.s 24 (System.Int32)
IL_04D5: add
IL_04D6: ldc.i4.0
IL_04D7: ldc.i4 255
IL_04DC: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_04E1: stloc.s 23 (System.Int32)
IL_04E3: Label30
IL_04E3: br => Label32
IL_04E8: Label28
IL_04E8: ldarg.0
IL_04E9: ldfld System.Boolean RoadBaseAI::m_accumulateSnow
IL_04EE: brfalse => Label33
IL_04F3: ldloc.s 14 (System.Boolean)
IL_04F5: brfalse => Label34
IL_04FA: ldc.i4 128
IL_04FF: stloc.s 23 (System.Int32)
IL_0501: br => Label35
IL_0506: Label34
IL_0506: call static WeatherManager
ColossalFramework.Singleton`1<WeatherManager>::get_instance()
IL_050B: ldloc.s 13 (UnityEngine.Vector3)
IL_050D: ldc.i4.0
IL_050E: callvirt System.Single
WeatherManager::SampleRainIntensity(UnityEngine.Vector3 pos, System.Boolean
ignoreWeather)
IL_0513: stloc.s 27 (System.Single)
IL_0515: ldloc.s 27 (System.Single)
IL_0517: ldc.r4 0
IL_051C: beq => Label36
IL_0521: ldloc.s 27 (System.Single)
IL_0523: ldc.r4 400
IL_0528: mul
IL_0529: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_052E: stloc.s 28 (System.Int32)
IL_0530: ldloc.0
IL_0531: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0536: ldloc.s 28 (System.Int32)
IL_0538: ldloc.s 28 (System.Int32)
IL_053A: ldc.i4.s 99
IL_053C: add
IL_053D: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_0542: ldc.i4.s 100
IL_0544: div
IL_0545: stloc.s 29 (System.Int32)
IL_0547: call static UnlockManager
ColossalFramework.Singleton`1<UnlockManager>::get_instance()
IL_054C: ldc.i4.s 24
IL_054E: callvirt System.Boolean UnlockManager::Unlocked(Feature feature)
IL_0553: brfalse => Label37
IL_0558: ldloc.s 23 (System.Int32)
IL_055A: ldloc.s 29 (System.Int32)
IL_055C: add
IL_055D: ldc.i4 255
IL_0562: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0567: stloc.s 23 (System.Int32)
IL_0569: br => Label38
IL_056E: Label37
IL_056E: ldloc.s 23 (System.Int32)
IL_0570: ldloc.s 29 (System.Int32)
IL_0572: add
IL_0573: ldc.i4 128
IL_0578: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_057D: stloc.s 23 (System.Int32)
IL_057F: Label38
IL_057F: br => Label39
IL_0584: Label36
IL_0584: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0589: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_058E: ldc.i4.4
IL_058F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0594: brtrue => Label40
IL_0599: ldloc.s 23 (System.Int32)
IL_059B: ldc.i4.1
IL_059C: sub
IL_059D: ldc.i4.0
IL_059E: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_05A3: stloc.s 23 (System.Int32)
IL_05A5: Label39
IL_05A5: Label40
IL_05A5: ldloc.s 23 (System.Int32)
IL_05A7: ldc.i4.s 64
IL_05A9: blt => Label41
IL_05AE: ldarg.2
IL_05AF: ldfld Flags NetSegment::m_flags
IL_05B4: ldc.i4 6293504
IL_05B9: and
IL_05BA: brtrue => Label42
IL_05BF: ldloc.0
IL_05C0: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_05C5: ldc.i4.s 10
IL_05C7: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_05CC: brtrue => Label43
IL_05D1: ldloca.s 30 (TransferManager+TransferOffer)
IL_05D3: initobj TransferManager+TransferOffer
IL_05D9: ldloca.s 30 (TransferManager+TransferOffer)
IL_05DB: ldloc.s 23 (System.Int32)
IL_05DD: ldc.i4.s 50
IL_05DF: div
IL_05E0: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_05E5: ldloca.s 30 (TransferManager+TransferOffer)
IL_05E7: ldarg.1
IL_05E8: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_05ED: ldloca.s 30 (TransferManager+TransferOffer)
IL_05EF: ldloc.s 13 (UnityEngine.Vector3)
IL_05F1: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_05F6: ldloca.s 30 (TransferManager+TransferOffer)
IL_05F8: ldc.i4.1
IL_05F9: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_05FE: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_0603: ldc.i4.s 64
IL_0605: ldloc.s 30 (TransferManager+TransferOffer)
IL_0607: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason
material, TransferOffer offer)
IL_060C: Label41
IL_060C: Label42
IL_060C: Label43
IL_060C: ldloc.s 23 (System.Int32)
IL_060E: ldc.i4 192
IL_0613: blt => Label44
IL_0618: ldloc.2
IL_0619: ldc.i4 536870912
IL_061E: conv.i8
IL_061F: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0624: stloc.2
IL_0625: Label44
IL_0625: ldloc.s 18 (DistrictManager)
IL_0627: ldfld Array8`1<District> DistrictManager::m_districts
IL_062C: ldfld District[] Array8`1<District>::m_buffer
IL_0631: ldloc.s 19 (System.Byte)
IL_0633: ldelema District
IL_0638: ldflda DistrictProductionData District::m_productionData
IL_063D: dup
IL_063E: ldfld System.UInt32 DistrictProductionData::m_tempSnowCover
IL_0643: ldloc.s 23 (System.Int32)
IL_0645: add
IL_0646: stfld System.UInt32 DistrictProductionData::m_tempSnowCover
IL_064B: Label32
IL_064B: Label33
IL_064B: Label35
IL_064B: ldloc.s 23 (System.Int32)
IL_064D: ldarg.2
IL_064E: ldfld System.Byte NetSegment::m_wetness
IL_0653: beq => Label45
IL_0658: ldarg.2
IL_0659: ldfld System.Byte NetSegment::m_wetness
IL_065E: ldloc.s 23 (System.Int32)
IL_0660: sub
IL_0661: call static System.Int32 UnityEngine.Mathf::Abs(System.Int32 value)
IL_0666: ldc.i4.s 10
IL_0668: ble => Label46
IL_066D: ldarg.2
IL_066E: ldloc.s 23 (System.Int32)
IL_0670: conv.u1
IL_0671: stfld System.Byte NetSegment::m_wetness
IL_0676: ldsfld InstanceID InstanceID::Empty
IL_067B: stloc.s 31 (InstanceID)
IL_067D: ldloca.s 31 (InstanceID)
IL_067F: ldarg.1
IL_0680: call System.Void InstanceID::set_NetSegment(System.UInt16 value)
IL_0685: ldloc.1
IL_0686: ldloc.s 31 (InstanceID)
IL_0688: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_068D: ldloca.s 31 (InstanceID)
IL_068F: ldarg.2
IL_0690: ldfld System.UInt16 NetSegment::m_startNode
IL_0695: call System.Void InstanceID::set_NetNode(System.UInt16 value)
IL_069A: ldloc.1
IL_069B: ldloc.s 31 (InstanceID)
IL_069D: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06A2: ldloca.s 31 (InstanceID)
IL_06A4: ldarg.2
IL_06A5: ldfld System.UInt16 NetSegment::m_endNode
IL_06AA: call System.Void InstanceID::set_NetNode(System.UInt16 value)
IL_06AF: ldloc.1
IL_06B0: ldloc.s 31 (InstanceID)
IL_06B2: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06B7: br => Label47
IL_06BC: Label46
IL_06BC: ldarg.2
IL_06BD: ldloc.s 23 (System.Int32)
IL_06BF: conv.u1
IL_06C0: stfld System.Byte NetSegment::m_wetness
IL_06C5: ldloc.1
IL_06C6: ldc.i4 256
IL_06CB: stfld System.Int32 NetManager::m_wetnessChanged
IL_06D0: Label24
IL_06D0: Label45
IL_06D0: Label47
IL_06D0: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_06D2: ldc.i4 1024
IL_06D7: and
IL_06D8: brfalse => Label48
IL_06DD: ldloc.s 21 (System.Int32)
IL_06DF: ldc.i4.3
IL_06E0: mul
IL_06E1: ldc.i4.1
IL_06E2: add
IL_06E3: ldc.i4.1
IL_06E4: shr
IL_06E5: stloc.s 21 (System.Int32)
IL_06E7: ldc.i4 700
IL_06EC: ldc.i4.s 50
IL_06EE: ldarg.2
IL_06EF: ldfld System.Byte NetSegment::m_trafficDensity
IL_06F4: ldc.i4.6
IL_06F5: mul
IL_06F6: add
IL_06F7: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_06FC: stloc.s 32 (System.Int32)
IL_06FE: br => Label49
IL_0703: Label48
IL_0703: ldc.i4 500
IL_0708: ldc.i4.s 50
IL_070A: ldarg.2
IL_070B: ldfld System.Byte NetSegment::m_trafficDensity
IL_0710: ldc.i4.4
IL_0711: mul
IL_0712: add
IL_0713: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0718: stloc.s 32 (System.Int32)
IL_071A: Label49
IL_071A: ldarg.0
IL_071B: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_0720: brtrue => Label50
IL_0725: ldloc.0
IL_0726: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_072B: ldloc.s 32 (System.Int32)
IL_072D: ldloc.s 32 (System.Int32)
IL_072F: ldc.i4.s 99
IL_0731: add
IL_0732: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_0737: ldc.i4.s 100
IL_0739: div
IL_073A: stloc.s 33 (System.Int32)
IL_073C: ldarg.2
IL_073D: ldarg.2
IL_073E: ldfld System.Byte NetSegment::m_condition
IL_0743: ldloc.s 33 (System.Int32)
IL_0745: sub
IL_0746: ldc.i4.0
IL_0747: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_074C: conv.u1
IL_074D: stfld System.Byte NetSegment::m_condition
IL_0752: ldarg.2
IL_0753: ldfld System.Byte NetSegment::m_condition
IL_0758: ldc.i4 192
IL_075D: bge => Label51
IL_0762: ldarg.2
IL_0763: ldfld Flags NetSegment::m_flags
IL_0768: ldc.i4 6293504
IL_076D: and
IL_076E: brtrue => Label52
IL_0773: ldloc.0
IL_0774: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0779: ldc.i4.s 20
IL_077B: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0780: brtrue => Label53
IL_0785: ldloca.s 34 (TransferManager+TransferOffer)
IL_0787: initobj TransferManager+TransferOffer
IL_078D: ldloca.s 34 (TransferManager+TransferOffer)
IL_078F: ldc.i4 255
IL_0794: ldarg.2
IL_0795: ldfld System.Byte NetSegment::m_condition
IL_079A: sub
IL_079B: ldc.i4.s 50
IL_079D: div
IL_079E: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_07A3: ldloca.s 34 (TransferManager+TransferOffer)
IL_07A5: ldarg.1
IL_07A6: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_07AB: ldloca.s 34 (TransferManager+TransferOffer)
IL_07AD: ldloc.s 13 (UnityEngine.Vector3)
IL_07AF: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_07B4: ldloca.s 34 (TransferManager+TransferOffer)
IL_07B6: ldc.i4.1
IL_07B7: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_07BC: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_07C1: ldc.i4.s 66
IL_07C3: ldloc.s 34 (TransferManager+TransferOffer)
IL_07C5: callvirt System.Void TransferManager::AddIncomingOffer(TransferReason
material, TransferOffer offer)
IL_07CA: Label23
IL_07CA: Label50
IL_07CA: Label51
IL_07CA: Label52
IL_07CA: Label53
IL_07CA: ldarg.0
IL_07CB: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_07D0: brtrue => Label54
IL_07D5: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_07D7: ldc.i4.s 32
IL_07D9: and
IL_07DA: brfalse => Label55
IL_07DF: ldarg.2
IL_07E0: dup
IL_07E1: ldfld Flags NetSegment::m_flags
IL_07E6: ldc.i4 1048576
IL_07EB: or
IL_07EC: stfld Flags NetSegment::m_flags
IL_07F1: br => Label56
IL_07F6: Label55
IL_07F6: ldarg.2
IL_07F7: dup
IL_07F8: ldfld Flags NetSegment::m_flags
IL_07FD: ldc.i4 -1048577
IL_0802: and
IL_0803: stfld Flags NetSegment::m_flags
IL_0808: Label56
IL_0808: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_080A: ldc.i4 128
IL_080F: and
IL_0810: brfalse => Label57
IL_0815: ldarg.2
IL_0816: dup
IL_0817: ldfld Flags NetSegment::m_flags
IL_081C: ldc.i4 8388608
IL_0821: or
IL_0822: stfld Flags NetSegment::m_flags
IL_0827: br => Label58
IL_082C: Label57
IL_082C: ldarg.2
IL_082D: dup
IL_082E: ldfld Flags NetSegment::m_flags
IL_0833: ldc.i4 -8388609
IL_0838: and
IL_0839: stfld Flags NetSegment::m_flags
IL_083E: Label58
IL_083E: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_0840: ldc.i4 512
IL_0845: and
IL_0846: brfalse => Label59
IL_084B: ldarg.2
IL_084C: dup
IL_084D: ldfld Flags NetSegment::m_flags
IL_0852: ldc.i4 16777216
IL_0857: or
IL_0858: stfld Flags NetSegment::m_flags
IL_085D: br => Label60
IL_0862: Label59
IL_0862: ldarg.2
IL_0863: dup
IL_0864: ldfld Flags NetSegment::m_flags
IL_0869: ldc.i4 -16777217
IL_086E: and
IL_086F: stfld Flags NetSegment::m_flags
IL_0874: Label60
IL_0874: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_0876: ldc.i4 65536
IL_087B: and
IL_087C: brfalse => Label61
IL_0881: ldarg.2
IL_0882: dup
IL_0883: ldfld Flags NetSegment::m_flags
IL_0888: ldc.i4 256
IL_088D: or
IL_088E: stfld Flags NetSegment::m_flags
IL_0893: br => Label62
IL_0898: Label61
IL_0898: ldarg.2
IL_0899: dup
IL_089A: ldfld Flags NetSegment::m_flags
IL_089F: ldc.i4 -257
IL_08A4: and
IL_08A5: stfld Flags NetSegment::m_flags
IL_08AA: Label54
IL_08AA: Label62
IL_08AA: ldarg.0
IL_08AB: ldfld System.Int32 RoadBaseAI::m_noiseAccumulation
IL_08B0: ldloc.s 21 (System.Int32)
IL_08B2: mul
IL_08B3: ldc.i4.s 100
IL_08B5: div
IL_08B6: stloc.s 35 (System.Int32)
IL_08B8: ldloc.s 35 (System.Int32)
IL_08BA: brfalse => Label63
IL_08BF: ldloc.s 11 (UnityEngine.Vector3)
IL_08C1: ldloc.s 12 (UnityEngine.Vector3)
IL_08C3: call static System.Single
UnityEngine.Vector3::Distance(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_08C8: stloc.s 36 (System.Single)
IL_08CA: ldloc.s 36 (System.Single)
IL_08CC: ldarg.0
IL_08CD: ldfld System.Single RoadBaseAI::m_noiseRadius
IL_08D2: div
IL_08D3: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single
f)
IL_08D8: stloc.s 37 (System.Int32)
IL_08DA: ldc.i4.0
IL_08DB: stloc.s 38 (System.Int32)
IL_08DD: br => Label64
IL_08E2: Label65
IL_08E2: ldloc.s 11 (UnityEngine.Vector3)
IL_08E4: ldloc.s 12 (UnityEngine.Vector3)
IL_08E6: ldloc.s 38 (System.Int32)
IL_08E8: ldc.i4.1
IL_08E9: add
IL_08EA: conv.r4
IL_08EB: ldloc.s 37 (System.Int32)
IL_08ED: ldc.i4.1
IL_08EE: add
IL_08EF: conv.r4
IL_08F0: div
IL_08F1: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_08F6: stloc.s 39 (UnityEngine.Vector3)
IL_08F8: call static ImmaterialResourceManager
ColossalFramework.Singleton`1<ImmaterialResourceManager>::get_instance()
IL_08FD: ldc.i4.8
IL_08FE: ldloc.s 35 (System.Int32)
IL_0900: ldloc.s 39 (UnityEngine.Vector3)
IL_0902: ldarg.0
IL_0903: ldfld System.Single RoadBaseAI::m_noiseRadius
IL_0908: callvirt System.Int32 ImmaterialResourceManager::AddResource(Resource
resource, System.Int32 rate, UnityEngine.Vector3 position, System.Single radius)
IL_090D: pop
IL_090E: ldloc.s 38 (System.Int32)
IL_0910: ldc.i4.1
IL_0911: add
IL_0912: stloc.s 38 (System.Int32)
IL_0914: Label64
IL_0914: ldloc.s 38 (System.Int32)
IL_0916: ldloc.s 37 (System.Int32)
IL_0918: blt => Label65
IL_091D: Label63
IL_091D: ldarg.2
IL_091E: ldfld System.Byte NetSegment::m_trafficDensity
IL_0923: ldc.i4.s 50
IL_0925: blt => Label66
IL_092A: ldarg.2
IL_092B: ldfld System.Single NetSegment::m_averageLength
IL_0930: ldc.r4 25
IL_0935: bge.un => Label67
IL_093A: ldloc.1
IL_093B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0940: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0945: ldarg.2
IL_0946: ldfld System.UInt16 NetSegment::m_startNode
IL_094B: ldelema NetNode
IL_0950: ldfld Flags NetNode::m_flags
IL_0955: ldc.i4 10485760
IL_095A: and
IL_095B: ldc.i4 8388608
IL_0960: bne.un => Label68
IL_0965: ldloc.1
IL_0966: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_096B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0970: ldarg.2
IL_0971: ldfld System.UInt16 NetSegment::m_endNode
IL_0976: ldelema NetNode
IL_097B: ldfld Flags NetNode::m_flags
IL_0980: ldc.i4 10485760
IL_0985: and
IL_0986: ldc.i4 8388608
IL_098B: bne.un => Label69
IL_0990: call static GuideManager
ColossalFramework.Singleton`1<GuideManager>::get_instance()
IL_0995: ldfld GuideController SimulationManagerBase`2<GuideManager,
GuideController>::m_properties
IL_099A: stloc.s 40 (GuideController)
IL_099C: ldloc.s 40 (GuideController)
IL_099E: brfalse => Label70
IL_09A3: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_09A8: ldfld NetSegmentInstanceGuide NetManager::m_shortRoadTraffic
IL_09AD: ldloc.s 40 (GuideController)
IL_09AF: ldfld GuideInfo GuideController::m_shortRoadTraffic
IL_09B4: ldarg.1
IL_09B5: ldc.i4.0
IL_09B6: callvirt System.Void NetSegmentInstanceGuide::Activate(GuideInfo
guideInfo, System.UInt16 segmentID, System.Boolean ignoreID)
IL_09BB: Label66
IL_09BB: Label67
IL_09BB: Label68
IL_09BB: Label69
IL_09BB: Label70
IL_09BB: ldarg.2
IL_09BC: ldfld Flags NetSegment::m_flags
IL_09C1: ldc.i4.8
IL_09C2: and
IL_09C3: brfalse => Label71
IL_09C8: call static GuideManager
ColossalFramework.Singleton`1<GuideManager>::get_instance()
IL_09CD: ldfld GuideController SimulationManagerBase`2<GuideManager,
GuideController>::m_properties
IL_09D2: stloc.s 41 (GuideController)
IL_09D4: ldloc.s 41 (GuideController)
IL_09D6: brfalse => Label72
IL_09DB: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_09E0: ldfld NetSegmentInstanceGuide NetManager::m_roadDestroyed
IL_09E5: ldloc.s 41 (GuideController)
IL_09E7: ldfld GuideInfo GuideController::m_roadDestroyed
IL_09EC: ldarg.1
IL_09ED: ldc.i4.0
IL_09EE: callvirt System.Void NetSegmentInstanceGuide::Activate(GuideInfo
guideInfo, System.UInt16 segmentID, System.Boolean ignoreID)
IL_09F3: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_09F8: ldfld ServiceTypeGuide NetManager::m_roadDestroyed2
IL_09FD: ldloc.s 41 (GuideController)
IL_09FF: ldfld GuideInfo GuideController::m_roadDestroyed2
IL_0A04: ldarg.0
IL_0A05: ldfld NetInfo NetAI::m_info
IL_0A0A: ldfld ItemClass NetInfo::m_class
IL_0A0F: ldfld Service ItemClass::m_service
IL_0A14: callvirt System.Void ServiceTypeGuide::Activate(GuideInfo guideInfo,
Service service)
IL_0A19: Label72
IL_0A19: ldloc.0
IL_0A1A: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0A1F: ldc.i4.8
IL_0A20: shr.un
IL_0A21: ldc.i4.s 15
IL_0A23: and
IL_0A24: conv.u8
IL_0A25: ldarg.1
IL_0A26: ldc.i4.s 15
IL_0A28: and
IL_0A29: conv.i8
IL_0A2A: bne.un => Label73
IL_0A2F: ldarg.2
IL_0A30: ldfld System.Single NetSegment::m_averageLength
IL_0A35: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_0A3A: stloc.s 42 (System.Int32)
IL_0A3C: call static StatisticsManager
ColossalFramework.Singleton`1<StatisticsManager>::get_instance()
IL_0A41: ldc.i4.s 53
IL_0A43: callvirt StatisticBase StatisticsManager::Acquire(StatisticType type)
IL_0A48: stloc.s 43 (StatisticBase)
IL_0A4A: ldloc.s 43 (StatisticBase)
IL_0A4C: ldloc.s 42 (System.Int32)
IL_0A4E: callvirt abstract virtual System.Void StatisticBase::Add(System.Int32
delta)
IL_0A53: Label71
IL_0A53: Label73
IL_0A53: ldarg.2
IL_0A54: ldloc.2
IL_0A55: stfld Problem NetSegment::m_problems
IL_0A5A: // end original
IL_0A5A: ret
DONE

### Patch: static System.Void


TrainTrackBaseAI::LevelCrossingSimulationStep(System.UInt16 nodeID, NetNode& data)
### Replacement: static System.Void
TrainTrackBaseAI::TrainTrackBaseAI.LevelCrossingSimulationStep_Patch0(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: // start original
IL_0000: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0005: stloc.0
IL_0006: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_000B: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldc.i4.0
IL_0014: stloc.3
IL_0015: ldc.i4.0
IL_0016: stloc.s 4 (System.Int32)
IL_0018: br => Label0
IL_001D: Label12
IL_001D: ldarg.1
IL_001E: ldloc.s 4 (System.Int32)
IL_0020: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0025: stloc.s 5 (System.UInt16)
IL_0027: ldloc.s 5 (System.UInt16)
IL_0029: brfalse => Label1
IL_002E: ldloc.0
IL_002F: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0034: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0039: ldloc.s 5 (System.UInt16)
IL_003B: ldelema NetSegment
IL_0040: call NetInfo NetSegment::get_Info()
IL_0045: stloc.s 6 (NetInfo)
IL_0047: ldloc.s 6 (NetInfo)
IL_0049: ldfld ItemClass NetInfo::m_class
IL_004E: ldfld Service ItemClass::m_service
IL_0053: ldc.i4.s 9
IL_0055: beq => Label2
IL_005A: ldloc.s 6 (NetInfo)
IL_005C: ldfld Lane[] NetInfo::m_lanes
IL_0061: brfalse => Label3
IL_0066: ldloc.0
IL_0067: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_006C: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0071: ldloc.s 5 (System.UInt16)
IL_0073: ldelema NetSegment
IL_0078: ldfld System.UInt16 NetSegment::m_startNode
IL_007D: ldarg.0
IL_007E: ceq
IL_0080: stloc.s 7 (System.Boolean)
IL_0082: ldloc.0
IL_0083: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0088: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_008D: ldloc.s 5 (System.UInt16)
IL_008F: ldelema NetSegment
IL_0094: ldfld System.UInt32 NetSegment::m_lanes
IL_0099: stloc.s 8 (System.UInt32)
IL_009B: ldc.i4.0
IL_009C: stloc.s 9 (System.Int32)
IL_009E: br => Label4
IL_00A3: Label10
IL_00A3: ldloc.s 6 (NetInfo)
IL_00A5: ldfld Lane[] NetInfo::m_lanes
IL_00AA: ldloc.s 9 (System.Int32)
IL_00AC: ldelem.ref
IL_00AD: ldfld LaneType Lane::m_laneType
IL_00B2: ldc.i4.1
IL_00B3: bne.un => Label5
IL_00B8: ldloc.0
IL_00B9: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00BE: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00C3: ldloc.s 8 (System.UInt32)
IL_00C5: conv.u
IL_00C6: ldelema NetLane
IL_00CB: ldloc.s 7 (System.Boolean)
IL_00CD: brfalse => Label6
IL_00D2: ldc.r4 0
IL_00D7: br => Label7
IL_00DC: Label6
IL_00DC: ldc.r4 1
IL_00E1: Label7
IL_00E1: call UnityEngine.Vector3 NetLane::CalculatePosition(System.Single
laneOffset)
IL_00E6: stloc.s 10 (UnityEngine.Vector3)
IL_00E8: ldloc.s 10 (UnityEngine.Vector3)
IL_00EA: call static System.Boolean
TrainTrackBaseAI::CheckOverlap(UnityEngine.Vector3 pos)
IL_00EF: brfalse => Label8
IL_00F4: ldc.i4.1
IL_00F5: stloc.2
IL_00F6: Label5
IL_00F6: Label8
IL_00F6: ldloc.0
IL_00F7: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00FC: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0101: ldloc.s 8 (System.UInt32)
IL_0103: conv.u
IL_0104: ldelema NetLane
IL_0109: ldfld System.UInt32 NetLane::m_nextLane
IL_010E: stloc.s 8 (System.UInt32)
IL_0110: ldloc.s 9 (System.Int32)
IL_0112: ldc.i4.1
IL_0113: add
IL_0114: stloc.s 9 (System.Int32)
IL_0116: Label4
IL_0116: ldloc.s 9 (System.Int32)
IL_0118: ldloc.s 6 (NetInfo)
IL_011A: ldfld Lane[] NetInfo::m_lanes
IL_011F: ldlen
IL_0120: conv.i4
IL_0121: bge => Label9
IL_0126: ldloc.s 8 (System.UInt32)
IL_0128: brtrue => Label10
IL_012D: Label3
IL_012D: Label9
IL_012D: ldarg.0
IL_012E: ldloc.0
IL_012F: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0134: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0139: ldloc.s 5 (System.UInt16)
IL_013B: ldelema NetSegment
IL_0140: ldloc.1
IL_0141: ldc.i4 256
IL_0146: sub
IL_0147: ldloca.s 11 (RoadBaseAI+TrafficLightState)
IL_0149: ldloca.s 12 (RoadBaseAI+TrafficLightState)
IL_014B: ldloca.s 13 (System.Boolean)
IL_014D: ldloca.s 14 (System.Boolean)
IL_014F: 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_0154: ldloc.s 13 (System.Boolean)
IL_0156: brfalse => Label11
IL_015B: ldc.i4.1
IL_015C: stloc.2
IL_015D: Label1
IL_015D: Label2
IL_015D: Label11
IL_015D: ldloc.s 4 (System.Int32)
IL_015F: ldc.i4.1
IL_0160: add
IL_0161: stloc.s 4 (System.Int32)
IL_0163: Label0
IL_0163: ldloc.s 4 (System.Int32)
IL_0165: ldc.i4.8
IL_0166: blt => Label12
IL_016B: ldloc.2
IL_016C: stloc.3
IL_016D: ldc.i4.0
IL_016E: stloc.s 15 (System.Int32)
IL_0170: br => Label13
IL_0175: Label27
IL_0175: ldarg.1
IL_0176: ldloc.s 15 (System.Int32)
IL_0178: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_017D: stloc.s 16 (System.UInt16)
IL_017F: ldloc.s 16 (System.UInt16)
IL_0181: brfalse => Label14
IL_0186: ldloc.0
IL_0187: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_018C: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0191: ldloc.s 16 (System.UInt16)
IL_0193: ldelema NetSegment
IL_0198: call NetInfo NetSegment::get_Info()
IL_019D: stloc.s 17 (NetInfo)
IL_019F: ldarg.0
IL_01A0: ldloc.0
IL_01A1: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01A6: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01AB: ldloc.s 16 (System.UInt16)
IL_01AD: ldelema NetSegment
IL_01B2: ldloc.1
IL_01B3: ldc.i4 256
IL_01B8: sub
IL_01B9: ldloca.s 18 (RoadBaseAI+TrafficLightState)
IL_01BB: ldloca.s 19 (RoadBaseAI+TrafficLightState)
IL_01BD: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_01C2: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01C4: ldc.i4.s -2
IL_01C6: and
IL_01C7: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01C9: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_01CB: ldc.i4.s -2
IL_01CD: and
IL_01CE: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_01D0: ldloc.s 17 (NetInfo)
IL_01D2: ldfld ItemClass NetInfo::m_class
IL_01D7: ldfld Service ItemClass::m_service
IL_01DC: ldc.i4.s 9
IL_01DE: bne.un => Label15
IL_01E3: ldloc.3
IL_01E4: brfalse => Label16
IL_01E9: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01EB: ldc.i4.2
IL_01EC: and
IL_01ED: brtrue => Label17
IL_01F2: ldc.i4.3
IL_01F3: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01F5: Label17
IL_01F5: br => Label18
IL_01FA: Label16
IL_01FA: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01FC: ldc.i4.2
IL_01FD: and
IL_01FE: brfalse => Label19
IL_0203: ldc.i4.1
IL_0204: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0206: Label18
IL_0206: Label19
IL_0206: ldc.i4.0
IL_0207: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0209: br => Label20
IL_020E: Label15
IL_020E: ldloc.3
IL_020F: brfalse => Label21
IL_0214: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0216: ldc.i4.2
IL_0217: and
IL_0218: brfalse => Label22
IL_021D: ldc.i4.1
IL_021E: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0220: Label22
IL_0220: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0222: ldc.i4.2
IL_0223: and
IL_0224: brtrue => Label23
IL_0229: ldc.i4.3
IL_022A: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_022C: Label23
IL_022C: br => Label24
IL_0231: Label21
IL_0231: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0233: ldc.i4.2
IL_0234: and
IL_0235: brtrue => Label25
IL_023A: ldc.i4.3
IL_023B: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_023D: Label25
IL_023D: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_023F: ldc.i4.2
IL_0240: and
IL_0241: brfalse => Label26
IL_0246: ldc.i4.1
IL_0247: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0249: Label20
IL_0249: Label24
IL_0249: Label26
IL_0249: ldarg.0
IL_024A: ldloc.0
IL_024B: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0250: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0255: ldloc.s 16 (System.UInt16)
IL_0257: ldelema NetSegment
IL_025C: ldloc.1
IL_025D: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_025F: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0261: ldc.i4.0
IL_0262: ldc.i4.0
IL_0263: 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_0268: Label14
IL_0268: ldloc.s 15 (System.Int32)
IL_026A: ldc.i4.1
IL_026B: add
IL_026C: stloc.s 15 (System.Int32)
IL_026E: Label13
IL_026E: ldloc.s 15 (System.Int32)
IL_0270: ldc.i4.8
IL_0271: blt => Label27
IL_0276: // end original
IL_0276: ret
DONE

### Patch: virtual System.Void HumanAI::ArriveAtDestination(System.UInt16


instanceID, CitizenInstance& citizenData, System.Boolean success)
### Replacement: static System.Void
HumanAI::HumanAI.ArriveAtDestination_Patch0(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: // start original
IL_0000: ldarg.2
IL_0001: ldfld System.UInt32 CitizenInstance::m_citizen
IL_0006: stloc.0
IL_0007: ldloc.0
IL_0008: brfalse => Label0
IL_000D: call static CitizenManager
ColossalFramework.Singleton`1<CitizenManager>::get_instance()
IL_0012: stloc.1
IL_0013: ldloc.1
IL_0014: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0019: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_001E: ldloc.0
IL_001F: conv.u
IL_0020: ldelema Citizen
IL_0025: ldloc.0
IL_0026: ldc.i4.0
IL_0027: ldc.i4.0
IL_0028: call System.Void Citizen::SetVehicle(System.UInt32 citizenID,
System.UInt16 vehicleID, System.UInt32 unitID)
IL_002D: ldarg.2
IL_002E: ldfld Flags CitizenInstance::m_flags
IL_0033: ldc.i4 134217728
IL_0038: and
IL_0039: brfalse => Label1
IL_003E: ldarg.3
IL_003F: brfalse => Label2
IL_0044: ldarg.2
IL_0045: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_004A: stloc.2
IL_004B: ldloc.2
IL_004C: brfalse => Label3
IL_0051: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0056: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_005B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0060: ldloc.2
IL_0061: ldelema NetNode
IL_0066: ldfld System.UInt16 NetNode::m_transportLine
IL_006B: stloc.3
IL_006C: ldloc.3
IL_006D: brfalse => Label4
IL_0072: call static TransportManager
ColossalFramework.Singleton`1<TransportManager>::get_instance()
IL_0077: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_007C: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_0081: ldloc.3
IL_0082: ldelema TransportLine
IL_0087: call TransportInfo TransportLine::get_Info()
IL_008C: stloc.s 4 (TransportInfo)
IL_008E: ldloc.s 4 (TransportInfo)
IL_0090: ldfld VehicleType TransportInfo::m_vehicleType
IL_0095: brtrue => Label5
IL_009A: ldarg.1
IL_009B: ldc.i4.1
IL_009C: and
IL_009D: brtrue => Label6
IL_00A2: ldloc.2
IL_00A3: call static System.UInt16 TransportLine::GetNextStop(System.UInt16
stop)
IL_00A8: stloc.2
IL_00A9: br => Label7
IL_00AE: Label6
IL_00AE: ldloc.2
IL_00AF: call static System.UInt16 TransportLine::GetPrevStop(System.UInt16
stop)
IL_00B4: stloc.2
IL_00B5: Label7
IL_00B5: ldloc.2
IL_00B6: brfalse => Label8
IL_00BB: ldarg.2
IL_00BC: dup
IL_00BD: ldfld Flags CitizenInstance::m_flags
IL_00C2: ldc.i4 268435456
IL_00C7: or
IL_00C8: stfld Flags CitizenInstance::m_flags
IL_00CD: ldarg.0
IL_00CE: ldarg.1
IL_00CF: ldarg.2
IL_00D0: ldloc.2
IL_00D1: ldc.i4.1
IL_00D2: callvirt virtual System.Void CitizenAI::SetTarget(System.UInt16
instanceID, CitizenInstance& data, System.UInt16 targetIndex, System.Boolean
targetIsNode)
IL_00D7: br => Label16
IL_00DC: Label8
IL_00DC: br => Label9
IL_00E1: Label5
IL_00E1: ldarg.2
IL_00E2: dup
IL_00E3: ldfld Flags CitizenInstance::m_flags
IL_00E8: ldc.i4 268435456
IL_00ED: or
IL_00EE: stfld Flags CitizenInstance::m_flags
IL_00F3: ldarg.0
IL_00F4: ldarg.1
IL_00F5: ldarg.2
IL_00F6: ldloc.2
IL_00F7: call System.Void HumanAI::WaitTouristVehicle(System.UInt16
instanceID, CitizenInstance& citizenData, System.UInt16 stop)
IL_00FC: br => Label17
IL_0101: Label2
IL_0101: Label3
IL_0101: Label4
IL_0101: Label9
IL_0101: br => Label10
IL_0106: Label1
IL_0106: ldarg.3
IL_0107: brfalse => Label11
IL_010C: ldloc.1
IL_010D: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0112: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0117: ldloc.0
IL_0118: conv.u
IL_0119: ldelema Citizen
IL_011E: ldloc.0
IL_011F: ldarg.2
IL_0120: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_0125: call System.Void Citizen::SetLocationByBuilding(System.UInt32
citizenID, System.UInt16 buildingID)
IL_012A: Label11
IL_012A: ldarg.2
IL_012B: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_0130: brfalse => Label12
IL_0135: ldloc.1
IL_0136: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_013B: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0140: ldloc.0
IL_0141: conv.u
IL_0142: ldelema Citizen
IL_0147: call Location Citizen::get_CurrentLocation()
IL_014C: ldc.i4.2
IL_014D: bne.un => Label13
IL_0152: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0157: stloc.s 5 (BuildingManager)
IL_0159: ldloc.s 5 (BuildingManager)
IL_015B: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0160: ldfld Building[] Array16`1<Building>::m_buffer
IL_0165: ldarg.2
IL_0166: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_016B: ldelema Building
IL_0170: call BuildingInfo Building::get_Info()
IL_0175: stloc.s 6 (BuildingInfo)
IL_0177: ldloc.s 6 (BuildingInfo)
IL_0179: ldfld BuildingAI BuildingInfo::m_buildingAI
IL_017E: ldarg.2
IL_017F: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_0184: ldloc.s 5 (BuildingManager)
IL_0186: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_018B: ldfld Building[] Array16`1<Building>::m_buffer
IL_0190: ldarg.2
IL_0191: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_0196: ldelema Building
IL_019B: ldloc.0
IL_019C: callvirt virtual System.Void BuildingAI::VisitorEnter(System.UInt16
buildingID, Building& data, System.UInt32 citizen)
IL_01A1: Label0
IL_01A1: Label10
IL_01A1: Label12
IL_01A1: Label13
IL_01A1: ldarg.2
IL_01A2: ldfld Flags CitizenInstance::m_flags
IL_01A7: ldc.i4.s 64
IL_01A9: and
IL_01AA: brfalse => Label14
IL_01AF: ldarg.3
IL_01B0: brtrue => Label15
IL_01B5: Label14
IL_01B5: ldarg.0
IL_01B6: ldarg.1
IL_01B7: ldarg.2
IL_01B8: ldc.i4.0
IL_01B9: callvirt virtual System.Void CitizenAI::SetSource(System.UInt16
instanceID, CitizenInstance& data, System.UInt16 sourceBuilding)
IL_01BE: ldarg.0
IL_01BF: ldarg.1
IL_01C0: ldarg.2
IL_01C1: ldc.i4.0
IL_01C2: call System.Void CitizenAI::SetTarget(System.UInt16 instanceID,
CitizenInstance& data, System.UInt16 targetBuilding)
IL_01C7: ldarg.2
IL_01C8: ldarg.1
IL_01C9: call System.Void CitizenInstance::Unspawn(System.UInt16 instanceID)
IL_01CE: // end original
IL_01CE: Label15
IL_01CE: Label16
IL_01CE: Label17
IL_01CE: ret
DONE
### Patch: virtual System.Void CommonBuildingAI::SimulationStep(System.UInt16
buildingID, Building& data)
### Replacement: static System.Void
CommonBuildingAI::CommonBuildingAI.SimulationStep_Patch0(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: // start original
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: ldarg.2
IL_0003: call virtual System.Void BuildingAI::SimulationStep(System.UInt16
buildingID, Building& data)
IL_0008: ldarg.2
IL_0009: ldfld Flags Building::m_flags
IL_000E: ldc.i4 524288
IL_0013: and
IL_0014: brfalse => Label0
IL_0019: ldarg.1
IL_001A: ldc.i4.8
IL_001B: shl
IL_001C: ldc.i4 49152
IL_0021: div.un
IL_0022: stloc.0
IL_0023: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0028: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_002D: ldloc.0
IL_002E: sub
IL_002F: stloc.1
IL_0030: ldarg.2
IL_0031: ldfld Flags Building::m_flags
IL_0036: ldc.i4 4194304
IL_003B: and
IL_003C: brfalse => Label1
IL_0041: ldarg.2
IL_0042: ldloc.1
IL_0043: ldc.i4 256
IL_0048: sub
IL_0049: call Frame Building::GetFrameData(System.UInt32 simulationFrame)
IL_004E: stloc.2
IL_004F: ldloca.s 2 (Building+Frame)
IL_0051: ldfld System.Byte Frame::m_constructState
IL_0056: brtrue => Label2
IL_005B: Label1
IL_005B: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0060: ldarg.1
IL_0061: callvirt System.Void BuildingManager::ReleaseBuilding(System.UInt16
building)
IL_0066: // end original
IL_0066: Label0
IL_0066: Label2
IL_0066: ret
DONE

### Patch: System.Void RoadWorldInfoPanel::OnAdjustRoadButton()


### Replacement: static System.Void
RoadWorldInfoPanel::RoadWorldInfoPanel.OnAdjustRoadButton_Patch0(RoadWorldInfoPanel
this)
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: ldc.i4.s 30
IL_0007: ldc.i4.2
IL_0008: callvirt System.Void InfoManager::SetCurrentMode(InfoMode mode,
SubInfoMode subMode)
IL_000D: ldarg.0
IL_000E: call System.Void WorldInfoPanel::Hide()
IL_0013: // end original
IL_0013: ret
DONE

### Patch: System.Void NetSegment::CalculateSegment(System.UInt16 segmentID)


### Replacement: static System.Void
NetSegment::NetSegment.CalculateSegment_Patch0(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<NetManager>::get_instance()
IL_0036: stloc.0
IL_0037: ldloc.0
IL_0038: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0074: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16>
NetManager::m_updateNameVisibility
IL_00CF: ldarg.1
IL_00D0: callvirt System.Boolean
System.Collections.Generic.HashSet`1<System.UInt16>::Add(System.UInt16 item)
IL_00D5: pop
IL_00D6: // end original
IL_00D6: Label0
IL_00D6: ret
DONE

### Patch: System.Void LoadAssetPanel::OnLoad()


### Replacement: static System.Void
LoadAssetPanel::LoadAssetPanel.OnLoad_Patch0(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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<CustomAssetMetaData>::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<CustomAssetMetaData>::GetListingMetaData(System.Int32 index)
IL_0037: stloc.0
IL_0038: ldarg.0
IL_0039: ldloc.0
IL_003A: call System.Void
LoadSavePanelBase`1<CustomAssetMetaData>::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<CustomAssetMetaData>::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<SimulationManager>::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<SimulationManager>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_010B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<VehicleInfo>::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<VehicleInfo>::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<VehicleInfo>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_023B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<BuildingInfo>::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<BuildingInfo>::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<BuildingInfo>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_036B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<BuildingInfo>::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<BuildingInfo>::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<BuildingInfo>::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<BuildingManager>::get_instance()
IL_0482: callvirt virtual System.Void SimulationManagerBase`2<BuildingManager,
BuildingProperties>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_04A5: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<BuildingInfo>::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<CitizenInfo>::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<VehicleInfo>::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<PropInfo>::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<TreeInfo>::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<NetInfo>::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: ret
DONE

### Patch: System.Void InfoManager::SetMode(InfoMode mode, SubInfoMode subMode)


### Replacement: static System.Void
InfoManager::InfoManager.SetMode_Patch0(InfoManager this, InfoMode mode,
SubInfoMode subMode)
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: stfld InfoMode InfoManager::m_currentMode
IL_0007: ldarg.0
IL_0008: ldarg.2
IL_0009: stfld SubInfoMode InfoManager::m_currentSubMode
IL_000E: ldarg.1
IL_000F: ldc.i4.1
IL_0010: sub
IL_0011: 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
IL_00AA: br => Label37
IL_00AF: Label0
IL_00AF: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00B4: ldc.i4.0
IL_00B5: ldc.i4.0
IL_00B6: ldc.i4.m1
IL_00B7: ldc.r4 300
IL_00BC: ldc.i4.0
IL_00BD: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_00C2: br => Label38
IL_00C7: Label1
IL_00C7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00CC: ldc.i4.0
IL_00CD: ldc.i4.0
IL_00CE: ldc.i4.m1
IL_00CF: ldc.r4 300
IL_00D4: ldc.i4.0
IL_00D5: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_00DA: br => Label39
IL_00DF: Label2
IL_00DF: ldarg.2
IL_00E0: brtrue => Label40
IL_00E5: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00EA: ldc.i4.s 15
IL_00EC: ldc.i4.0
IL_00ED: ldc.i4.0
IL_00EE: ldc.r4 500
IL_00F3: ldc.i4.0
IL_00F4: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_00F9: br => Label41
IL_00FE: Label40
IL_00FE: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0103: ldc.i4.0
IL_0104: ldc.i4.0
IL_0105: ldc.i4.m1
IL_0106: ldc.r4 300
IL_010B: ldc.i4.0
IL_010C: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0111: Label41
IL_0111: br => Label42
IL_0116: Label3
IL_0116: ldarg.2
IL_0117: ldc.i4.1
IL_0118: bne.un => Label43
IL_011D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0122: ldc.i4.s 14
IL_0124: ldc.i4.0
IL_0125: ldc.i4.1
IL_0126: ldc.r4 500
IL_012B: ldc.i4.0
IL_012C: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0131: br => Label44
IL_0136: Label43
IL_0136: ldarg.2
IL_0137: ldc.i4.3
IL_0138: bne.un => Label45
IL_013D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0142: ldc.i4.s 14
IL_0144: ldc.i4.0
IL_0145: ldc.i4.4
IL_0146: ldc.r4 500
IL_014B: ldc.i4.0
IL_014C: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0151: br => Label46
IL_0156: Label45
IL_0156: ldarg.2
IL_0157: ldc.i4.2
IL_0158: bne.un => Label47
IL_015D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0162: ldc.i4.s 14
IL_0164: ldc.i4.0
IL_0165: ldc.i4.3
IL_0166: ldc.r4 500
IL_016B: ldc.i4.0
IL_016C: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0171: br => Label48
IL_0176: Label47
IL_0176: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_017B: ldc.i4.s 14
IL_017D: ldc.i4.0
IL_017E: ldc.i4.0
IL_017F: ldc.r4 500
IL_0184: ldc.i4.0
IL_0185: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_018A: Label44
IL_018A: Label46
IL_018A: Label48
IL_018A: br => Label49
IL_018F: Label12
IL_018F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0194: ldc.i4.0
IL_0195: ldc.i4.0
IL_0196: ldc.i4.m1
IL_0197: ldc.r4 300
IL_019C: ldc.i4.0
IL_019D: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01A2: br => Label50
IL_01A7: Label4
IL_01A7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01AC: ldc.i4.0
IL_01AD: ldc.i4.0
IL_01AE: ldc.i4.m1
IL_01AF: ldc.r4 300
IL_01B4: ldc.i4.0
IL_01B5: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01BA: br => Label51
IL_01BF: Label5
IL_01BF: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01C4: ldc.i4.0
IL_01C5: ldc.i4.0
IL_01C6: ldc.i4.m1
IL_01C7: ldc.r4 300
IL_01CC: ldc.i4.0
IL_01CD: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01D2: br => Label52
IL_01D7: Label8
IL_01D7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01DC: ldc.i4.0
IL_01DD: ldc.i4.0
IL_01DE: ldc.i4.m1
IL_01DF: ldc.r4 300
IL_01E4: ldc.i4.0
IL_01E5: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01EA: br => Label53
IL_01EF: Label6
IL_01EF: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01F4: ldc.i4.0
IL_01F5: ldc.i4.0
IL_01F6: ldc.i4.m1
IL_01F7: ldc.r4 300
IL_01FC: ldc.i4.0
IL_01FD: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0202: br => Label54
IL_0207: Label7
IL_0207: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_020C: ldc.i4.0
IL_020D: ldc.i4.0
IL_020E: ldc.i4.m1
IL_020F: ldc.r4 300
IL_0214: ldc.i4.0
IL_0215: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_021A: br => Label55
IL_021F: Label9
IL_021F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0224: ldc.i4.0
IL_0225: ldc.i4.0
IL_0226: ldc.i4.m1
IL_0227: ldc.r4 300
IL_022C: ldc.i4.0
IL_022D: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0232: br => Label56
IL_0237: Label10
IL_0237: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_023C: ldc.i4.0
IL_023D: ldc.i4.0
IL_023E: ldc.i4.m1
IL_023F: ldc.r4 300
IL_0244: ldc.i4.0
IL_0245: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_024A: br => Label57
IL_024F: Label11
IL_024F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0254: ldc.i4.0
IL_0255: ldc.i4.0
IL_0256: ldc.i4.m1
IL_0257: ldc.r4 300
IL_025C: ldc.i4.0
IL_025D: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0262: br => Label58
IL_0267: Label14
IL_0267: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_026C: ldc.i4.0
IL_026D: ldc.i4.0
IL_026E: ldc.i4.m1
IL_026F: ldc.r4 300
IL_0274: ldc.i4.0
IL_0275: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_027A: br => Label59
IL_027F: Label17
IL_027F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0284: ldc.i4.s 18
IL_0286: ldc.i4.0
IL_0287: ldc.i4.0
IL_0288: ldc.r4 500
IL_028D: ldc.i4.0
IL_028E: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0293: br => Label60
IL_0298: Label19
IL_0298: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_029D: ldc.i4.0
IL_029E: ldc.i4.0
IL_029F: ldc.i4.m1
IL_02A0: ldc.r4 300
IL_02A5: ldc.i4.1
IL_02A6: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02AB: br => Label61
IL_02B0: Label18
IL_02B0: ldarg.2
IL_02B1: ldc.i4.1
IL_02B2: bne.un => Label62
IL_02B7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02BC: ldc.i4.s 16
IL_02BE: ldc.i4.0
IL_02BF: ldc.i4.1
IL_02C0: ldc.r4 500
IL_02C5: ldc.i4.1
IL_02C6: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02CB: br => Label63
IL_02D0: Label62
IL_02D0: ldarg.2
IL_02D1: ldc.i4.2
IL_02D2: bne.un => Label64
IL_02D7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02DC: ldc.i4.s 16
IL_02DE: ldc.i4.0
IL_02DF: ldc.i4.2
IL_02E0: ldc.r4 500
IL_02E5: ldc.i4.1
IL_02E6: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02EB: br => Label65
IL_02F0: Label64
IL_02F0: ldarg.2
IL_02F1: brtrue => Label66
IL_02F6: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02FB: ldc.i4.s 16
IL_02FD: ldc.i4.0
IL_02FE: ldc.i4.0
IL_02FF: ldc.r4 500
IL_0304: ldc.i4.1
IL_0305: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_030A: br => Label67
IL_030F: Label66
IL_030F: ldarg.2
IL_0310: ldc.i4.4
IL_0311: bne.un => Label68
IL_0316: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_031B: ldc.i4.s 16
IL_031D: ldc.i4.0
IL_031E: ldc.i4.3
IL_031F: ldc.r4 500
IL_0324: ldc.i4.1
IL_0325: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_032A: br => Label69
IL_032F: Label68
IL_032F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0334: ldc.i4.s 16
IL_0336: ldc.i4.0
IL_0337: ldc.i4.2
IL_0338: ldc.r4 500
IL_033D: ldc.i4.1
IL_033E: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0343: Label63
IL_0343: Label65
IL_0343: Label67
IL_0343: Label69
IL_0343: br => Label70
IL_0348: Label16
IL_0348: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_034D: ldc.i4.0
IL_034E: ldc.i4.0
IL_034F: ldc.i4.m1
IL_0350: ldc.r4 300
IL_0355: ldc.i4.0
IL_0356: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_035B: br => Label71
IL_0360: Label13
IL_0360: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0365: ldc.i4.0
IL_0366: ldc.i4.0
IL_0367: ldc.i4.m1
IL_0368: ldc.r4 300
IL_036D: ldc.i4.0
IL_036E: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0373: br => Label72
IL_0378: Label15
IL_0378: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_037D: ldc.i4.s 13
IL_037F: ldc.i4.0
IL_0380: ldc.i4.m1
IL_0381: ldc.r4 2000
IL_0386: ldc.i4.0
IL_0387: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_038C: br => Label73
IL_0391: Label20
IL_0391: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0396: ldc.i4.0
IL_0397: ldc.i4.0
IL_0398: ldc.i4.m1
IL_0399: ldc.r4 300
IL_039E: ldc.i4.0
IL_039F: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03A4: br => Label74
IL_03A9: Label21
IL_03A9: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03AE: ldc.i4.0
IL_03AF: ldc.i4.0
IL_03B0: ldc.i4.m1
IL_03B1: ldc.r4 300
IL_03B6: ldc.i4.0
IL_03B7: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03BC: br => Label75
IL_03C1: Label22
IL_03C1: ldarg.2
IL_03C2: brtrue => Label76
IL_03C7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03CC: ldc.i4.s 9
IL_03CE: ldc.i4.0
IL_03CF: ldc.i4.1
IL_03D0: ldc.r4 2000
IL_03D5: ldc.i4.0
IL_03D6: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03DB: br => Label77
IL_03E0: Label76
IL_03E0: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03E5: ldc.i4.0
IL_03E6: ldc.i4.0
IL_03E7: ldc.i4.m1
IL_03E8: ldc.r4 300
IL_03ED: ldc.i4.0
IL_03EE: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03F3: Label77
IL_03F3: br => Label78
IL_03F8: Label23
IL_03F8: ldarg.2
IL_03F9: brtrue => Label79
IL_03FE: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0403: ldc.i4.s 9
IL_0405: ldc.i4.0
IL_0406: ldc.i4.3
IL_0407: ldc.r4 2000
IL_040C: ldc.i4.0
IL_040D: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0412: br => Label80
IL_0417: Label79
IL_0417: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_041C: ldc.i4.0
IL_041D: ldc.i4.0
IL_041E: ldc.i4.m1
IL_041F: ldc.r4 300
IL_0424: ldc.i4.0
IL_0425: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_042A: Label80
IL_042A: br => Label81
IL_042F: Label24
IL_042F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0434: ldc.i4.s 20
IL_0436: ldc.i4.0
IL_0437: ldc.i4.3
IL_0438: ldc.r4 500
IL_043D: ldc.i4.1
IL_043E: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0443: br => Label82
IL_0448: Label25
IL_0448: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_044D: ldc.i4.0
IL_044E: ldc.i4.0
IL_044F: ldc.i4.m1
IL_0450: ldc.r4 300
IL_0455: ldc.i4.0
IL_0456: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_045B: br => Label83
IL_0460: Label26
IL_0460: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0465: ldc.i4.s 20
IL_0467: ldc.i4.0
IL_0468: ldc.i4.1
IL_0469: ldc.r4 2000
IL_046E: ldc.i4.0
IL_046F: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0474: br => Label84
IL_0479: Label27
IL_0479: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_047E: ldc.i4.0
IL_047F: ldc.i4.0
IL_0480: ldc.i4.m1
IL_0481: ldc.r4 300
IL_0486: ldc.i4.0
IL_0487: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_048C: br => Label85
IL_0491: Label28
IL_0491: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0496: ldc.i4.0
IL_0497: ldc.i4.0
IL_0498: ldc.i4.m1
IL_0499: ldc.r4 300
IL_049E: ldc.i4.0
IL_049F: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04A4: br => Label86
IL_04A9: Label29
IL_04A9: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04AE: ldc.i4.0
IL_04AF: ldc.i4.0
IL_04B0: ldc.i4.m1
IL_04B1: ldc.r4 300
IL_04B6: ldc.i4.0
IL_04B7: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04BC: br => Label87
IL_04C1: Label30
IL_04C1: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04C6: ldc.i4.0
IL_04C7: ldc.i4.0
IL_04C8: ldc.i4.m1
IL_04C9: ldc.r4 300
IL_04CE: ldc.i4.0
IL_04CF: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04D4: br => Label88
IL_04D9: Label31
IL_04D9: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04DE: ldc.i4.0
IL_04DF: ldc.i4.0
IL_04E0: ldc.i4.m1
IL_04E1: ldc.r4 300
IL_04E6: ldc.i4.0
IL_04E7: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04EC: br => Label89
IL_04F1: Label32
IL_04F1: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04F6: ldc.i4.s 12
IL_04F8: ldc.i4.s 17
IL_04FA: ldc.i4.1
IL_04FB: ldc.r4 2000
IL_0500: ldc.i4.0
IL_0501: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0506: br => Label90
IL_050B: Label33
IL_050B: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0510: ldc.i4.0
IL_0511: ldc.i4.0
IL_0512: ldc.i4.m1
IL_0513: ldc.r4 300
IL_0518: ldc.i4.0
IL_0519: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_051E: br => Label91
IL_0523: Label34
IL_0523: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0528: ldc.i4.s 19
IL_052A: ldc.i4.s 28
IL_052C: ldc.i4.1
IL_052D: ldc.r4 500
IL_0532: ldc.i4.0
IL_0533: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0538: br => Label92
IL_053D: Label35
IL_053D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0542: ldc.i4.0
IL_0543: ldc.i4.0
IL_0544: ldc.i4.m1
IL_0545: ldc.r4 300
IL_054A: ldc.i4.0
IL_054B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0550: br => Label93
IL_0555: Label36
IL_0555: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_055A: ldc.i4.0
IL_055B: ldc.i4.0
IL_055C: ldc.i4.m1
IL_055D: ldc.r4 300
IL_0562: ldc.i4.0
IL_0563: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0568: br => Label94
IL_056D: Label37
IL_056D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0572: ldc.i4.0
IL_0573: ldc.i4.0
IL_0574: ldc.i4.m1
IL_0575: ldc.r4 300
IL_057A: ldc.i4.0
IL_057B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0580: br => Label95
IL_0585: // end original
IL_0585: Label38
IL_0585: Label39
IL_0585: Label42
IL_0585: Label49
IL_0585: Label50
IL_0585: Label51
IL_0585: Label52
IL_0585: Label53
IL_0585: Label54
IL_0585: Label55
IL_0585: Label56
IL_0585: Label57
IL_0585: Label58
IL_0585: Label59
IL_0585: Label60
IL_0585: Label61
IL_0585: Label70
IL_0585: Label71
IL_0585: Label72
IL_0585: Label73
IL_0585: Label74
IL_0585: Label75
IL_0585: Label78
IL_0585: Label81
IL_0585: Label82
IL_0585: Label83
IL_0585: Label84
IL_0585: Label85
IL_0585: Label86
IL_0585: Label87
IL_0585: Label88
IL_0585: Label89
IL_0585: Label90
IL_0585: Label91
IL_0585: Label92
IL_0585: Label93
IL_0585: Label94
IL_0585: Label95
IL_0585: ret
DONE

### Patch: virtual System.Void DefaultTool::OnToolGUI(UnityEngine.Event e)


### Replacement: static System.Void
DefaultTool::DefaultTool.OnToolGUI_Patch0(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<SimulationManager>::get_instance()
IL_0046: ldarg.0
IL_0047: ldftn System.Void DefaultTool::<OnToolGUI>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<InstanceManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<BuildingManager>::get_instance()
IL_017E: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0183: ldfld Building[] Array16`1<Building>::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<SimulationManager>::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<SimulationManager>::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::<OnToolGUI>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<SimulationManager>::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::<OnToolGUI>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<LogChannel>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<BuildingManager>::get_instance()
IL_04D2: stloc.s 13 (BuildingManager)
IL_04D4: ldloc.s 13 (BuildingManager)
IL_04D6: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_04DB: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_04FA: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0555: ldfld Building[] Array16`1<Building>::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<VehicleManager>::get_instance()
IL_0590: stloc.s 16 (VehicleManager)
IL_0592: ldloc.s 16 (VehicleManager)
IL_0594: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0599: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_05B8: ldfld Vehicle[] Array16`1<Vehicle>::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})"
IL_05DD: ldc.i4.2
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: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_0601: stloc.s 12 (System.String)
IL_0603: ldloc.s 17 (VehicleInfo)
IL_0605: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_060A: ldloc.s 8 (System.UInt16)
IL_060C: ldloc.s 16 (VehicleManager)
IL_060E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0613: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0618: ldloc.s 8 (System.UInt16)
IL_061A: ldelema Vehicle
IL_061F: callvirt virtual System.String VehicleAI::GetDebugString(System.UInt16
vehicleID, Vehicle& data)
IL_0624: stloc.s 18 (System.String)
IL_0626: ldloc.s 18 (System.String)
IL_0628: brfalse => Label68
IL_062D: ldloc.s 12 (System.String)
IL_062F: ldstr "\n"
IL_0634: ldloc.s 18 (System.String)
IL_0636: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_063B: stloc.s 12 (System.String)
IL_063D: Label66
IL_063D: Label67
IL_063D: Label68
IL_063D: br => Label69
IL_0642: Label65
IL_0642: ldloc.s 9 (System.UInt16)
IL_0644: brfalse => Label70
IL_0649: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_064E: stloc.s 19 (VehicleManager)
IL_0650: ldloc.s 19 (VehicleManager)
IL_0652: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_0657: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_065C: ldloc.s 9 (System.UInt16)
IL_065E: ldelema VehicleParked
IL_0663: ldfld System.UInt16 VehicleParked::m_flags
IL_0668: ldc.i4.1
IL_0669: and
IL_066A: brfalse => Label71
IL_066F: ldloc.s 19 (VehicleManager)
IL_0671: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_0676: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_067B: ldloc.s 9 (System.UInt16)
IL_067D: ldelema VehicleParked
IL_0682: call VehicleInfo VehicleParked::get_Info()
IL_0687: stloc.s 20 (VehicleInfo)
IL_0689: ldloc.s 20 (VehicleInfo)
IL_068B: ldnull
IL_068C: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0691: brfalse => Label72
IL_0696: ldstr "{0} ({1})"
IL_069B: ldc.i4.2
IL_069C: newarr System.Object
IL_06A1: dup
IL_06A2: ldc.i4.0
IL_06A3: ldloc.s 20 (VehicleInfo)
IL_06A5: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_06AA: callvirt System.String UnityEngine.Object::get_name()
IL_06AF: stelem.ref
IL_06B0: dup
IL_06B1: ldc.i4.1
IL_06B2: ldloc.s 9 (System.UInt16)
IL_06B4: box System.UInt16
IL_06B9: stelem.ref
IL_06BA: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_06BF: stloc.s 12 (System.String)
IL_06C1: ldloc.s 20 (VehicleInfo)
IL_06C3: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_06C8: ldloc.s 9 (System.UInt16)
IL_06CA: ldloc.s 19 (VehicleManager)
IL_06CC: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_06D1: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_06D6: ldloc.s 9 (System.UInt16)
IL_06D8: ldelema VehicleParked
IL_06DD: callvirt virtual System.String VehicleAI::GetDebugString(System.UInt16
parkedVehicleID, VehicleParked& data)
IL_06E2: stloc.s 21 (System.String)
IL_06E4: ldloc.s 21 (System.String)
IL_06E6: brfalse => Label73
IL_06EB: ldloc.s 12 (System.String)
IL_06ED: ldstr "\n"
IL_06F2: ldloc.s 21 (System.String)
IL_06F4: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_06F9: stloc.s 12 (System.String)
IL_06FB: Label71
IL_06FB: Label72
IL_06FB: Label73
IL_06FB: br => Label74
IL_0700: Label70
IL_0700: ldloc.s 10 (System.UInt16)
IL_0702: brfalse => Label75
IL_0707: call static CitizenManager
ColossalFramework.Singleton`1<CitizenManager>::get_instance()
IL_070C: stloc.s 22 (CitizenManager)
IL_070E: ldloc.s 22 (CitizenManager)
IL_0710: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0715: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_071A: ldloc.s 10 (System.UInt16)
IL_071C: ldelema CitizenInstance
IL_0721: ldfld Flags CitizenInstance::m_flags
IL_0726: ldc.i4.1
IL_0727: and
IL_0728: brfalse => Label76
IL_072D: ldloc.s 22 (CitizenManager)
IL_072F: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0734: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0739: ldloc.s 10 (System.UInt16)
IL_073B: ldelema CitizenInstance
IL_0740: call CitizenInfo CitizenInstance::get_Info()
IL_0745: stloc.s 23 (CitizenInfo)
IL_0747: ldloc.s 23 (CitizenInfo)
IL_0749: ldnull
IL_074A: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_074F: brfalse => Label77
IL_0754: ldstr "{0} ({1})"
IL_0759: ldc.i4.2
IL_075A: newarr System.Object
IL_075F: dup
IL_0760: ldc.i4.0
IL_0761: ldloc.s 23 (CitizenInfo)
IL_0763: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_0768: callvirt System.String UnityEngine.Object::get_name()
IL_076D: stelem.ref
IL_076E: dup
IL_076F: ldc.i4.1
IL_0770: ldloc.s 10 (System.UInt16)
IL_0772: box System.UInt16
IL_0777: stelem.ref
IL_0778: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_077D: stloc.s 12 (System.String)
IL_077F: ldloc.s 23 (CitizenInfo)
IL_0781: ldfld CitizenAI CitizenInfo::m_citizenAI
IL_0786: ldloc.s 10 (System.UInt16)
IL_0788: ldloc.s 22 (CitizenManager)
IL_078A: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_078F: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0794: ldloc.s 10 (System.UInt16)
IL_0796: ldelema CitizenInstance
IL_079B: callvirt virtual System.String CitizenAI::GetDebugString(System.UInt16
instanceID, CitizenInstance& data)
IL_07A0: stloc.s 24 (System.String)
IL_07A2: ldloc.s 24 (System.String)
IL_07A4: brfalse => Label78
IL_07A9: ldloc.s 12 (System.String)
IL_07AB: ldstr "\n"
IL_07B0: ldloc.s 24 (System.String)
IL_07B2: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_07B7: stloc.s 12 (System.String)
IL_07B9: Label76
IL_07B9: Label77
IL_07B9: Label78
IL_07B9: br => Label79
IL_07BE: Label75
IL_07BE: ldloc.s 11 (System.UInt16)
IL_07C0: brfalse => Label80
IL_07C5: call static TransportManager
ColossalFramework.Singleton`1<TransportManager>::get_instance()
IL_07CA: stloc.s 25 (TransportManager)
IL_07CC: ldloc.s 25 (TransportManager)
IL_07CE: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_07D3: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_07D8: ldloc.s 11 (System.UInt16)
IL_07DA: ldelema TransportLine
IL_07DF: ldfld Flags TransportLine::m_flags
IL_07E4: ldc.i4.1
IL_07E5: and
IL_07E6: brfalse => Label81
IL_07EB: ldloc.s 25 (TransportManager)
IL_07ED: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_07F2: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_07F7: ldloc.s 11 (System.UInt16)
IL_07F9: ldelema TransportLine
IL_07FE: call TransportInfo TransportLine::get_Info()
IL_0803: stloc.s 26 (TransportInfo)
IL_0805: ldloc.s 26 (TransportInfo)
IL_0807: ldnull
IL_0808: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_080D: brfalse => Label82
IL_0812: ldstr "{0} ({1})"
IL_0817: ldc.i4.2
IL_0818: newarr System.Object
IL_081D: dup
IL_081E: ldc.i4.0
IL_081F: ldloc.s 26 (TransportInfo)
IL_0821: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_0826: callvirt System.String UnityEngine.Object::get_name()
IL_082B: stelem.ref
IL_082C: dup
IL_082D: ldc.i4.1
IL_082E: ldloc.s 11 (System.UInt16)
IL_0830: box System.UInt16
IL_0835: stelem.ref
IL_0836: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_083B: stloc.s 12 (System.String)
IL_083D: ldloc.s 25 (TransportManager)
IL_083F: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_0844: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_0849: ldloc.s 11 (System.UInt16)
IL_084B: ldelema TransportLine
IL_0850: ldloc.s 11 (System.UInt16)
IL_0852: call System.String TransportLine::GetDebugString(System.UInt16
lineID)
IL_0857: stloc.s 27 (System.String)
IL_0859: ldloc.s 27 (System.String)
IL_085B: brfalse => Label83
IL_0860: ldloc.s 12 (System.String)
IL_0862: ldstr "\n"
IL_0867: ldloc.s 27 (System.String)
IL_0869: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_086E: stloc.s 12 (System.String)
IL_0870: Label64
IL_0870: Label69
IL_0870: Label74
IL_0870: Label79
IL_0870: Label80
IL_0870: Label81
IL_0870: Label82
IL_0870: Label83
IL_0870: ldloc.s 12 (System.String)
IL_0872: brfalse => Label84
IL_0877: ldloc.s 6 (InstanceID)
IL_0879: ldloca.s 28 (UnityEngine.Vector3)
IL_087B: ldloca.s 29 (UnityEngine.Quaternion)
IL_087D: ldloca.s 30 (UnityEngine.Vector3)
IL_087F: call static System.Boolean InstanceManager::GetPosition(InstanceID
id, UnityEngine.Vector3& position, UnityEngine.Quaternion& rotation,
UnityEngine.Vector3& size)
IL_0884: brtrue => Label85
IL_0889: ldarg.0
IL_088A: ldfld UnityEngine.Vector3 DefaultTool::m_mousePosition
IL_088F: stloc.s 28 (UnityEngine.Vector3)
IL_0891: Label85
IL_0891: call static UnityEngine.Camera UnityEngine.Camera::get_main()
IL_0896: ldloc.s 28 (UnityEngine.Vector3)
IL_0898: callvirt UnityEngine.Vector3
UnityEngine.Camera::WorldToScreenPoint(UnityEngine.Vector3 position)
IL_089D: stloc.s 31 (UnityEngine.Vector3)
IL_089F: ldloca.s 31 (UnityEngine.Vector3)
IL_08A1: call static System.Int32 UnityEngine.Screen::get_height()
IL_08A6: conv.r4
IL_08A7: ldloca.s 31 (UnityEngine.Vector3)
IL_08A9: ldfld System.Single UnityEngine.Vector3::y
IL_08AE: sub
IL_08AF: stfld System.Single UnityEngine.Vector3::y
IL_08B4: call static UnityEngine.Color UnityEngine.GUI::get_color()
IL_08B9: stloc.s 32 (UnityEngine.Color)
IL_08BB: call static UnityEngine.Color UnityEngine.Color::get_cyan()
IL_08C0: call static System.Void UnityEngine.GUI::set_color(UnityEngine.Color
value)
IL_08C5: ldloca.s 31 (UnityEngine.Vector3)
IL_08C7: ldfld System.Single UnityEngine.Vector3::x
IL_08CC: ldloca.s 31 (UnityEngine.Vector3)
IL_08CE: ldfld System.Single UnityEngine.Vector3::y
IL_08D3: ldc.r4 500
IL_08D8: ldc.r4 500
IL_08DD: newobj System.Void UnityEngine.Rect::.ctor(System.Single x,
System.Single y, System.Single width, System.Single height)
IL_08E2: ldloc.s 12 (System.String)
IL_08E4: call static UnityEngine.Color UnityEngine.Color::get_black()
IL_08E9: call static UnityEngine.Color UnityEngine.Color::get_cyan()
IL_08EE: call static UnityEngine.GUISkin UnityEngine.GUI::get_skin()
IL_08F3: callvirt UnityEngine.GUIStyle UnityEngine.GUISkin::get_label()
IL_08F8: ldc.r4 2
IL_08FD: 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_0902: ldloc.s 32 (UnityEngine.Color)
IL_0904: call static System.Void UnityEngine.GUI::set_color(UnityEngine.Color
value)
IL_0909: // end original
IL_0909: Label57
IL_0909: Label58
IL_0909: Label59
IL_0909: Label84
IL_0909: ret
DONE

### Patch: virtual System.Void DefaultTool::RenderOverlay(CameraInfo cameraInfo)


### Replacement: static System.Void
DefaultTool::DefaultTool.RenderOverlay_Patch0(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<PropManager>::get_instance()
IL_0079: ldfld Array16`1<PropInstance> PropManager::m_props
IL_007E: ldfld PropInstance[] Array16`1<PropInstance>::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<TreeManager>::get_instance()
IL_012C: ldfld Array32`1<TreeInstance> TreeManager::m_trees
IL_0131: ldfld TreeInstance[] Array32`1<TreeInstance>::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<BuildingManager>::get_instance()
IL_01E6: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01EB: ldfld Building[] Array16`1<Building>::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<DisasterManager>::get_instance()
IL_03A3: ldfld FastList`1<DisasterData> DisasterManager::m_disasters
IL_03A8: ldfld DisasterData[] FastList`1<DisasterData>::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<NetManager>::get_instance()
IL_04A6: stloc.s 24 (NetManager)
IL_04A8: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_04AD: stloc.s 25 (BuildingManager)
IL_04AF: ldloc.s 25 (BuildingManager)
IL_04B1: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_04B6: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_04F6: ldfld Building[] Array16`1<Building>::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<NetNode> NetManager::m_nodes
IL_0520: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_0543: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0562: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0582: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_05AA: ldfld NetNode[] Array16`1<NetNode>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_05F6: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0618: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0637: ldfld Building[] Array16`1<Building>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_0693: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06AD: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06C7: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06F2: ldfld Building[] Array16`1<Building>::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<NetNode> NetManager::m_nodes
IL_071C: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_073F: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_075E: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_077F: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_07A9: ldfld NetNode[] Array16`1<NetNode>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_07F5: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0817: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0831: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_084B: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0865: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0890: ldfld Building[] Array16`1<Building>::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<LogChannel>::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<NetManager>::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<RenderManager>::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<NetSegment> NetManager::m_segments
IL_09A8: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_09CC: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_09D1: ldloc.s 45 (NetManager)
IL_09D3: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_09D8: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_0A01: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A06: ldloc.s 45 (NetManager)
IL_0A08: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0A0D: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0A73: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0A92: ldfld NetSegment[] Array16`1<NetSegment>::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<ToolManager>::get_instance()
IL_0C1C: ldflda DrawCallData SimulationManagerBase`2<ToolManager,
ToolController>::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<RenderManager>::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<NetSegment> NetManager::m_segments
IL_0C75: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0C96: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0CF4: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0D18: ldfld NetSegment[] Array16`1<NetSegment>::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<TreeManager>::get_instance()
IL_0D40: stloc.s 67 (TreeManager)
IL_0D42: ldloc.s 67 (TreeManager)
IL_0D44: ldfld Array32`1<TreeInstance> TreeManager::m_trees
IL_0D49: ldfld TreeInstance[] Array32`1<TreeInstance>::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<TreeInstance> TreeManager::m_trees
IL_0D64: ldfld TreeInstance[] Array32`1<TreeInstance>::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<PropManager>::get_instance()
IL_0E07: stloc.s 75 (PropManager)
IL_0E09: ldloc.s 75 (PropManager)
IL_0E0B: ldfld Array16`1<PropInstance> PropManager::m_props
IL_0E10: ldfld PropInstance[] Array16`1<PropInstance>::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<PropInstance> PropManager::m_props
IL_0E2A: ldfld PropInstance[] Array16`1<PropInstance>::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<PropInstance> PropManager::m_props
IL_0E44: ldfld PropInstance[] Array16`1<PropInstance>::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<VehicleManager>::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<Vehicle> VehicleManager::m_vehicles
IL_0F0E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0F38: ldfld Vehicle[] Array16`1<Vehicle>::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<VehicleManager>::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<VehicleParked> VehicleManager::m_parkedVehicles
IL_0F87: ldfld VehicleParked[] Array16`1<VehicleParked>::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<VehicleParked> VehicleManager::m_parkedVehicles
IL_0FB1: ldfld VehicleParked[] Array16`1<VehicleParked>::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<CitizenManager>::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<CitizenInstance> CitizenManager::m_instances
IL_1000: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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<CitizenInstance> CitizenManager::m_instances
IL_102A: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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<InfoManager>::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<DistrictManager>::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<InfoManager>::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<DistrictManager>::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<DisasterManager>::get_instance()
IL_1129: stloc.s 104 (DisasterManager)
IL_112B: ldloc.s 104 (DisasterManager)
IL_112D: ldfld FastList`1<DisasterData> DisasterManager::m_disasters
IL_1132: ldfld DisasterData[] FastList`1<DisasterData>::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<DisasterData> DisasterManager::m_disasters
IL_114C: ldfld DisasterData[] FastList`1<DisasterData>::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<DisasterData> DisasterManager::m_disasters
IL_1166: ldfld DisasterData[] FastList`1<DisasterData>::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: ret
DONE

### Patch: System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen)


### Replacement: static System.Void
CitizenManager::CitizenManager.ReleaseCitizen_Patch0(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<Citizen> CitizenManager::m_citizens
IL_0008: ldfld Citizen[] Array32`1<Citizen>::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: ret
DONE

### Patch: System.Void CitizenManager::ReleaseCitizenInstance(System.UInt16


instance)
### Replacement: static System.Void
CitizenManager::CitizenManager.ReleaseCitizenInstance_Patch0(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<CitizenInstance> CitizenManager::m_instances
IL_0008: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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: ret
DONE

### 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<NetManager>::get_instance()
IL_0010: stloc.0
IL_0011: ldloc.0
IL_0012: ldfld FastList`1<System.UInt16> NetManager::m_tempNodeBuffer
IL_0017: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_001C: ldloc.0
IL_001D: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_0022: callvirt System.Void FastList`1<System.UInt16>::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<System.UInt16> 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<System.UInt16> 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<System.UInt16> 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<System.UInt16>::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<NodePosition> 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<NodePosition> 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<System.UInt16> NetManager::m_tempNodeBuffer
IL_022C: ldloc.s 9 (System.UInt16)
IL_022E: callvirt System.Void FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_0268: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_02AC: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16> 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<System.UInt16> 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<NodePosition> 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<NodePosition> 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<System.UInt16> NetManager::m_tempNodeBuffer
IL_056B: ldloc.s 20 (System.UInt16)
IL_056D: callvirt System.Void FastList`1<System.UInt16>::Add(System.UInt16 item)
IL_0572: ldloc.0
IL_0573: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_0578: ldloc.s 21 (System.UInt16)
IL_057A: callvirt System.Void FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_05B6: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_05FC: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_0646: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_067B: ldfld NetSegment[] Array16`1<NetSegment>::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<System.UInt16> NetManager::m_tempNodeBuffer
IL_06D4: ldfld System.UInt16[] FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_06E4: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_071D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_073E: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_075D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0788: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16> NetManager::m_tempNodeBuffer
IL_07C2: ldfld System.Int32 FastList`1<System.UInt16>::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<System.UInt16> NetManager::m_tempSegmentBuffer
IL_07DA: ldfld System.UInt16[] FastList`1<System.UInt16>::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<NetSegment> NetManager::m_segments
IL_07EA: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_080F: ldfld NetSegment[] Array16`1<NetSegment>::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<ToolManager>::get_instance()
IL_083B: ldfld ToolController SimulationManagerBase`2<ToolManager,
ToolController>::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<NetSegment> NetManager::m_segments
IL_0852: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0879: ldfld NetSegment[] Array16`1<NetSegment>::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<System.UInt16> NetManager::m_tempSegmentBuffer
IL_08A9: ldfld System.Int32 FastList`1<System.UInt16>::m_size
IL_08AE: blt => Label60
IL_08B3: ldloc.0
IL_08B4: ldfld FastList`1<System.UInt16> NetManager::m_tempNodeBuffer
IL_08B9: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_08BE: ldloc.0
IL_08BF: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_08C4: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_08C9: // end original
IL_08C9: Label0
IL_08C9: ret
DONE

### Harmony id=de.viathinksoft.tmpe, version=2.0.1.0, location=E:\Games\data-


0000000016F5EE20, env/clr=2.0.50727.1433, platform=Win32NT,
ptrsize:runtime/env=8/Bits64, Windows
### Started from System.Void TrafficManager.Patcher::Install(), location E:\Games\
data-0000000017B22040
### At 2022-11-05 01.47.53
### 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<Vehicle> VehicleManager::m_vehicles
IL_0042: ldloca.s 0 (System.UInt16)
IL_0044: ldarg.2
IL_0045: callvirt System.Boolean Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0066: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_007E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_009D: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_00C4: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_00E4: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_00FC: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0114: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_012C: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0144: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_015C: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0178: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0194: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_01B0: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_01CC: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_01E4: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_01FC: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0216: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_022E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0246: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_025E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0276: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_028E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_02A6: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_02BE: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_02D6: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_02EE: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0306: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_031E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0336: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_034E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0366: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_037E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0396: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_03AE: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_03C6: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_03DE: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_03F6: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_040E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_042E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_044D: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0452: ldarg.1
IL_0453: ldind.u2
IL_0454: ldelema Vehicle
IL_0459: ldarg.0
IL_045A: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_045F: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_047C: callvirt System.UInt32 Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0012: ldfld Vehicle[] Array16`1<Vehicle>::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<NetSegment> NetManager::m_segments
IL_0030: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0047: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_0006: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0021: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_00CD: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_00F3: ldfld NetSegment[] Array16`1<NetSegment>::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<LogChannel>::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 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.Int32
IL_0000: Local var 38: System.UInt16
IL_0000: Local var 39: RoadBaseAI/TrafficLightState
IL_0000: Local var 40: RoadBaseAI/TrafficLightState
IL_0000: Local var 41: UnityEngine.Vector3
IL_0000: Local var 42: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 42 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 42 (System.Boolean)
IL_000E: ldloc 42 (System.Boolean)
IL_0012: brfalse => Label1
IL_0017: ldnull
IL_0018: ldarg 0
IL_001C: ldarg 1
IL_0020: call static System.Boolean
TrafficManager.Patch._TrainTrackBase.LevelCrossingSimulationStepPatch::Prefix(Train
TrackBaseAI __instance, System.UInt16 nodeID, NetNode& data)
IL_0025: stloc 42 (System.Boolean)
IL_0029: Label1
IL_0029: nop
IL_002A: ldloc 42 (System.Boolean)
IL_002E: brfalse => Label0
IL_0033: // start original
IL_0033: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0038: stloc.0
IL_0039: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_003E: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0043: stloc.1
IL_0044: ldarg.1
IL_0045: ldfld System.Byte NetNode::m_maxWaitTime
IL_004A: ldc.i4.3
IL_004B: and
IL_004C: stloc.2
IL_004D: ldarg.1
IL_004E: ldfld System.Byte NetNode::m_maxWaitTime
IL_0053: ldc.i4.2
IL_0054: shr
IL_0055: ldc.i4.7
IL_0056: and
IL_0057: stloc.3
IL_0058: ldarg.1
IL_0059: ldfld System.Byte NetNode::m_maxWaitTime
IL_005E: ldc.i4.5
IL_005F: shr
IL_0060: stloc.s 4 (System.Int32)
IL_0062: ldc.i4.m1
IL_0063: stloc.s 5 (System.Int32)
IL_0065: ldc.i4.m1
IL_0066: stloc.s 6 (System.Int32)
IL_0068: ldc.i4.m1
IL_0069: stloc.s 7 (System.Int32)
IL_006B: ldc.i4.m1
IL_006C: stloc.s 8 (System.Int32)
IL_006E: ldc.i4.m1
IL_006F: stloc.s 9 (System.Int32)
IL_0071: ldc.i4.m1
IL_0072: stloc.s 10 (System.Int32)
IL_0074: ldc.i4.0
IL_0075: stloc.s 11 (System.Int32)
IL_0077: ldc.i4.0
IL_0078: stloc.s 12 (System.Int32)
IL_007A: ldc.i4.0
IL_007B: stloc.s 13 (System.Int32)
IL_007D: ldc.i4.0
IL_007E: stloc.s 14 (System.Int32)
IL_0080: ldc.i4.0
IL_0081: stloc.s 15 (System.Int32)
IL_0083: ldc.i4.0
IL_0084: stloc.s 16 (System.Int32)
IL_0086: br => Label2
IL_008B: Label24
IL_008B: ldarg.1
IL_008C: ldloc.s 16 (System.Int32)
IL_008E: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0093: stloc.s 17 (System.UInt16)
IL_0095: ldloc.s 17 (System.UInt16)
IL_0097: brfalse => Label3
IL_009C: ldc.i4.0
IL_009D: stloc.s 18 (System.Int32)
IL_009F: ldc.i4.0
IL_00A0: stloc.s 19 (System.Int32)
IL_00A2: ldloc.0
IL_00A3: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_00A8: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00AD: ldloc.s 17 (System.UInt16)
IL_00AF: ldelema NetSegment
IL_00B4: ldloc.s 17 (System.UInt16)
IL_00B6: ldc.i4.s 33
IL_00B8: ldc.i4 65601
IL_00BD: ldloca.s 18 (System.Int32)
IL_00BF: ldloca.s 19 (System.Int32)
IL_00C1: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_00C6: ldloc.0
IL_00C7: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_00CC: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00D1: ldloc.s 17 (System.UInt16)
IL_00D3: ldelema NetSegment
IL_00D8: ldfld System.UInt16 NetSegment::m_startNode
IL_00DD: ldarg.0
IL_00DE: ceq
IL_00E0: stloc.s 20 (System.Boolean)
IL_00E2: ldloc.s 20 (System.Boolean)
IL_00E4: brfalse => Label4
IL_00E9: ldloc.s 19 (System.Int32)
IL_00EB: ldc.i4.0
IL_00EC: ceq
IL_00EE: ldc.i4.0
IL_00EF: ceq
IL_00F1: br => Label5
IL_00F6: Label4
IL_00F6: ldloc.s 18 (System.Int32)
IL_00F8: ldc.i4.0
IL_00F9: ceq
IL_00FB: ldc.i4.0
IL_00FC: ceq
IL_00FE: Label5
IL_00FE: stloc.s 21 (System.Boolean)
IL_0100: ldloc.s 20 (System.Boolean)
IL_0102: brfalse => Label6
IL_0107: ldloc.s 18 (System.Int32)
IL_0109: ldc.i4.0
IL_010A: ceq
IL_010C: ldc.i4.0
IL_010D: ceq
IL_010F: br => Label7
IL_0114: Label6
IL_0114: ldloc.s 19 (System.Int32)
IL_0116: ldc.i4.0
IL_0117: ceq
IL_0119: ldc.i4.0
IL_011A: ceq
IL_011C: Label7
IL_011C: stloc.s 22 (System.Boolean)
IL_011E: ldloc.s 21 (System.Boolean)
IL_0120: brfalse => Label8
IL_0125: ldloc.s 11 (System.Int32)
IL_0127: ldc.i4.1
IL_0128: ldloc.s 16 (System.Int32)
IL_012A: ldc.i4.s 31
IL_012C: and
IL_012D: shl
IL_012E: or
IL_012F: stloc.s 11 (System.Int32)
IL_0131: Label8
IL_0131: ldloc.s 22 (System.Boolean)
IL_0133: brfalse => Label9
IL_0138: ldloc.s 12 (System.Int32)
IL_013A: ldc.i4.1
IL_013B: ldloc.s 16 (System.Int32)
IL_013D: ldc.i4.s 31
IL_013F: and
IL_0140: shl
IL_0141: or
IL_0142: stloc.s 12 (System.Int32)
IL_0144: ldloc.s 14 (System.Int32)
IL_0146: ldc.i4.1
IL_0147: add
IL_0148: stloc.s 14 (System.Int32)
IL_014A: Label9
IL_014A: ldarg.0
IL_014B: ldloc.0
IL_014C: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0151: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0156: ldloc.s 17 (System.UInt16)
IL_0158: ldelema NetSegment
IL_015D: ldloc.1
IL_015E: ldc.i4 256
IL_0163: sub
IL_0164: ldloca.s 23 (RoadBaseAI+TrafficLightState)
IL_0166: ldloca.s 24 (RoadBaseAI+TrafficLightState)
IL_0168: ldloca.s 25 (System.Boolean)
IL_016A: ldloca.s 26 (System.Boolean)
IL_016C: 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_0171: ldloc.s 24 (RoadBaseAI+TrafficLightState)
IL_0173: ldc.i4.2
IL_0174: and
IL_0175: brfalse => Label10
IL_017A: ldloc.s 26 (System.Boolean)
IL_017C: brfalse => Label11
IL_0181: ldloc.s 8 (System.Int32)
IL_0183: ldc.i4.m1
IL_0184: bne.un => Label12
IL_0189: ldloc.s 16 (System.Int32)
IL_018B: stloc.s 8 (System.Int32)
IL_018D: Label12
IL_018D: ldloc.s 10 (System.Int32)
IL_018F: ldc.i4.m1
IL_0190: bne.un => Label13
IL_0195: ldloc.s 15 (System.Int32)
IL_0197: ldloc.s 4 (System.Int32)
IL_0199: blt => Label14
IL_019E: ldloc.s 16 (System.Int32)
IL_01A0: stloc.s 10 (System.Int32)
IL_01A2: Label10
IL_01A2: Label11
IL_01A2: Label13
IL_01A2: Label14
IL_01A2: ldloc.s 15 (System.Int32)
IL_01A4: ldc.i4.1
IL_01A5: add
IL_01A6: stloc.s 15 (System.Int32)
IL_01A8: ldloc.s 21 (System.Boolean)
IL_01AA: brtrue => Label15
IL_01AF: ldloc.s 25 (System.Boolean)
IL_01B1: brfalse => Label16
IL_01B6: Label15
IL_01B6: ldloc.s 23 (RoadBaseAI+TrafficLightState)
IL_01B8: ldc.i4.2
IL_01B9: and
IL_01BA: brtrue => Label17
IL_01BF: ldloc.s 16 (System.Int32)
IL_01C1: stloc.s 6 (System.Int32)
IL_01C3: ldloc.s 25 (System.Boolean)
IL_01C5: brfalse => Label18
IL_01CA: ldloc.s 16 (System.Int32)
IL_01CC: stloc.s 5 (System.Int32)
IL_01CE: Label18
IL_01CE: br => Label19
IL_01D3: Label17
IL_01D3: ldloc.s 25 (System.Boolean)
IL_01D5: brfalse => Label20
IL_01DA: ldloc.s 7 (System.Int32)
IL_01DC: ldc.i4.m1
IL_01DD: bne.un => Label21
IL_01E2: ldloc.s 16 (System.Int32)
IL_01E4: stloc.s 7 (System.Int32)
IL_01E6: Label21
IL_01E6: ldloc.s 9 (System.Int32)
IL_01E8: ldc.i4.m1
IL_01E9: bne.un => Label22
IL_01EE: ldloc.s 13 (System.Int32)
IL_01F0: ldloc.3
IL_01F1: blt => Label23
IL_01F6: ldloc.s 16 (System.Int32)
IL_01F8: stloc.s 9 (System.Int32)
IL_01FA: Label19
IL_01FA: Label20
IL_01FA: Label22
IL_01FA: Label23
IL_01FA: ldloc.s 13 (System.Int32)
IL_01FC: ldc.i4.1
IL_01FD: add
IL_01FE: stloc.s 13 (System.Int32)
IL_0200: Label3
IL_0200: Label16
IL_0200: ldloc.s 16 (System.Int32)
IL_0202: ldc.i4.1
IL_0203: add
IL_0204: stloc.s 16 (System.Int32)
IL_0206: Label2
IL_0206: ldloc.s 16 (System.Int32)
IL_0208: ldc.i4.8
IL_0209: blt => Label24
IL_020E: ldloc.s 9 (System.Int32)
IL_0210: ldc.i4.m1
IL_0211: bne.un => Label25
IL_0216: ldloc.s 7 (System.Int32)
IL_0218: stloc.s 9 (System.Int32)
IL_021A: Label25
IL_021A: ldloc.s 10 (System.Int32)
IL_021C: ldc.i4.m1
IL_021D: bne.un => Label26
IL_0222: ldloc.s 8 (System.Int32)
IL_0224: stloc.s 10 (System.Int32)
IL_0226: Label26
IL_0226: ldloc.s 6 (System.Int32)
IL_0228: ldc.i4.m1
IL_0229: beq => Label27
IL_022E: ldloc.s 5 (System.Int32)
IL_0230: ldc.i4.m1
IL_0231: beq => Label28
IL_0236: ldloc.2
IL_0237: ldc.i4.1
IL_0238: bgt => Label29
IL_023D: ldc.i4.m1
IL_023E: stloc.s 9 (System.Int32)
IL_0240: ldc.i4.m1
IL_0241: stloc.s 10 (System.Int32)
IL_0243: ldloc.2
IL_0244: ldc.i4.1
IL_0245: add
IL_0246: stloc.2
IL_0247: Label27
IL_0247: Label28
IL_0247: Label29
IL_0247: ldloc.s 10 (System.Int32)
IL_0249: ldc.i4.m1
IL_024A: beq => Label30
IL_024F: ldloc.s 9 (System.Int32)
IL_0251: ldc.i4.m1
IL_0252: beq => Label31
IL_0257: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_025C: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0261: ldc.i4.3
IL_0262: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0267: brfalse => Label32
IL_026C: ldc.i4.m1
IL_026D: stloc.s 10 (System.Int32)
IL_026F: Label30
IL_026F: Label31
IL_026F: Label32
IL_026F: ldloc.s 9 (System.Int32)
IL_0271: ldc.i4.m1
IL_0272: beq => Label33
IL_0277: ldloc.s 9 (System.Int32)
IL_0279: stloc.s 6 (System.Int32)
IL_027B: Label33
IL_027B: ldloc.s 10 (System.Int32)
IL_027D: ldloc.s 6 (System.Int32)
IL_027F: bne.un => Label34
IL_0284: ldc.i4.m1
IL_0285: stloc.s 6 (System.Int32)
IL_0287: Label34
IL_0287: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_028C: stloc.s 27 (UnityEngine.Vector3)
IL_028E: ldloc.s 10 (System.Int32)
IL_0290: ldc.i4.m1
IL_0291: beq => Label35
IL_0296: ldarg.1
IL_0297: ldloc.s 10 (System.Int32)
IL_0299: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_029E: stloc.s 28 (System.UInt16)
IL_02A0: ldloc.0
IL_02A1: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02A6: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02AB: ldloc.s 28 (System.UInt16)
IL_02AD: ldelema NetSegment
IL_02B2: ldarg.0
IL_02B3: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_02B8: stloc.s 27 (UnityEngine.Vector3)
IL_02BA: ldloc.s 6 (System.Int32)
IL_02BC: ldc.i4.m1
IL_02BD: beq => Label36
IL_02C2: ldarg.1
IL_02C3: ldloc.s 6 (System.Int32)
IL_02C5: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_02CA: stloc.s 28 (System.UInt16)
IL_02CC: ldloc.0
IL_02CD: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02D2: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02D7: ldloc.s 28 (System.UInt16)
IL_02D9: ldelema NetSegment
IL_02DE: ldarg.0
IL_02DF: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_02E4: stloc.s 29 (UnityEngine.Vector3)
IL_02E6: ldloca.s 29 (UnityEngine.Vector3)
IL_02E8: ldfld System.Single UnityEngine.Vector3::x
IL_02ED: ldloca.s 27 (UnityEngine.Vector3)
IL_02EF: ldfld System.Single UnityEngine.Vector3::x
IL_02F4: mul
IL_02F5: ldloca.s 29 (UnityEngine.Vector3)
IL_02F7: ldfld System.Single UnityEngine.Vector3::z
IL_02FC: ldloca.s 27 (UnityEngine.Vector3)
IL_02FE: ldfld System.Single UnityEngine.Vector3::z
IL_0303: mul
IL_0304: add
IL_0305: ldc.r4 -0.5
IL_030A: bge.un => Label37
IL_030F: ldc.i4.m1
IL_0310: stloc.s 6 (System.Int32)
IL_0312: Label36
IL_0312: Label37
IL_0312: ldloc.s 6 (System.Int32)
IL_0314: ldc.i4.m1
IL_0315: bne.un => Label38
IL_031A: ldc.i4.0
IL_031B: stloc.s 30 (System.Int32)
IL_031D: br => Label39
IL_0322: Label45
IL_0322: ldloc.s 30 (System.Int32)
IL_0324: ldloc.s 10 (System.Int32)
IL_0326: beq => Label40
IL_032B: ldloc.s 11 (System.Int32)
IL_032D: ldc.i4.1
IL_032E: ldloc.s 30 (System.Int32)
IL_0330: ldc.i4.s 31
IL_0332: and
IL_0333: shl
IL_0334: and
IL_0335: brfalse => Label41
IL_033A: ldarg.1
IL_033B: ldloc.s 30 (System.Int32)
IL_033D: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0342: stloc.s 28 (System.UInt16)
IL_0344: ldloc.s 28 (System.UInt16)
IL_0346: brfalse => Label42
IL_034B: ldloc.0
IL_034C: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0351: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0356: ldloc.s 28 (System.UInt16)
IL_0358: ldelema NetSegment
IL_035D: ldarg.0
IL_035E: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0363: stloc.s 31 (UnityEngine.Vector3)
IL_0365: ldloca.s 31 (UnityEngine.Vector3)
IL_0367: ldfld System.Single UnityEngine.Vector3::x
IL_036C: ldloca.s 27 (UnityEngine.Vector3)
IL_036E: ldfld System.Single UnityEngine.Vector3::x
IL_0373: mul
IL_0374: ldloca.s 31 (UnityEngine.Vector3)
IL_0376: ldfld System.Single UnityEngine.Vector3::z
IL_037B: ldloca.s 27 (UnityEngine.Vector3)
IL_037D: ldfld System.Single UnityEngine.Vector3::z
IL_0382: mul
IL_0383: add
IL_0384: ldc.r4 -0.5
IL_0389: blt.un => Label43
IL_038E: ldloc.s 30 (System.Int32)
IL_0390: stloc.s 6 (System.Int32)
IL_0392: br => Label44
IL_0397: Label40
IL_0397: Label41
IL_0397: Label42
IL_0397: Label43
IL_0397: ldloc.s 30 (System.Int32)
IL_0399: ldc.i4.1
IL_039A: add
IL_039B: stloc.s 30 (System.Int32)
IL_039D: Label39
IL_039D: ldloc.s 30 (System.Int32)
IL_039F: ldc.i4.8
IL_03A0: blt => Label45
IL_03A5: Label35
IL_03A5: Label38
IL_03A5: Label44
IL_03A5: ldc.i4.m1
IL_03A6: stloc.s 32 (System.Int32)
IL_03A8: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_03AD: stloc.s 33 (UnityEngine.Vector3)
IL_03AF: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_03B4: stloc.s 34 (UnityEngine.Vector3)
IL_03B6: ldloc.s 6 (System.Int32)
IL_03B8: ldc.i4.m1
IL_03B9: beq => Label46
IL_03BE: ldarg.1
IL_03BF: ldloc.s 6 (System.Int32)
IL_03C1: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_03C6: stloc.s 35 (System.UInt16)
IL_03C8: ldloc.0
IL_03C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_03CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_03D3: ldloc.s 35 (System.UInt16)
IL_03D5: ldelema NetSegment
IL_03DA: ldarg.0
IL_03DB: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_03E0: stloc.s 33 (UnityEngine.Vector3)
IL_03E2: ldloc.s 11 (System.Int32)
IL_03E4: ldloc.s 12 (System.Int32)
IL_03E6: and
IL_03E7: ldc.i4.1
IL_03E8: ldloc.s 6 (System.Int32)
IL_03EA: ldc.i4.s 31
IL_03EC: and
IL_03ED: shl
IL_03EE: and
IL_03EF: brfalse => Label47
IL_03F4: ldc.i4.0
IL_03F5: stloc.s 36 (System.Int32)
IL_03F7: br => Label48
IL_03FC: Label59
IL_03FC: ldloc.s 36 (System.Int32)
IL_03FE: ldloc.s 6 (System.Int32)
IL_0400: beq => Label49
IL_0405: ldloc.s 36 (System.Int32)
IL_0407: ldloc.s 10 (System.Int32)
IL_0409: beq => Label50
IL_040E: ldloc.s 11 (System.Int32)
IL_0410: ldloc.s 12 (System.Int32)
IL_0412: and
IL_0413: ldc.i4.1
IL_0414: ldloc.s 36 (System.Int32)
IL_0416: ldc.i4.s 31
IL_0418: and
IL_0419: shl
IL_041A: and
IL_041B: brfalse => Label51
IL_0420: ldarg.1
IL_0421: ldloc.s 36 (System.Int32)
IL_0423: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0428: stloc.s 35 (System.UInt16)
IL_042A: ldloc.s 35 (System.UInt16)
IL_042C: brfalse => Label52
IL_0431: ldloc.0
IL_0432: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0437: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_043C: ldloc.s 35 (System.UInt16)
IL_043E: ldelema NetSegment
IL_0443: ldarg.0
IL_0444: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0449: stloc.s 34 (UnityEngine.Vector3)
IL_044B: ldloc.s 10 (System.Int32)
IL_044D: ldc.i4.m1
IL_044E: beq => Label53
IL_0453: ldloca.s 34 (UnityEngine.Vector3)
IL_0455: ldfld System.Single UnityEngine.Vector3::x
IL_045A: ldloca.s 27 (UnityEngine.Vector3)
IL_045C: ldfld System.Single UnityEngine.Vector3::x
IL_0461: mul
IL_0462: ldloca.s 34 (UnityEngine.Vector3)
IL_0464: ldfld System.Single UnityEngine.Vector3::z
IL_0469: ldloca.s 27 (UnityEngine.Vector3)
IL_046B: ldfld System.Single UnityEngine.Vector3::z
IL_0470: mul
IL_0471: add
IL_0472: ldc.r4 -0.5
IL_0477: blt.un => Label54
IL_047C: Label53
IL_047C: ldloc.s 14 (System.Int32)
IL_047E: ldc.i4.2
IL_047F: bne.un => Label55
IL_0484: ldloc.s 36 (System.Int32)
IL_0486: stloc.s 32 (System.Int32)
IL_0488: br => Label56
IL_048D: Label55
IL_048D: ldloca.s 34 (UnityEngine.Vector3)
IL_048F: ldfld System.Single UnityEngine.Vector3::x
IL_0494: ldloca.s 33 (UnityEngine.Vector3)
IL_0496: ldfld System.Single UnityEngine.Vector3::x
IL_049B: mul
IL_049C: ldloca.s 34 (UnityEngine.Vector3)
IL_049E: ldfld System.Single UnityEngine.Vector3::z
IL_04A3: ldloca.s 33 (UnityEngine.Vector3)
IL_04A5: ldfld System.Single UnityEngine.Vector3::z
IL_04AA: mul
IL_04AB: add
IL_04AC: ldc.r4 -0.9396926
IL_04B1: bge.un => Label57
IL_04B6: ldloc.s 36 (System.Int32)
IL_04B8: stloc.s 32 (System.Int32)
IL_04BA: br => Label58
IL_04BF: Label49
IL_04BF: Label50
IL_04BF: Label51
IL_04BF: Label52
IL_04BF: Label54
IL_04BF: Label57
IL_04BF: ldloc.s 36 (System.Int32)
IL_04C1: ldc.i4.1
IL_04C2: add
IL_04C3: stloc.s 36 (System.Int32)
IL_04C5: Label48
IL_04C5: ldloc.s 36 (System.Int32)
IL_04C7: ldc.i4.8
IL_04C8: blt => Label59
IL_04CD: Label46
IL_04CD: Label47
IL_04CD: Label56
IL_04CD: Label58
IL_04CD: ldc.i4.0
IL_04CE: stloc.s 37 (System.Int32)
IL_04D0: br => Label60
IL_04D5: Label79
IL_04D5: ldarg.1
IL_04D6: ldloc.s 37 (System.Int32)
IL_04D8: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_04DD: stloc.s 38 (System.UInt16)
IL_04DF: ldloc.s 38 (System.UInt16)
IL_04E1: brfalse => Label61
IL_04E6: ldarg.0
IL_04E7: ldloc.0
IL_04E8: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_04ED: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_04F2: ldloc.s 38 (System.UInt16)
IL_04F4: ldelema NetSegment
IL_04F9: ldloc.1
IL_04FA: ldc.i4 256
IL_04FF: sub
IL_0500: ldloca.s 39 (RoadBaseAI+TrafficLightState)
IL_0502: ldloca.s 40 (RoadBaseAI+TrafficLightState)
IL_0504: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_0509: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_050B: ldc.i4.s -2
IL_050D: and
IL_050E: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0510: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0512: ldc.i4.s -2
IL_0514: and
IL_0515: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0517: ldloc.s 6 (System.Int32)
IL_0519: ldloc.s 37 (System.Int32)
IL_051B: beq => Label62
IL_0520: ldloc.s 32 (System.Int32)
IL_0522: ldloc.s 37 (System.Int32)
IL_0524: bne.un => Label63
IL_0529: Label62
IL_0529: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_052B: ldc.i4.2
IL_052C: and
IL_052D: brfalse => Label64
IL_0532: ldc.i4.1
IL_0533: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0535: ldc.i4.0
IL_0536: stloc.2
IL_0537: ldloc.3
IL_0538: ldc.i4.1
IL_0539: add
IL_053A: dup
IL_053B: stloc.3
IL_053C: ldloc.s 13 (System.Int32)
IL_053E: blt => Label65
IL_0543: ldc.i4.0
IL_0544: stloc.3
IL_0545: Label64
IL_0545: Label65
IL_0545: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0547: ldc.i4.2
IL_0548: and
IL_0549: brtrue => Label66
IL_054E: ldc.i4.3
IL_054F: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0551: Label66
IL_0551: br => Label67
IL_0556: Label63
IL_0556: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0558: ldc.i4.2
IL_0559: and
IL_055A: brtrue => Label68
IL_055F: ldc.i4.3
IL_0560: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0562: Label68
IL_0562: ldloc.0
IL_0563: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0568: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_056D: ldloc.s 38 (System.UInt16)
IL_056F: ldelema NetSegment
IL_0574: ldarg.0
IL_0575: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_057A: stloc.s 41 (UnityEngine.Vector3)
IL_057C: ldloc.s 12 (System.Int32)
IL_057E: ldc.i4.1
IL_057F: ldloc.s 37 (System.Int32)
IL_0581: ldc.i4.s 31
IL_0583: and
IL_0584: shl
IL_0585: and
IL_0586: brfalse => Label69
IL_058B: ldloc.s 10 (System.Int32)
IL_058D: ldloc.s 37 (System.Int32)
IL_058F: beq => Label70
IL_0594: ldloc.s 6 (System.Int32)
IL_0596: ldc.i4.m1
IL_0597: beq => Label71
IL_059C: ldloca.s 41 (UnityEngine.Vector3)
IL_059E: ldfld System.Single UnityEngine.Vector3::x
IL_05A3: ldloca.s 33 (UnityEngine.Vector3)
IL_05A5: ldfld System.Single UnityEngine.Vector3::x
IL_05AA: mul
IL_05AB: ldloca.s 41 (UnityEngine.Vector3)
IL_05AD: ldfld System.Single UnityEngine.Vector3::z
IL_05B2: ldloca.s 33 (UnityEngine.Vector3)
IL_05B4: ldfld System.Single UnityEngine.Vector3::z
IL_05B9: mul
IL_05BA: add
IL_05BB: ldc.r4 -0.5
IL_05C0: blt => Label72
IL_05C5: Label71
IL_05C5: ldloc.s 32 (System.Int32)
IL_05C7: ldc.i4.m1
IL_05C8: beq => Label73
IL_05CD: ldloca.s 41 (UnityEngine.Vector3)
IL_05CF: ldfld System.Single UnityEngine.Vector3::x
IL_05D4: ldloca.s 34 (UnityEngine.Vector3)
IL_05D6: ldfld System.Single UnityEngine.Vector3::x
IL_05DB: mul
IL_05DC: ldloca.s 41 (UnityEngine.Vector3)
IL_05DE: ldfld System.Single UnityEngine.Vector3::z
IL_05E3: ldloca.s 34 (UnityEngine.Vector3)
IL_05E5: ldfld System.Single UnityEngine.Vector3::z
IL_05EA: mul
IL_05EB: add
IL_05EC: ldc.r4 -0.5
IL_05F1: bge.un => Label74
IL_05F6: Label72
IL_05F6: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05F8: ldc.i4.2
IL_05F9: and
IL_05FA: brtrue => Label75
IL_05FF: ldc.i4.3
IL_0600: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0602: Label75
IL_0602: br => Label76
IL_0607: Label69
IL_0607: Label70
IL_0607: Label73
IL_0607: Label74
IL_0607: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0609: ldc.i4.2
IL_060A: and
IL_060B: brfalse => Label77
IL_0610: ldc.i4.1
IL_0611: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0613: ldloc.s 4 (System.Int32)
IL_0615: ldc.i4.1
IL_0616: add
IL_0617: dup
IL_0618: stloc.s 4 (System.Int32)
IL_061A: ldloc.s 15 (System.Int32)
IL_061C: blt => Label78
IL_0621: ldc.i4.0
IL_0622: stloc.s 4 (System.Int32)
IL_0624: Label67
IL_0624: Label76
IL_0624: Label77
IL_0624: Label78
IL_0624: ldarg.0
IL_0625: ldloc.0
IL_0626: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_062B: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0630: ldloc.s 38 (System.UInt16)
IL_0632: ldelema NetSegment
IL_0637: ldloc.1
IL_0638: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_063A: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_063C: ldc.i4.0
IL_063D: ldc.i4.0
IL_063E: 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_0643: Label61
IL_0643: ldloc.s 37 (System.Int32)
IL_0645: ldc.i4.1
IL_0646: add
IL_0647: stloc.s 37 (System.Int32)
IL_0649: Label60
IL_0649: ldloc.s 37 (System.Int32)
IL_064B: ldc.i4.8
IL_064C: blt => Label79
IL_0651: ldarg.1
IL_0652: ldloc.s 4 (System.Int32)
IL_0654: ldc.i4.5
IL_0655: shl
IL_0656: ldloc.3
IL_0657: ldc.i4.2
IL_0658: shl
IL_0659: or
IL_065A: ldloc.2
IL_065B: or
IL_065C: conv.u1
IL_065D: stfld System.Byte NetNode::m_maxWaitTime
IL_0662: // end original
IL_0662: Label0
IL_0662: ret
DONE

### Patch: static System.Void RoadBaseAI::GetTrafficLightNodeState(System.UInt16


nodeID, NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData, Flags&
flags, UnityEngine.Color& color)
### Replacement: static System.Void
RoadBaseAI::RoadBaseAI.GetTrafficLightNodeState_Patch1(System.UInt16 nodeID,
NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData, Flags& 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.UInt1
6 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<SimulationManager>::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/Problem
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 Problem NetNode::m_problems
IL_000E: ldc.i8 72057602627866624
IL_0017: call static Problem Notification::RemoveProblems(Problem problems1,
Problem problems2)
IL_001C: stloc.0
IL_001D: ldc.i4.0
IL_001E: stloc.1
IL_001F: ldc.i4.0
IL_0020: stloc.2
IL_0021: ldarg.2
IL_0022: ldarg.1
IL_0023: ldc.i4.0
IL_0024: ldc.i4.s 33
IL_0026: ldc.i4.1
IL_0027: ldc.i4.1
IL_0028: ldloca.s 1 (System.Int32)
IL_002A: ldloca.s 2 (System.Int32)
IL_002C: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, LaneType laneTypes, VehicleType vehicleTypes,
System.Boolean onePerSegment, System.Int32& forward, System.Int32& backward)
IL_0031: ldarg.2
IL_0032: ldfld Flags NetNode::m_flags
IL_0037: ldc.i4 1024
IL_003C: and
IL_003D: brfalse => Label0
IL_0042: ldarg.2
IL_0043: ldfld System.UInt16 NetNode::m_building
IL_0048: brfalse => Label1
IL_004D: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0052: stloc.3
IL_0053: ldloc.1
IL_0054: brfalse => Label2
IL_0059: ldloc.3
IL_005A: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_005F: ldfld Building[] Array16`1<Building>::m_buffer
IL_0064: ldarg.2
IL_0065: ldfld System.UInt16 NetNode::m_building
IL_006A: ldelema Building
IL_006F: dup
IL_0070: ldfld Flags Building::m_flags
IL_0075: ldc.i4 128
IL_007A: or
IL_007B: stfld Flags Building::m_flags
IL_0080: br => Label3
IL_0085: Label2
IL_0085: ldloc.3
IL_0086: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008B: ldfld Building[] Array16`1<Building>::m_buffer
IL_0090: ldarg.2
IL_0091: ldfld System.UInt16 NetNode::m_building
IL_0096: ldelema Building
IL_009B: dup
IL_009C: ldfld Flags Building::m_flags
IL_00A1: ldc.i4 -129
IL_00A6: and
IL_00A7: stfld Flags Building::m_flags
IL_00AC: Label3
IL_00AC: ldloc.2
IL_00AD: brfalse => Label4
IL_00B2: ldloc.3
IL_00B3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00B8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00BD: ldarg.2
IL_00BE: ldfld System.UInt16 NetNode::m_building
IL_00C3: ldelema Building
IL_00C8: dup
IL_00C9: ldfld Flags Building::m_flags
IL_00CE: ldc.i4.s 64
IL_00D0: or
IL_00D1: stfld Flags Building::m_flags
IL_00D6: br => Label5
IL_00DB: Label4
IL_00DB: ldloc.3
IL_00DC: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00E1: ldfld Building[] Array16`1<Building>::m_buffer
IL_00E6: ldarg.2
IL_00E7: ldfld System.UInt16 NetNode::m_building
IL_00EC: ldelema Building
IL_00F1: dup
IL_00F2: ldfld Flags Building::m_flags
IL_00F7: ldc.i4.s -65
IL_00F9: and
IL_00FA: stfld Flags Building::m_flags
IL_00FF: Label5
IL_00FF: br => Label6
IL_0104: Label0
IL_0104: Label1
IL_0104: ldloc.1
IL_0105: brfalse => Label7
IL_010A: ldloc.2
IL_010B: brfalse => Label8
IL_0110: Label7
IL_0110: ldloc.1
IL_0111: brtrue => Label9
IL_0116: ldloc.2
IL_0117: brfalse => Label10
IL_011C: Label8
IL_011C: ldloc.0
IL_011D: ldc.i4 4096
IL_0122: conv.i8
IL_0123: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0128: stloc.0
IL_0129: Label6
IL_0129: Label9
IL_0129: Label10
IL_0129: ldloc.1
IL_012A: ldc.i4.1
IL_012B: bne.un => Label11
IL_0130: ldarg.2
IL_0131: dup
IL_0132: ldfld Flags NetNode::m_flags
IL_0137: ldc.i4 4194304
IL_013C: or
IL_013D: stfld Flags NetNode::m_flags
IL_0142: br => Label12
IL_0147: Label11
IL_0147: ldarg.2
IL_0148: dup
IL_0149: ldfld Flags NetNode::m_flags
IL_014E: ldc.i4 -4194305
IL_0153: and
IL_0154: stfld Flags NetNode::m_flags
IL_0159: Label12
IL_0159: ldloc.2
IL_015A: ldc.i4.1
IL_015B: bne.un => Label13
IL_0160: ldarg.2
IL_0161: dup
IL_0162: ldfld Flags NetNode::m_flags
IL_0167: ldc.i4 16777216
IL_016C: or
IL_016D: stfld Flags NetNode::m_flags
IL_0172: br => Label14
IL_0177: Label13
IL_0177: ldarg.2
IL_0178: dup
IL_0179: ldfld Flags NetNode::m_flags
IL_017E: ldc.i4 -16777217
IL_0183: and
IL_0184: stfld Flags NetNode::m_flags
IL_0189: Label14
IL_0189: ldarg.2
IL_018A: ldfld Flags NetNode::m_flags
IL_018F: ldc.i4 262144
IL_0194: and
IL_0195: brtrue => Label15
IL_019A: ldc.i4.0
IL_019B: stloc.s 4 (System.Int32)
IL_019D: ldc.i4.0
IL_019E: stloc.1
IL_019F: ldc.i4.0
IL_01A0: stloc.2
IL_01A1: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_01A6: stloc.s 5 (NetManager)
IL_01A8: ldc.i4.0
IL_01A9: stloc.s 6 (System.Int32)
IL_01AB: br => Label16
IL_01B0: Label24
IL_01B0: ldarg.2
IL_01B1: ldloc.s 6 (System.Int32)
IL_01B3: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_01B8: stloc.s 7 (System.UInt16)
IL_01BA: ldloc.s 7 (System.UInt16)
IL_01BC: brfalse => Label17
IL_01C1: ldc.i4.0
IL_01C2: stloc.s 8 (System.Int32)
IL_01C4: ldc.i4.0
IL_01C5: stloc.s 9 (System.Int32)
IL_01C7: ldloc.s 5 (NetManager)
IL_01C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01D3: ldloc.s 7 (System.UInt16)
IL_01D5: ldelema NetSegment
IL_01DA: ldloc.s 7 (System.UInt16)
IL_01DC: ldc.i4.s 33
IL_01DE: ldc.i4.s 64
IL_01E0: ldloca.s 8 (System.Int32)
IL_01E2: ldloca.s 9 (System.Int32)
IL_01E4: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_01E9: ldloc.s 8 (System.Int32)
IL_01EB: brtrue => Label18
IL_01F0: ldloc.s 9 (System.Int32)
IL_01F2: brfalse => Label19
IL_01F7: Label18
IL_01F7: ldloc.s 4 (System.Int32)
IL_01F9: ldc.i4.1
IL_01FA: add
IL_01FB: stloc.s 4 (System.Int32)
IL_01FD: ldloc.s 8 (System.Int32)
IL_01FF: brfalse => Label20
IL_0204: ldc.i4.1
IL_0205: stloc.s 8 (System.Int32)
IL_0207: Label20
IL_0207: ldloc.s 9 (System.Int32)
IL_0209: brfalse => Label21
IL_020E: ldc.i4.1
IL_020F: stloc.s 9 (System.Int32)
IL_0211: Label21
IL_0211: ldloc.s 5 (NetManager)
IL_0213: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0218: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_021D: ldloc.s 7 (System.UInt16)
IL_021F: ldelema NetSegment
IL_0224: ldfld System.UInt16 NetSegment::m_endNode
IL_0229: ldarg.1
IL_022A: bne.un => Label22
IL_022F: ldloc.1
IL_0230: ldloc.s 9 (System.Int32)
IL_0232: add
IL_0233: stloc.1
IL_0234: ldloc.2
IL_0235: ldloc.s 8 (System.Int32)
IL_0237: add
IL_0238: stloc.2
IL_0239: br => Label23
IL_023E: Label22
IL_023E: ldloc.1
IL_023F: ldloc.s 8 (System.Int32)
IL_0241: add
IL_0242: stloc.1
IL_0243: ldloc.2
IL_0244: ldloc.s 9 (System.Int32)
IL_0246: add
IL_0247: stloc.2
IL_0248: Label17
IL_0248: Label19
IL_0248: Label23
IL_0248: ldloc.s 6 (System.Int32)
IL_024A: ldc.i4.1
IL_024B: add
IL_024C: stloc.s 6 (System.Int32)
IL_024E: Label16
IL_024E: ldloc.s 6 (System.Int32)
IL_0250: ldc.i4.8
IL_0251: blt => Label24
IL_0256: ldloc.1
IL_0257: brfalse => Label25
IL_025C: ldloc.2
IL_025D: brfalse => Label26
IL_0262: Label25
IL_0262: ldloc.1
IL_0263: brtrue => Label27
IL_0268: ldloc.2
IL_0269: brtrue => Label28
IL_026E: Label27
IL_026E: ldloc.s 4 (System.Int32)
IL_0270: ldc.i4.1
IL_0271: bne.un => Label29
IL_0276: Label26
IL_0276: Label28
IL_0276: ldloc.0
IL_0277: ldc.i8 8589934592
IL_0280: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0285: stloc.0
IL_0286: Label29
IL_0286: ldc.i4.0
IL_0287: stloc.s 4 (System.Int32)
IL_0289: ldc.i4.0
IL_028A: stloc.1
IL_028B: ldc.i4.0
IL_028C: stloc.2
IL_028D: ldc.i4.0
IL_028E: stloc.s 10 (System.Int32)
IL_0290: br => Label30
IL_0295: Label38
IL_0295: ldarg.2
IL_0296: ldloc.s 10 (System.Int32)
IL_0298: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_029D: stloc.s 11 (System.UInt16)
IL_029F: ldloc.s 11 (System.UInt16)
IL_02A1: brfalse => Label31
IL_02A6: ldc.i4.0
IL_02A7: stloc.s 12 (System.Int32)
IL_02A9: ldc.i4.0
IL_02AA: stloc.s 13 (System.Int32)
IL_02AC: ldloc.s 5 (NetManager)
IL_02AE: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02B3: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02B8: ldloc.s 11 (System.UInt16)
IL_02BA: ldelema NetSegment
IL_02BF: ldloc.s 11 (System.UInt16)
IL_02C1: ldc.i4.s 33
IL_02C3: ldc.i4 65536
IL_02C8: ldloca.s 12 (System.Int32)
IL_02CA: ldloca.s 13 (System.Int32)
IL_02CC: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_02D1: ldloc.s 12 (System.Int32)
IL_02D3: brtrue => Label32
IL_02D8: ldloc.s 13 (System.Int32)
IL_02DA: brfalse => Label33
IL_02DF: Label32
IL_02DF: ldloc.s 4 (System.Int32)
IL_02E1: ldc.i4.1
IL_02E2: add
IL_02E3: stloc.s 4 (System.Int32)
IL_02E5: ldloc.s 12 (System.Int32)
IL_02E7: brfalse => Label34
IL_02EC: ldc.i4.1
IL_02ED: stloc.s 12 (System.Int32)
IL_02EF: Label34
IL_02EF: ldloc.s 13 (System.Int32)
IL_02F1: brfalse => Label35
IL_02F6: ldc.i4.1
IL_02F7: stloc.s 13 (System.Int32)
IL_02F9: Label35
IL_02F9: ldloc.s 5 (NetManager)
IL_02FB: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0300: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0305: ldloc.s 11 (System.UInt16)
IL_0307: ldelema NetSegment
IL_030C: ldfld System.UInt16 NetSegment::m_endNode
IL_0311: ldarg.1
IL_0312: bne.un => Label36
IL_0317: ldloc.1
IL_0318: ldloc.s 13 (System.Int32)
IL_031A: add
IL_031B: stloc.1
IL_031C: ldloc.2
IL_031D: ldloc.s 12 (System.Int32)
IL_031F: add
IL_0320: stloc.2
IL_0321: br => Label37
IL_0326: Label36
IL_0326: ldloc.1
IL_0327: ldloc.s 12 (System.Int32)
IL_0329: add
IL_032A: stloc.1
IL_032B: ldloc.2
IL_032C: ldloc.s 13 (System.Int32)
IL_032E: add
IL_032F: stloc.2
IL_0330: Label31
IL_0330: Label33
IL_0330: Label37
IL_0330: ldloc.s 10 (System.Int32)
IL_0332: ldc.i4.1
IL_0333: add
IL_0334: stloc.s 10 (System.Int32)
IL_0336: Label30
IL_0336: ldloc.s 10 (System.Int32)
IL_0338: ldc.i4.8
IL_0339: blt => Label38
IL_033E: ldloc.1
IL_033F: brfalse => Label39
IL_0344: ldloc.2
IL_0345: brfalse => Label40
IL_034A: Label39
IL_034A: ldloc.1
IL_034B: brtrue => Label41
IL_0350: ldloc.2
IL_0351: brtrue => Label42
IL_0356: Label41
IL_0356: ldloc.s 4 (System.Int32)
IL_0358: ldc.i4.1
IL_0359: bne.un => Label43
IL_035E: Label40
IL_035E: Label42
IL_035E: ldloc.0
IL_035F: ldc.i8 72057594037927936
IL_0368: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_036D: stloc.0
IL_036E: Label15
IL_036E: Label43
IL_036E: ldarg.2
IL_036F: ldloc.0
IL_0370: stfld Problem NetNode::m_problems
IL_0375: // end original
IL_0375: ldarg 1
IL_0379: ldarg 2
IL_037D: call static System.Void
TrafficManager.Patch._RoadBaseAI.UpdateNodePatch::Postfix(System.UInt16 nodeID,
NetNode& data)
IL_0382: 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<NetManager>::get_instance()
IL_0005: stloc.0
IL_0006: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::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<NetNode> NetManager::m_nodes
IL_0176: ldfld NetNode[] Array16`1<NetNode>::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: ldarg.2
IL_0192: ldfld UnityEngine.Vector3 NetSegment::m_endDirection
IL_0197: call static UnityEngine.Vector3
UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a)
IL_019C: ldloca.s 12 (System.Int32)
IL_019E: ldloca.s 13 (System.Int32)
IL_01A0: ldloca.s 14 (System.Int32)
IL_01A2: ldloca.s 15 (System.Int32)
IL_01A4: ldloca.s 16 (System.Int32)
IL_01A6: ldloca.s 17 (System.Int32)
IL_01A8: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, Direction directions, LaneType laneTypes, VehicleType
vehicleTypes, UnityEngine.Vector3 direction, System.Int32& left, System.Int32&
forward, System.Int32& right, System.Int32& left2, System.Int32& forward2,
System.Int32& right2)
IL_01AD: ldloc.0
IL_01AE: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_01B3: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_01B8: ldarg.2
IL_01B9: ldfld System.UInt16 NetSegment::m_endNode
IL_01BE: ldelema NetNode
IL_01C3: ldfld Flags NetNode::m_flags
IL_01C8: ldc.i4 1136
IL_01CD: and
IL_01CE: brfalse => Label2
IL_01D3: ldloc.s 12 (System.Int32)
IL_01D5: ldloc.s 13 (System.Int32)
IL_01D7: add
IL_01D8: ldloc.s 14 (System.Int32)
IL_01DA: add
IL_01DB: brtrue => Label3
IL_01E0: ldc.i4.1
IL_01E1: stloc.s 19 (System.Boolean)
IL_01E3: br => Label4
IL_01E8: Label3
IL_01E8: ldc.i4.1
IL_01E9: stloc.s 18 (System.Boolean)
IL_01EB: Label2
IL_01EB: Label4
IL_01EB: ldc.i4.0
IL_01EC: stloc.s 20 (System.Int32)
IL_01EE: ldc.i4.0
IL_01EF: stloc.s 21 (System.Int32)
IL_01F1: ldc.i4.0
IL_01F2: stloc.s 22 (System.Int32)
IL_01F4: ldc.i4.0
IL_01F5: stloc.s 23 (System.Int32)
IL_01F7: ldc.i4.0
IL_01F8: stloc.s 24 (System.Int32)
IL_01FA: ldc.i4.0
IL_01FB: stloc.s 25 (System.Int32)
IL_01FD: ldc.i4.0
IL_01FE: stloc.s 26 (System.Boolean)
IL_0200: ldc.i4.0
IL_0201: stloc.s 27 (System.Boolean)
IL_0203: ldloc.0
IL_0204: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0209: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_020E: ldarg.2
IL_020F: ldfld System.UInt16 NetSegment::m_startNode
IL_0214: ldelema NetNode
IL_0219: ldarg.2
IL_021A: ldfld System.UInt16 NetSegment::m_startNode
IL_021F: ldarg.1
IL_0220: ldc.i4.1
IL_0221: ldc.i4.s 33
IL_0223: ldc.i4.1
IL_0224: ldarg.2
IL_0225: ldfld UnityEngine.Vector3 NetSegment::m_startDirection
IL_022A: call static UnityEngine.Vector3
UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a)
IL_022F: ldloca.s 20 (System.Int32)
IL_0231: ldloca.s 21 (System.Int32)
IL_0233: ldloca.s 22 (System.Int32)
IL_0235: ldloca.s 23 (System.Int32)
IL_0237: ldloca.s 24 (System.Int32)
IL_0239: ldloca.s 25 (System.Int32)
IL_023B: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, Direction directions, LaneType laneTypes, VehicleType
vehicleTypes, UnityEngine.Vector3 direction, System.Int32& left, System.Int32&
forward, System.Int32& right, System.Int32& left2, System.Int32& forward2,
System.Int32& right2)
IL_0240: ldloc.0
IL_0241: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0246: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_024B: ldarg.2
IL_024C: ldfld System.UInt16 NetSegment::m_startNode
IL_0251: ldelema NetNode
IL_0256: ldfld Flags NetNode::m_flags
IL_025B: ldc.i4 1136
IL_0260: and
IL_0261: brfalse => Label5
IL_0266: ldloc.s 20 (System.Int32)
IL_0268: ldloc.s 21 (System.Int32)
IL_026A: add
IL_026B: ldloc.s 22 (System.Int32)
IL_026D: add
IL_026E: brtrue => Label6
IL_0273: ldc.i4.1
IL_0274: stloc.s 27 (System.Boolean)
IL_0276: br => Label7
IL_027B: Label6
IL_027B: ldc.i4.1
IL_027C: stloc.s 26 (System.Boolean)
IL_027E: Label5
IL_027E: Label7
IL_027E: ldc.i4.0
IL_027F: stloc.s 28 (NetLane+Flags)
IL_0281: ldloc.s 15 (System.Int32)
IL_0283: brfalse => Label8
IL_0288: ldloc.s 12 (System.Int32)
IL_028A: brtrue => Label9
IL_028F: ldloc.s 28 (NetLane+Flags)
IL_0291: ldarg.2
IL_0292: ldfld Flags NetSegment::m_flags
IL_0297: ldc.i4.s 16
IL_0299: and
IL_029A: brfalse => Label10
IL_029F: ldc.i4 4096
IL_02A4: br => Label11
IL_02A9: Label10
IL_02A9: ldc.i4 16384
IL_02AE: Label11
IL_02AE: or
IL_02AF: stloc.s 28 (NetLane+Flags)
IL_02B1: Label8
IL_02B1: Label9
IL_02B1: ldloc.s 17 (System.Int32)
IL_02B3: brfalse => Label12
IL_02B8: ldloc.s 14 (System.Int32)
IL_02BA: brtrue => Label13
IL_02BF: ldloc.s 28 (NetLane+Flags)
IL_02C1: ldarg.2
IL_02C2: ldfld Flags NetSegment::m_flags
IL_02C7: ldc.i4.s 16
IL_02C9: and
IL_02CA: brfalse => Label14
IL_02CF: ldc.i4 8192
IL_02D4: br => Label15
IL_02D9: Label14
IL_02D9: ldc.i4 32768
IL_02DE: Label15
IL_02DE: or
IL_02DF: stloc.s 28 (NetLane+Flags)
IL_02E1: Label12
IL_02E1: Label13
IL_02E1: ldloc.s 23 (System.Int32)
IL_02E3: brfalse => Label16
IL_02E8: ldloc.s 20 (System.Int32)
IL_02EA: brtrue => Label17
IL_02EF: ldloc.s 28 (NetLane+Flags)
IL_02F1: ldarg.2
IL_02F2: ldfld Flags NetSegment::m_flags
IL_02F7: ldc.i4.s 16
IL_02F9: and
IL_02FA: brfalse => Label18
IL_02FF: ldc.i4 16384
IL_0304: br => Label19
IL_0309: Label18
IL_0309: ldc.i4 4096
IL_030E: Label19
IL_030E: or
IL_030F: stloc.s 28 (NetLane+Flags)
IL_0311: Label16
IL_0311: Label17
IL_0311: ldloc.s 25 (System.Int32)
IL_0313: brfalse => Label20
IL_0318: ldloc.s 22 (System.Int32)
IL_031A: brtrue => Label21
IL_031F: ldloc.s 28 (NetLane+Flags)
IL_0321: ldarg.2
IL_0322: ldfld Flags NetSegment::m_flags
IL_0327: ldc.i4.s 16
IL_0329: and
IL_032A: brfalse => Label22
IL_032F: ldc.i4 32768
IL_0334: br => Label23
IL_0339: Label22
IL_0339: ldc.i4 8192
IL_033E: Label23
IL_033E: or
IL_033F: stloc.s 28 (NetLane+Flags)
IL_0341: Label20
IL_0341: Label21
IL_0341: ldarg.2
IL_0342: ldfld Flags NetSegment::m_flags
IL_0347: ldc.i4 1073741824
IL_034C: and
IL_034D: brfalse => Label24
IL_0352: ldloc.s 28 (NetLane+Flags)
IL_0354: ldarg.2
IL_0355: ldfld Flags NetSegment::m_flags
IL_035A: ldc.i4.s 16
IL_035C: and
IL_035D: brfalse => Label25
IL_0362: ldc.i4 2048
IL_0367: br => Label26
IL_036C: Label25
IL_036C: ldc.i4 1024
IL_0371: Label26
IL_0371: or
IL_0372: stloc.s 28 (NetLane+Flags)
IL_0374: Label24
IL_0374: ldarg.2
IL_0375: ldfld Flags NetSegment::m_flags
IL_037A: ldc.i4 -2147483648
IL_037F: and
IL_0380: brfalse => Label27
IL_0385: ldloc.s 28 (NetLane+Flags)
IL_0387: ldarg.2
IL_0388: ldfld Flags NetSegment::m_flags
IL_038D: ldc.i4.s 16
IL_038F: and
IL_0390: brfalse => Label28
IL_0395: ldc.i4 1024
IL_039A: br => Label29
IL_039F: Label28
IL_039F: ldc.i4 2048
IL_03A4: Label29
IL_03A4: or
IL_03A5: stloc.s 28 (NetLane+Flags)
IL_03A7: Label27
IL_03A7: ldc.r4 0
IL_03AC: stloc.s 29 (System.Single)
IL_03AE: ldc.r4 0
IL_03B3: stloc.s 30 (System.Single)
IL_03B5: ldc.i4.0
IL_03B6: stloc.s 31 (System.UInt32)
IL_03B8: ldarg.2
IL_03B9: ldfld System.UInt32 NetSegment::m_lanes
IL_03BE: stloc.s 32 (System.UInt32)
IL_03C0: ldc.i4.0
IL_03C1: stloc.s 33 (System.Int32)
IL_03C3: br => Label30
IL_03C8: Label89
IL_03C8: ldloc.s 32 (System.UInt32)
IL_03CA: brtrue => Label31
IL_03CF: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_03D4: ldloca.s 32 (System.UInt32)
IL_03D6: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_03DB: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_03E0: ldarg.1
IL_03E1: ldc.i4.1
IL_03E2: callvirt System.Boolean NetManager::CreateLanes(System.UInt32&
firstLane, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segment,
System.Int32 count)
IL_03E7: brfalse => Label32
IL_03EC: ldloc.s 31 (System.UInt32)
IL_03EE: brfalse => Label33
IL_03F3: ldloc.0
IL_03F4: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_03F9: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_03FE: ldloc.s 31 (System.UInt32)
IL_0400: conv.u
IL_0401: ldelema NetLane
IL_0406: ldloc.s 32 (System.UInt32)
IL_0408: stfld System.UInt32 NetLane::m_nextLane
IL_040D: br => Label34
IL_0412: Label33
IL_0412: ldarg.2
IL_0413: ldloc.s 32 (System.UInt32)
IL_0415: stfld System.UInt32 NetSegment::m_lanes
IL_041A: Label34
IL_041A: br => Label35
IL_041F: Label32
IL_041F: br => Label36
IL_0424: Label31
IL_0424: Label35
IL_0424: ldarg.0
IL_0425: ldfld NetInfo NetAI::m_info
IL_042A: ldfld Lane[] NetInfo::m_lanes
IL_042F: ldloc.s 33 (System.Int32)
IL_0431: ldelem.ref
IL_0432: stloc.s 34 (NetInfo+Lane)
IL_0434: ldloc.s 34 (NetInfo+Lane)
IL_0436: ldfld System.Single Lane::m_position
IL_043B: ldarg.0
IL_043C: ldfld NetInfo NetAI::m_info
IL_0441: ldfld System.Single NetInfo::m_halfWidth
IL_0446: ldc.r4 2
IL_044B: mul
IL_044C: div
IL_044D: ldc.r4 0.5
IL_0452: add
IL_0453: stloc.s 35 (System.Single)
IL_0455: ldarg.2
IL_0456: ldfld Flags NetSegment::m_flags
IL_045B: ldc.i4.s 16
IL_045D: and
IL_045E: brfalse => Label37
IL_0463: ldc.r4 1
IL_0468: ldloc.s 35 (System.Single)
IL_046A: sub
IL_046B: stloc.s 35 (System.Single)
IL_046D: Label37
IL_046D: ldloc.2
IL_046E: ldloc.3
IL_046F: ldloc.2
IL_0470: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0475: ldloc.s 35 (System.Single)
IL_0477: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_047C: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0481: stloc.s 36 (UnityEngine.Vector3)
IL_0483: ldloc.s 6 (UnityEngine.Vector3)
IL_0485: ldloc.s 7 (UnityEngine.Vector3)
IL_0487: ldloc.s 35 (System.Single)
IL_0489: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_048E: stloc.s 37 (UnityEngine.Vector3)
IL_0490: ldloc.s 4 (UnityEngine.Vector3)
IL_0492: ldloc.s 5 (UnityEngine.Vector3)
IL_0494: ldloc.s 4 (UnityEngine.Vector3)
IL_0496: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_049B: ldloc.s 35 (System.Single)
IL_049D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_04A2: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_04A7: stloc.s 38 (UnityEngine.Vector3)
IL_04A9: ldloc.s 8 (UnityEngine.Vector3)
IL_04AB: ldloc.s 9 (UnityEngine.Vector3)
IL_04AD: ldloc.s 35 (System.Single)
IL_04AF: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_04B4: stloc.s 39 (UnityEngine.Vector3)
IL_04B6: ldloca.s 36 (UnityEngine.Vector3)
IL_04B8: dup
IL_04B9: ldfld System.Single UnityEngine.Vector3::y
IL_04BE: ldloc.s 34 (NetInfo+Lane)
IL_04C0: ldfld System.Single Lane::m_verticalOffset
IL_04C5: add
IL_04C6: stfld System.Single UnityEngine.Vector3::y
IL_04CB: ldloca.s 38 (UnityEngine.Vector3)
IL_04CD: dup
IL_04CE: ldfld System.Single UnityEngine.Vector3::y
IL_04D3: ldloc.s 34 (NetInfo+Lane)
IL_04D5: ldfld System.Single Lane::m_verticalOffset
IL_04DA: add
IL_04DB: stfld System.Single UnityEngine.Vector3::y
IL_04E0: ldloc.s 36 (UnityEngine.Vector3)
IL_04E2: ldloc.s 37 (UnityEngine.Vector3)
IL_04E4: ldloc.s 38 (UnityEngine.Vector3)
IL_04E6: ldloc.s 39 (UnityEngine.Vector3)
IL_04E8: ldloc.s 10 (System.Boolean)
IL_04EA: ldloc.s 11 (System.Boolean)
IL_04EC: ldloca.s 40 (UnityEngine.Vector3)
IL_04EE: ldloca.s 41 (UnityEngine.Vector3)
IL_04F0: 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_04F5: ldloc.0
IL_04F6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_04FB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0500: ldloc.s 32 (System.UInt32)
IL_0502: conv.u
IL_0503: ldelema NetLane
IL_0508: ldfld System.UInt16 NetLane::m_flags
IL_050D: stloc.s 42 (NetLane+Flags)
IL_050F: ldloc.s 28 (NetLane+Flags)
IL_0511: stloc.s 43 (NetLane+Flags)
IL_0513: ldloc.s 42 (NetLane+Flags)
IL_0515: ldc.i4 -64753
IL_051A: and
IL_051B: stloc.s 42 (NetLane+Flags)
IL_051D: ldloc.s 34 (NetInfo+Lane)
IL_051F: ldfld Direction Lane::m_finalDirection
IL_0524: ldc.i4.3
IL_0525: and
IL_0526: conv.u1
IL_0527: ldc.i4.2
IL_0528: bne.un => Label38
IL_052D: ldloc.s 43 (NetLane+Flags)
IL_052F: ldc.i4 -2049
IL_0534: and
IL_0535: stloc.s 43 (NetLane+Flags)
IL_0537: Label38
IL_0537: ldloc.s 34 (NetInfo+Lane)
IL_0539: ldfld Direction Lane::m_finalDirection
IL_053E: ldc.i4.3
IL_053F: and
IL_0540: conv.u1
IL_0541: ldc.i4.1
IL_0542: bne.un => Label39
IL_0547: ldloc.s 43 (NetLane+Flags)
IL_0549: ldc.i4 -1025
IL_054E: and
IL_054F: stloc.s 43 (NetLane+Flags)
IL_0551: Label39
IL_0551: ldloc.s 34 (NetInfo+Lane)
IL_0553: ldfld VehicleType Lane::m_vehicleType
IL_0558: ldc.i4 2048
IL_055D: and
IL_055E: brfalse => Label40
IL_0563: ldloc.s 43 (NetLane+Flags)
IL_0565: ldc.i4 -3073
IL_056A: and
IL_056B: stloc.s 43 (NetLane+Flags)
IL_056D: Label40
IL_056D: ldloc.s 42 (NetLane+Flags)
IL_056F: ldloc.s 43 (NetLane+Flags)
IL_0571: or
IL_0572: stloc.s 42 (NetLane+Flags)
IL_0574: ldloc.1
IL_0575: brfalse => Label41
IL_057A: ldloc.s 42 (NetLane+Flags)
IL_057C: ldc.i4.4
IL_057D: or
IL_057E: stloc.s 42 (NetLane+Flags)
IL_0580: br => Label42
IL_0585: Label41
IL_0585: ldloc.s 42 (NetLane+Flags)
IL_0587: ldc.i4.s -5
IL_0589: and
IL_058A: stloc.s 42 (NetLane+Flags)
IL_058C: Label42
IL_058C: ldc.i4.0
IL_058D: stloc.s 44 (System.Int32)
IL_058F: ldc.i4 255
IL_0594: stloc.s 45 (System.Int32)
IL_0596: ldloc.s 34 (NetInfo+Lane)
IL_0598: ldfld LaneType Lane::m_laneType
IL_059D: ldc.i4.s 33
IL_059F: and
IL_05A0: conv.u1
IL_05A1: brfalse => Label43
IL_05A6: ldloc.s 34 (NetInfo+Lane)
IL_05A8: ldfld Direction Lane::m_finalDirection
IL_05AD: ldc.i4.1
IL_05AE: and
IL_05AF: conv.u1
IL_05B0: ldc.i4.0
IL_05B1: ceq
IL_05B3: ldc.i4.0
IL_05B4: ceq
IL_05B6: ldarg.2
IL_05B7: ldfld Flags NetSegment::m_flags
IL_05BC: ldc.i4.s 16
IL_05BE: and
IL_05BF: ldc.i4.0
IL_05C0: ceq
IL_05C2: ceq
IL_05C4: stloc.s 46 (System.Boolean)
IL_05C6: ldloc.s 46 (System.Boolean)
IL_05C8: brfalse => Label44
IL_05CD: ldloc.s 12 (System.Int32)
IL_05CF: stloc.s 47 (System.Int32)
IL_05D1: ldloc.s 13 (System.Int32)
IL_05D3: stloc.s 48 (System.Int32)
IL_05D5: ldloc.s 14 (System.Int32)
IL_05D7: stloc.s 49 (System.Int32)
IL_05D9: br => Label45
IL_05DE: Label44
IL_05DE: ldloc.s 20 (System.Int32)
IL_05E0: stloc.s 47 (System.Int32)
IL_05E2: ldloc.s 21 (System.Int32)
IL_05E4: stloc.s 48 (System.Int32)
IL_05E6: ldloc.s 22 (System.Int32)
IL_05E8: stloc.s 49 (System.Int32)
IL_05EA: Label45
IL_05EA: ldloc.s 34 (NetInfo+Lane)
IL_05EC: ldfld Direction Lane::m_finalDirection
IL_05F1: ldc.i4.1
IL_05F2: and
IL_05F3: conv.u1
IL_05F4: brfalse => Label46
IL_05F9: ldloc.s 34 (NetInfo+Lane)
IL_05FB: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0600: stloc.s 50 (System.Int32)
IL_0602: ldloc.s 34 (NetInfo+Lane)
IL_0604: ldfld System.Int32 Lane::m_similarLaneCount
IL_0609: ldloc.s 34 (NetInfo+Lane)
IL_060B: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0610: sub
IL_0611: ldc.i4.1
IL_0612: sub
IL_0613: stloc.s 51 (System.Int32)
IL_0615: br => Label47
IL_061A: Label46
IL_061A: ldloc.s 34 (NetInfo+Lane)
IL_061C: ldfld System.Int32 Lane::m_similarLaneCount
IL_0621: ldloc.s 34 (NetInfo+Lane)
IL_0623: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0628: sub
IL_0629: ldc.i4.1
IL_062A: sub
IL_062B: stloc.s 50 (System.Int32)
IL_062D: ldloc.s 34 (NetInfo+Lane)
IL_062F: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0634: stloc.s 51 (System.Int32)
IL_0636: Label47
IL_0636: ldloc.s 47 (System.Int32)
IL_0638: ldloc.s 48 (System.Int32)
IL_063A: add
IL_063B: ldloc.s 49 (System.Int32)
IL_063D: add
IL_063E: stloc.s 52 (System.Int32)
IL_0640: ldc.i4 255
IL_0645: stloc.s 44 (System.Int32)
IL_0647: ldc.i4.0
IL_0648: stloc.s 45 (System.Int32)
IL_064A: ldloc.s 52 (System.Int32)
IL_064C: brfalse => Label48
IL_0651: ldloc.s 34 (NetInfo+Lane)
IL_0653: ldfld System.Int32 Lane::m_similarLaneCount
IL_0658: ldloc.s 52 (System.Int32)
IL_065A: ble => Label49
IL_065F: ldloc.s 52 (System.Int32)
IL_0661: ldc.i4.0
IL_0662: ble => Label50
IL_0667: ldloc.s 52 (System.Int32)
IL_0669: ldloc.s 50 (System.Int32)
IL_066B: mul
IL_066C: ldloc.s 34 (NetInfo+Lane)
IL_066E: ldfld System.Int32 Lane::m_similarLaneCount
IL_0673: div
IL_0674: stloc.s 44 (System.Int32)
IL_0676: ldloc.s 52 (System.Int32)
IL_0678: ldloc.s 52 (System.Int32)
IL_067A: ldloc.s 51 (System.Int32)
IL_067C: mul
IL_067D: ldloc.s 34 (NetInfo+Lane)
IL_067F: ldfld System.Int32 Lane::m_similarLaneCount
IL_0684: div
IL_0685: sub
IL_0686: stloc.s 45 (System.Int32)
IL_0688: ldloc.s 42 (NetLane+Flags)
IL_068A: ldc.i4 128
IL_068F: or
IL_0690: stloc.s 42 (NetLane+Flags)
IL_0692: ldloc.s 44 (System.Int32)
IL_0694: ldloc.s 47 (System.Int32)
IL_0696: bge => Label51
IL_069B: ldloc.s 42 (NetLane+Flags)
IL_069D: ldc.i4.s 32
IL_069F: or
IL_06A0: stloc.s 42 (NetLane+Flags)
IL_06A2: Label51
IL_06A2: ldloc.s 52 (System.Int32)
IL_06A4: ldloc.s 45 (System.Int32)
IL_06A6: sub
IL_06A7: ldloc.s 49 (System.Int32)
IL_06A9: bge => Label52
IL_06AE: ldloc.s 42 (NetLane+Flags)
IL_06B0: ldc.i4.s 64
IL_06B2: or
IL_06B3: stloc.s 42 (NetLane+Flags)
IL_06B5: Label52
IL_06B5: ldloc.s 48 (System.Int32)
IL_06B7: brfalse => Label53
IL_06BC: ldloc.s 44 (System.Int32)
IL_06BE: ldloc.s 47 (System.Int32)
IL_06C0: ldloc.s 48 (System.Int32)
IL_06C2: add
IL_06C3: bge => Label54
IL_06C8: ldloc.s 45 (System.Int32)
IL_06CA: ldloc.s 47 (System.Int32)
IL_06CC: ble => Label55
IL_06D1: ldloc.s 42 (NetLane+Flags)
IL_06D3: ldc.i4.s 16
IL_06D5: or
IL_06D6: stloc.s 42 (NetLane+Flags)
IL_06D8: Label53
IL_06D8: Label54
IL_06D8: Label55
IL_06D8: br => Label56
IL_06DD: Label49
IL_06DD: Label50
IL_06DD: ldloc.s 34 (NetInfo+Lane)
IL_06DF: ldfld System.Int32 Lane::m_similarLaneCount
IL_06E4: ldloc.s 52 (System.Int32)
IL_06E6: blt => Label57
IL_06EB: ldloc.s 47 (System.Int32)
IL_06ED: stloc.s 53 (System.Int32)
IL_06EF: ldloc.s 49 (System.Int32)
IL_06F1: stloc.s 54 (System.Int32)
IL_06F3: br => Label58
IL_06F8: Label57
IL_06F8: ldloc.s 47 (System.Int32)
IL_06FA: ldloc.s 34 (NetInfo+Lane)
IL_06FC: ldfld System.Int32 Lane::m_similarLaneCount
IL_0701: mul
IL_0702: ldloc.s 52 (System.Int32)
IL_0704: ldloc.s 48 (System.Int32)
IL_0706: ldc.i4.1
IL_0707: shr
IL_0708: add
IL_0709: div
IL_070A: stloc.s 53 (System.Int32)
IL_070C: ldloc.s 49 (System.Int32)
IL_070E: ldloc.s 34 (NetInfo+Lane)
IL_0710: ldfld System.Int32 Lane::m_similarLaneCount
IL_0715: mul
IL_0716: ldloc.s 52 (System.Int32)
IL_0718: ldloc.s 48 (System.Int32)
IL_071A: ldc.i4.1
IL_071B: shr
IL_071C: add
IL_071D: div
IL_071E: stloc.s 54 (System.Int32)
IL_0720: Label58
IL_0720: ldloc.s 53 (System.Int32)
IL_0722: stloc.s 55 (System.Int32)
IL_0724: ldloc.s 34 (NetInfo+Lane)
IL_0726: ldfld System.Int32 Lane::m_similarLaneCount
IL_072B: ldloc.s 53 (System.Int32)
IL_072D: sub
IL_072E: ldloc.s 54 (System.Int32)
IL_0730: sub
IL_0731: stloc.s 56 (System.Int32)
IL_0733: ldloc.s 54 (System.Int32)
IL_0735: stloc.s 57 (System.Int32)
IL_0737: ldloc.s 56 (System.Int32)
IL_0739: ldc.i4.0
IL_073A: ble => Label59
IL_073F: ldloc.s 47 (System.Int32)
IL_0741: ldloc.s 53 (System.Int32)
IL_0743: ble => Label60
IL_0748: ldloc.s 55 (System.Int32)
IL_074A: ldc.i4.1
IL_074B: add
IL_074C: stloc.s 55 (System.Int32)
IL_074E: Label60
IL_074E: ldloc.s 49 (System.Int32)
IL_0750: ldloc.s 54 (System.Int32)
IL_0752: ble => Label61
IL_0757: ldloc.s 57 (System.Int32)
IL_0759: ldc.i4.1
IL_075A: add
IL_075B: stloc.s 57 (System.Int32)
IL_075D: Label59
IL_075D: Label61
IL_075D: ldloc.s 50 (System.Int32)
IL_075F: ldloc.s 55 (System.Int32)
IL_0761: bge => Label62
IL_0766: ldloc.s 50 (System.Int32)
IL_0768: ldloc.s 47 (System.Int32)
IL_076A: mul
IL_076B: ldloc.s 55 (System.Int32)
IL_076D: add
IL_076E: ldc.i4.1
IL_076F: sub
IL_0770: ldloc.s 55 (System.Int32)
IL_0772: div
IL_0773: stloc.s 58 (System.Int32)
IL_0775: ldloc.s 50 (System.Int32)
IL_0777: ldc.i4.1
IL_0778: add
IL_0779: ldloc.s 47 (System.Int32)
IL_077B: mul
IL_077C: ldloc.s 55 (System.Int32)
IL_077E: add
IL_077F: ldc.i4.1
IL_0780: sub
IL_0781: ldloc.s 55 (System.Int32)
IL_0783: div
IL_0784: stloc.s 59 (System.Int32)
IL_0786: ldloc.s 59 (System.Int32)
IL_0788: ldloc.s 58 (System.Int32)
IL_078A: ble => Label63
IL_078F: ldloc.s 42 (NetLane+Flags)
IL_0791: ldc.i4.s 32
IL_0793: or
IL_0794: stloc.s 42 (NetLane+Flags)
IL_0796: ldloc.s 44 (System.Int32)
IL_0798: ldloc.s 58 (System.Int32)
IL_079A: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_079F: stloc.s 44 (System.Int32)
IL_07A1: ldloc.s 45 (System.Int32)
IL_07A3: ldloc.s 59 (System.Int32)
IL_07A5: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_07AA: stloc.s 45 (System.Int32)
IL_07AC: Label62
IL_07AC: Label63
IL_07AC: ldloc.s 50 (System.Int32)
IL_07AE: ldloc.s 53 (System.Int32)
IL_07B0: blt => Label64
IL_07B5: ldloc.s 51 (System.Int32)
IL_07B7: ldloc.s 54 (System.Int32)
IL_07B9: blt => Label65
IL_07BE: ldloc.s 48 (System.Int32)
IL_07C0: brfalse => Label66
IL_07C5: ldloc.s 34 (NetInfo+Lane)
IL_07C7: ldfld System.Int32 Lane::m_similarLaneCount
IL_07CC: ldloc.s 52 (System.Int32)
IL_07CE: ble => Label67
IL_07D3: ldloc.s 53 (System.Int32)
IL_07D5: ldc.i4.1
IL_07D6: add
IL_07D7: stloc.s 53 (System.Int32)
IL_07D9: Label67
IL_07D9: ldloc.s 47 (System.Int32)
IL_07DB: ldloc.s 50 (System.Int32)
IL_07DD: ldloc.s 53 (System.Int32)
IL_07DF: sub
IL_07E0: ldloc.s 48 (System.Int32)
IL_07E2: mul
IL_07E3: ldloc.s 56 (System.Int32)
IL_07E5: add
IL_07E6: ldc.i4.1
IL_07E7: sub
IL_07E8: ldloc.s 56 (System.Int32)
IL_07EA: div
IL_07EB: add
IL_07EC: stloc.s 60 (System.Int32)
IL_07EE: ldloc.s 47 (System.Int32)
IL_07F0: ldloc.s 50 (System.Int32)
IL_07F2: ldc.i4.1
IL_07F3: add
IL_07F4: ldloc.s 53 (System.Int32)
IL_07F6: sub
IL_07F7: ldloc.s 48 (System.Int32)
IL_07F9: mul
IL_07FA: ldloc.s 56 (System.Int32)
IL_07FC: add
IL_07FD: ldc.i4.1
IL_07FE: sub
IL_07FF: ldloc.s 56 (System.Int32)
IL_0801: div
IL_0802: add
IL_0803: stloc.s 61 (System.Int32)
IL_0805: ldloc.s 61 (System.Int32)
IL_0807: ldloc.s 60 (System.Int32)
IL_0809: ble => Label68
IL_080E: ldloc.s 42 (NetLane+Flags)
IL_0810: ldc.i4.s 16
IL_0812: or
IL_0813: stloc.s 42 (NetLane+Flags)
IL_0815: ldloc.s 44 (System.Int32)
IL_0817: ldloc.s 60 (System.Int32)
IL_0819: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_081E: stloc.s 44 (System.Int32)
IL_0820: ldloc.s 45 (System.Int32)
IL_0822: ldloc.s 61 (System.Int32)
IL_0824: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0829: stloc.s 45 (System.Int32)
IL_082B: Label64
IL_082B: Label65
IL_082B: Label66
IL_082B: Label68
IL_082B: ldloc.s 51 (System.Int32)
IL_082D: ldloc.s 57 (System.Int32)
IL_082F: bge => Label69
IL_0834: ldloc.s 52 (System.Int32)
IL_0836: ldloc.s 51 (System.Int32)
IL_0838: ldc.i4.1
IL_0839: add
IL_083A: ldloc.s 49 (System.Int32)
IL_083C: mul
IL_083D: ldloc.s 57 (System.Int32)
IL_083F: add
IL_0840: ldc.i4.1
IL_0841: sub
IL_0842: ldloc.s 57 (System.Int32)
IL_0844: div
IL_0845: sub
IL_0846: stloc.s 62 (System.Int32)
IL_0848: ldloc.s 52 (System.Int32)
IL_084A: ldloc.s 51 (System.Int32)
IL_084C: ldloc.s 49 (System.Int32)
IL_084E: mul
IL_084F: ldloc.s 57 (System.Int32)
IL_0851: add
IL_0852: ldc.i4.1
IL_0853: sub
IL_0854: ldloc.s 57 (System.Int32)
IL_0856: div
IL_0857: sub
IL_0858: stloc.s 63 (System.Int32)
IL_085A: ldloc.s 63 (System.Int32)
IL_085C: ldloc.s 62 (System.Int32)
IL_085E: ble => Label70
IL_0863: ldloc.s 42 (NetLane+Flags)
IL_0865: ldc.i4.s 64
IL_0867: or
IL_0868: stloc.s 42 (NetLane+Flags)
IL_086A: ldloc.s 44 (System.Int32)
IL_086C: ldloc.s 62 (System.Int32)
IL_086E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0873: stloc.s 44 (System.Int32)
IL_0875: ldloc.s 45 (System.Int32)
IL_0877: ldloc.s 63 (System.Int32)
IL_0879: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_087E: stloc.s 45 (System.Int32)
IL_0880: Label69
IL_0880: Label70
IL_0880: ldarg.0
IL_0881: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_0886: brfalse => Label71
IL_088B: ldloc.s 42 (NetLane+Flags)
IL_088D: ldc.i4.s 96
IL_088F: and
IL_0890: ldc.i4.s 32
IL_0892: bne.un => Label72
IL_0897: ldloc.s 42 (NetLane+Flags)
IL_0899: ldc.i4.s 16
IL_089B: and
IL_089C: brfalse => Label73
IL_08A1: ldloc.s 48 (System.Int32)
IL_08A3: ldc.i4.2
IL_08A4: blt => Label74
IL_08A9: ldloc.s 47 (System.Int32)
IL_08AB: ldc.i4.1
IL_08AC: bne.un => Label75
IL_08B1: Label73
IL_08B1: ldloc.s 45 (System.Int32)
IL_08B3: ldloc.s 44 (System.Int32)
IL_08B5: ldc.i4.1
IL_08B6: add
IL_08B7: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_08BC: stloc.s 45 (System.Int32)
IL_08BE: Label74
IL_08BE: Label75
IL_08BE: br => Label76
IL_08C3: Label72
IL_08C3: ldloc.s 42 (NetLane+Flags)
IL_08C5: ldc.i4.s 96
IL_08C7: and
IL_08C8: ldc.i4.s 64
IL_08CA: bne.un => Label77
IL_08CF: ldloc.s 42 (NetLane+Flags)
IL_08D1: ldc.i4.s 16
IL_08D3: and
IL_08D4: brfalse => Label78
IL_08D9: ldloc.s 48 (System.Int32)
IL_08DB: ldc.i4.2
IL_08DC: blt => Label79
IL_08E1: ldloc.s 49 (System.Int32)
IL_08E3: ldc.i4.1
IL_08E4: bne.un => Label80
IL_08E9: Label78
IL_08E9: ldloc.s 44 (System.Int32)
IL_08EB: ldloc.s 45 (System.Int32)
IL_08ED: ldc.i4.1
IL_08EE: sub
IL_08EF: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_08F4: stloc.s 44 (System.Int32)
IL_08F6: Label48
IL_08F6: Label56
IL_08F6: Label71
IL_08F6: Label76
IL_08F6: Label77
IL_08F6: Label79
IL_08F6: Label80
IL_08F6: ldloc.s 46 (System.Boolean)
IL_08F8: brfalse => Label81
IL_08FD: ldloc.s 18 (System.Boolean)
IL_08FF: brfalse => Label82
IL_0904: ldloc.s 42 (NetLane+Flags)
IL_0906: ldc.i4.s -113
IL_0908: and
IL_0909: stloc.s 42 (NetLane+Flags)
IL_090B: br => Label83
IL_0910: Label82
IL_0910: ldloc.s 19 (System.Boolean)
IL_0912: brfalse => Label84
IL_0917: ldloc.s 42 (NetLane+Flags)
IL_0919: ldc.i4.s 16
IL_091B: or
IL_091C: stloc.s 42 (NetLane+Flags)
IL_091E: Label83
IL_091E: Label84
IL_091E: br => Label85
IL_0923: Label81
IL_0923: ldloc.s 26 (System.Boolean)
IL_0925: brfalse => Label86
IL_092A: ldloc.s 42 (NetLane+Flags)
IL_092C: ldc.i4.s -113
IL_092E: and
IL_092F: stloc.s 42 (NetLane+Flags)
IL_0931: br => Label87
IL_0936: Label86
IL_0936: ldloc.s 27 (System.Boolean)
IL_0938: brfalse => Label88
IL_093D: ldloc.s 42 (NetLane+Flags)
IL_093F: ldc.i4.s 16
IL_0941: or
IL_0942: stloc.s 42 (NetLane+Flags)
IL_0944: Label43
IL_0944: Label85
IL_0944: Label87
IL_0944: Label88
IL_0944: ldloc.0
IL_0945: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_094A: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_094F: ldloc.s 32 (System.UInt32)
IL_0951: conv.u
IL_0952: ldelema NetLane
IL_0957: ldloc.s 36 (UnityEngine.Vector3)
IL_0959: ldloc.s 40 (UnityEngine.Vector3)
IL_095B: ldloc.s 41 (UnityEngine.Vector3)
IL_095D: ldloc.s 38 (UnityEngine.Vector3)
IL_095F: newobj System.Void
ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3
_b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d)
IL_0964: stfld ColossalFramework.Math.Bezier3 NetLane::m_bezier
IL_0969: ldloc.0
IL_096A: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_096F: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0974: ldloc.s 32 (System.UInt32)
IL_0976: conv.u
IL_0977: ldelema NetLane
IL_097C: ldarg.1
IL_097D: stfld System.UInt16 NetLane::m_segment
IL_0982: ldloc.0
IL_0983: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0988: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_098D: ldloc.s 32 (System.UInt32)
IL_098F: conv.u
IL_0990: ldelema NetLane
IL_0995: ldloc.s 42 (NetLane+Flags)
IL_0997: conv.u2
IL_0998: stfld System.UInt16 NetLane::m_flags
IL_099D: ldloc.0
IL_099E: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09A3: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09A8: ldloc.s 32 (System.UInt32)
IL_09AA: conv.u
IL_09AB: ldelema NetLane
IL_09B0: ldloc.s 44 (System.Int32)
IL_09B2: conv.u1
IL_09B3: stfld System.Byte NetLane::m_firstTarget
IL_09B8: ldloc.0
IL_09B9: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09BE: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09C3: ldloc.s 32 (System.UInt32)
IL_09C5: conv.u
IL_09C6: ldelema NetLane
IL_09CB: ldloc.s 45 (System.Int32)
IL_09CD: conv.u1
IL_09CE: stfld System.Byte NetLane::m_lastTarget
IL_09D3: ldloc.s 29 (System.Single)
IL_09D5: ldloc.0
IL_09D6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09DB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09E0: ldloc.s 32 (System.UInt32)
IL_09E2: conv.u
IL_09E3: ldelema NetLane
IL_09E8: call System.Single NetLane::UpdateLength()
IL_09ED: add
IL_09EE: stloc.s 29 (System.Single)
IL_09F0: ldloc.s 30 (System.Single)
IL_09F2: ldc.r4 1
IL_09F7: add
IL_09F8: stloc.s 30 (System.Single)
IL_09FA: ldloc.s 32 (System.UInt32)
IL_09FC: stloc.s 31 (System.UInt32)
IL_09FE: ldloc.0
IL_09FF: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0A04: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0A09: ldloc.s 32 (System.UInt32)
IL_0A0B: conv.u
IL_0A0C: ldelema NetLane
IL_0A11: ldfld System.UInt32 NetLane::m_nextLane
IL_0A16: stloc.s 32 (System.UInt32)
IL_0A18: ldloc.s 33 (System.Int32)
IL_0A1A: ldc.i4.1
IL_0A1B: add
IL_0A1C: stloc.s 33 (System.Int32)
IL_0A1E: Label30
IL_0A1E: ldloc.s 33 (System.Int32)
IL_0A20: ldarg.0
IL_0A21: ldfld NetInfo NetAI::m_info
IL_0A26: ldfld Lane[] NetInfo::m_lanes
IL_0A2B: ldlen
IL_0A2C: conv.i4
IL_0A2D: blt => Label89
IL_0A32: Label36
IL_0A32: ldloc.s 30 (System.Single)
IL_0A34: ldc.r4 0
IL_0A39: beq => Label90
IL_0A3E: ldarg.2
IL_0A3F: ldloc.s 29 (System.Single)
IL_0A41: ldloc.s 30 (System.Single)
IL_0A43: div
IL_0A44: stfld System.Single NetSegment::m_averageLength
IL_0A49: br => Label91
IL_0A4E: Label90
IL_0A4E: ldarg.2
IL_0A4F: ldc.r4 0
IL_0A54: stfld System.Single NetSegment::m_averageLength
IL_0A59: Label91
IL_0A59: ldc.i4.0
IL_0A5A: stloc.s 64 (System.Boolean)
IL_0A5C: ldarg.2
IL_0A5D: ldfld System.Single NetSegment::m_averageLength
IL_0A62: ldc.r4 11
IL_0A67: bge.un => Label92
IL_0A6C: ldloc.0
IL_0A6D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0A72: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A77: ldarg.2
IL_0A78: ldfld System.UInt16 NetSegment::m_startNode
IL_0A7D: ldelema NetNode
IL_0A82: ldfld Flags NetNode::m_flags
IL_0A87: ldc.i4 128
IL_0A8C: and
IL_0A8D: brfalse => Label93
IL_0A92: ldloc.0
IL_0A93: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0A98: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A9D: ldarg.2
IL_0A9E: ldfld System.UInt16 NetSegment::m_endNode
IL_0AA3: ldelema NetNode
IL_0AA8: ldfld Flags NetNode::m_flags
IL_0AAD: ldc.i4 128
IL_0AB2: and
IL_0AB3: brfalse => Label94
IL_0AB8: ldc.i4.1
IL_0AB9: stloc.s 64 (System.Boolean)
IL_0ABB: Label92
IL_0ABB: Label93
IL_0ABB: Label94
IL_0ABB: ldarg.2
IL_0ABC: ldfld System.UInt32 NetSegment::m_lanes
IL_0AC1: stloc.s 32 (System.UInt32)
IL_0AC3: ldc.i4.0
IL_0AC4: stloc.s 65 (System.Int32)
IL_0AC6: br => Label95
IL_0ACB: Label98
IL_0ACB: ldloc.0
IL_0ACC: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0AD1: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0AD6: ldloc.s 32 (System.UInt32)
IL_0AD8: conv.u
IL_0AD9: ldelema NetLane
IL_0ADE: ldfld System.UInt16 NetLane::m_flags
IL_0AE3: ldc.i4.s -9
IL_0AE5: and
IL_0AE6: stloc.s 66 (NetLane+Flags)
IL_0AE8: ldloc.s 64 (System.Boolean)
IL_0AEA: brfalse => Label96
IL_0AEF: ldloc.s 66 (NetLane+Flags)
IL_0AF1: ldc.i4.8
IL_0AF2: or
IL_0AF3: stloc.s 66 (NetLane+Flags)
IL_0AF5: Label96
IL_0AF5: ldloc.0
IL_0AF6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0AFB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0B00: ldloc.s 32 (System.UInt32)
IL_0B02: conv.u
IL_0B03: ldelema NetLane
IL_0B08: ldloc.s 66 (NetLane+Flags)
IL_0B0A: conv.u2
IL_0B0B: stfld System.UInt16 NetLane::m_flags
IL_0B10: ldloc.0
IL_0B11: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0B16: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0B1B: ldloc.s 32 (System.UInt32)
IL_0B1D: conv.u
IL_0B1E: ldelema NetLane
IL_0B23: ldfld System.UInt32 NetLane::m_nextLane
IL_0B28: stloc.s 32 (System.UInt32)
IL_0B2A: ldloc.s 65 (System.Int32)
IL_0B2C: ldc.i4.1
IL_0B2D: add
IL_0B2E: stloc.s 65 (System.Int32)
IL_0B30: Label95
IL_0B30: ldloc.s 65 (System.Int32)
IL_0B32: ldarg.0
IL_0B33: ldfld NetInfo NetAI::m_info
IL_0B38: ldfld Lane[] NetInfo::m_lanes
IL_0B3D: ldlen
IL_0B3E: conv.i4
IL_0B3F: bge => Label97
IL_0B44: ldloc.s 32 (System.UInt32)
IL_0B46: brtrue => Label98
IL_0B4B: Label97
IL_0B4B: ldarg.3
IL_0B4C: brtrue => Label99
IL_0B51: ldarg.2
IL_0B52: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0B57: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0B5C: stloc.s 68 (UnityEngine.Vector3)
IL_0B5E: ldloca.s 68 (UnityEngine.Vector3)
IL_0B60: ldfld System.Single UnityEngine.Vector3::x
IL_0B65: ldc.r4 16
IL_0B6A: sub
IL_0B6B: ldc.r4 64
IL_0B70: div
IL_0B71: ldc.r4 135
IL_0B76: add
IL_0B77: conv.i4
IL_0B78: ldc.i4.0
IL_0B79: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0B7E: stloc.s 67 (System.Int32)
IL_0B80: ldarg.2
IL_0B81: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0B86: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0B8B: stloc.s 70 (UnityEngine.Vector3)
IL_0B8D: ldloca.s 70 (UnityEngine.Vector3)
IL_0B8F: ldfld System.Single UnityEngine.Vector3::z
IL_0B94: ldc.r4 16
IL_0B99: sub
IL_0B9A: ldc.r4 64
IL_0B9F: div
IL_0BA0: ldc.r4 135
IL_0BA5: add
IL_0BA6: conv.i4
IL_0BA7: ldc.i4.0
IL_0BA8: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0BAD: stloc.s 69 (System.Int32)
IL_0BAF: ldarg.2
IL_0BB0: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0BB5: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0BBA: stloc.s 72 (UnityEngine.Vector3)
IL_0BBC: ldloca.s 72 (UnityEngine.Vector3)
IL_0BBE: ldfld System.Single UnityEngine.Vector3::x
IL_0BC3: ldc.r4 16
IL_0BC8: add
IL_0BC9: ldc.r4 64
IL_0BCE: div
IL_0BCF: ldc.r4 135
IL_0BD4: add
IL_0BD5: conv.i4
IL_0BD6: ldc.i4 269
IL_0BDB: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0BE0: stloc.s 71 (System.Int32)
IL_0BE2: ldarg.2
IL_0BE3: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0BE8: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0BED: stloc.s 74 (UnityEngine.Vector3)
IL_0BEF: ldloca.s 74 (UnityEngine.Vector3)
IL_0BF1: ldfld System.Single UnityEngine.Vector3::z
IL_0BF6: ldc.r4 16
IL_0BFB: add
IL_0BFC: ldc.r4 64
IL_0C01: div
IL_0C02: ldc.r4 135
IL_0C07: add
IL_0C08: conv.i4
IL_0C09: ldc.i4 269
IL_0C0E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0C13: stloc.s 73 (System.Int32)
IL_0C15: ldloc.s 69 (System.Int32)
IL_0C17: stloc.s 75 (System.Int32)
IL_0C19: br => Label100
IL_0C1E: Label108
IL_0C1E: ldloc.s 67 (System.Int32)
IL_0C20: stloc.s 76 (System.Int32)
IL_0C22: br => Label101
IL_0C27: Label107
IL_0C27: ldloc.0
IL_0C28: ldfld System.UInt16[] NetManager::m_nodeGrid
IL_0C2D: ldloc.s 75 (System.Int32)
IL_0C2F: ldc.i4 270
IL_0C34: mul
IL_0C35: ldloc.s 76 (System.Int32)
IL_0C37: add
IL_0C38: ldelem.u2
IL_0C39: stloc.s 77 (System.UInt16)
IL_0C3B: ldc.i4.0
IL_0C3C: stloc.s 78 (System.Int32)
IL_0C3E: br => Label102
IL_0C43: Label106
IL_0C43: ldloc.0
IL_0C44: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0C49: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0C4E: ldloc.s 77 (System.UInt16)
IL_0C50: ldelema NetNode
IL_0C55: call NetInfo NetNode::get_Info()
IL_0C5A: stloc.s 79 (NetInfo)
IL_0C5C: ldloc.0
IL_0C5D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0C62: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0C67: ldloc.s 77 (System.UInt16)
IL_0C69: ldelema NetNode
IL_0C6E: ldfld UnityEngine.Vector3 NetNode::m_position
IL_0C73: stloc.s 80 (UnityEngine.Vector3)
IL_0C75: ldarg.2
IL_0C76: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0C7B: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0C80: stloc.s 82 (UnityEngine.Vector3)
IL_0C82: ldloca.s 82 (UnityEngine.Vector3)
IL_0C84: ldfld System.Single UnityEngine.Vector3::x
IL_0C89: ldc.r4 16
IL_0C8E: sub
IL_0C8F: ldloca.s 80 (UnityEngine.Vector3)
IL_0C91: ldfld System.Single UnityEngine.Vector3::x
IL_0C96: sub
IL_0C97: ldarg.2
IL_0C98: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0C9D: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0CA2: stloc.s 83 (UnityEngine.Vector3)
IL_0CA4: ldloca.s 83 (UnityEngine.Vector3)
IL_0CA6: ldfld System.Single UnityEngine.Vector3::z
IL_0CAB: ldc.r4 16
IL_0CB0: sub
IL_0CB1: ldloca.s 80 (UnityEngine.Vector3)
IL_0CB3: ldfld System.Single UnityEngine.Vector3::z
IL_0CB8: sub
IL_0CB9: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0CBE: ldloca.s 80 (UnityEngine.Vector3)
IL_0CC0: ldfld System.Single UnityEngine.Vector3::x
IL_0CC5: ldarg.2
IL_0CC6: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0CCB: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0CD0: stloc.s 84 (UnityEngine.Vector3)
IL_0CD2: ldloca.s 84 (UnityEngine.Vector3)
IL_0CD4: ldfld System.Single UnityEngine.Vector3::x
IL_0CD9: sub
IL_0CDA: ldc.r4 16
IL_0CDF: sub
IL_0CE0: ldloca.s 80 (UnityEngine.Vector3)
IL_0CE2: ldfld System.Single UnityEngine.Vector3::z
IL_0CE7: ldarg.2
IL_0CE8: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0CED: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0CF2: stloc.s 85 (UnityEngine.Vector3)
IL_0CF4: ldloca.s 85 (UnityEngine.Vector3)
IL_0CF6: ldfld System.Single UnityEngine.Vector3::z
IL_0CFB: sub
IL_0CFC: ldc.r4 16
IL_0D01: sub
IL_0D02: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0D07: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0D0C: stloc.s 81 (System.Single)
IL_0D0E: ldloc.s 81 (System.Single)
IL_0D10: ldc.r4 0
IL_0D15: bge.un => Label103
IL_0D1A: ldloc.s 79 (NetInfo)
IL_0D1C: ldfld NetAI NetInfo::m_netAI
IL_0D21: ldloc.s 77 (System.UInt16)
IL_0D23: ldloc.0
IL_0D24: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0D29: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0D2E: ldloc.s 77 (System.UInt16)
IL_0D30: ldelema NetNode
IL_0D35: callvirt virtual System.Void NetAI::NearbyLanesUpdated(System.UInt16
nodeID, NetNode& data)
IL_0D3A: Label103
IL_0D3A: ldloc.0
IL_0D3B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0D40: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0D45: ldloc.s 77 (System.UInt16)
IL_0D47: ldelema NetNode
IL_0D4C: ldfld System.UInt16 NetNode::m_nextGridNode
IL_0D51: stloc.s 77 (System.UInt16)
IL_0D53: ldloc.s 78 (System.Int32)
IL_0D55: ldc.i4.1
IL_0D56: add
IL_0D57: dup
IL_0D58: stloc.s 78 (System.Int32)
IL_0D5A: ldc.i4 32768
IL_0D5F: blt => Label104
IL_0D64: ldc.i4.1
IL_0D65: ldstr "Invalid list detected!\n"
IL_0D6A: call static System.String System.Environment::get_StackTrace()
IL_0D6F: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_0D74: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Error(LogChannel ll, System.String
msg)
IL_0D79: br => Label105
IL_0D7E: Label102
IL_0D7E: Label104
IL_0D7E: ldloc.s 77 (System.UInt16)
IL_0D80: brtrue => Label106
IL_0D85: Label105
IL_0D85: ldloc.s 76 (System.Int32)
IL_0D87: ldc.i4.1
IL_0D88: add
IL_0D89: stloc.s 76 (System.Int32)
IL_0D8B: Label101
IL_0D8B: ldloc.s 76 (System.Int32)
IL_0D8D: ldloc.s 71 (System.Int32)
IL_0D8F: ble => Label107
IL_0D94: ldloc.s 75 (System.Int32)
IL_0D96: ldc.i4.1
IL_0D97: add
IL_0D98: stloc.s 75 (System.Int32)
IL_0D9A: Label100
IL_0D9A: ldloc.s 75 (System.Int32)
IL_0D9C: ldloc.s 73 (System.Int32)
IL_0D9E: ble => Label108
IL_0DA3: ldarg.0
IL_0DA4: ldfld NetInfo NetAI::m_info
IL_0DA9: ldfld System.Boolean NetInfo::m_hasPedestrianLanes
IL_0DAE: brfalse => Label109
IL_0DB3: ldarg.0
IL_0DB4: ldfld NetInfo NetAI::m_info
IL_0DB9: ldfld System.Boolean NetInfo::m_hasForwardVehicleLanes
IL_0DBE: brtrue => Label110
IL_0DC3: ldarg.0
IL_0DC4: ldfld NetInfo NetAI::m_info
IL_0DC9: ldfld System.Boolean NetInfo::m_hasBackwardVehicleLanes
IL_0DCE: brfalse => Label111
IL_0DD3: Label110
IL_0DD3: ldarg.1
IL_0DD4: ldarg.2
IL_0DD5: call static System.Void RoadBaseAI::CheckBuildings(System.UInt16
segmentID, NetSegment& data)
IL_0DDA: // end original
IL_0DDA: Label99
IL_0DDA: Label109
IL_0DDA: Label111
IL_0DDA: ldarg 1
IL_0DDE: ldarg 2
IL_0DE2: ldarg 3
IL_0DE6: call static System.Void
TrafficManager.Patch._RoadBaseAI.UpdateLanesPatch::Postfix(System.UInt16 segmentID,
NetSegment& data, System.Boolean loading)
IL_0DEB: 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.Byte NetSegment::m_trafficLightState0
IL_006A: ldc.i4 240
IL_006F: and
IL_0070: ldloc.0
IL_0071: or
IL_0072: conv.u1
IL_0073: stfld System.Byte NetSegment::m_trafficLightState0
IL_0078: br => Label4
IL_007D: Label3
IL_007D: ldarg.1
IL_007E: ldarg.1
IL_007F: ldfld System.Byte NetSegment::m_trafficLightState1
IL_0084: ldc.i4 240
IL_0089: and
IL_008A: ldloc.0
IL_008B: or
IL_008C: conv.u1
IL_008D: stfld System.Byte NetSegment::m_trafficLightState1
IL_0092: Label4
IL_0092: ldarg.s 5
IL_0094: brfalse => Label5
IL_0099: ldarg.1
IL_009A: dup
IL_009B: ldfld Flags NetSegment::m_flags
IL_00A0: ldc.i4 4096
IL_00A5: or
IL_00A6: stfld Flags NetSegment::m_flags
IL_00AB: br => Label6
IL_00B0: Label5
IL_00B0: ldarg.1
IL_00B1: dup
IL_00B2: ldfld Flags NetSegment::m_flags
IL_00B7: ldc.i4 -4097
IL_00BC: and
IL_00BD: stfld Flags NetSegment::m_flags
IL_00C2: Label6
IL_00C2: ldarg.s 6
IL_00C4: brfalse => Label7
IL_00C9: ldarg.1
IL_00CA: dup
IL_00CB: ldfld Flags NetSegment::m_flags
IL_00D0: ldc.i4 16384
IL_00D5: or
IL_00D6: stfld Flags NetSegment::m_flags
IL_00DB: br => Label8
IL_00E0: Label7
IL_00E0: ldarg.1
IL_00E1: dup
IL_00E2: ldfld Flags NetSegment::m_flags
IL_00E7: ldc.i4 -16385
IL_00EC: and
IL_00ED: stfld Flags NetSegment::m_flags
IL_00F2: Label8
IL_00F2: br => Label9
IL_00F7: Label2
IL_00F7: ldarg.2
IL_00F8: ldc.i4.8
IL_00F9: shr.un
IL_00FA: ldc.i4.1
IL_00FB: and
IL_00FC: brtrue => Label10
IL_0101: ldarg.1
IL_0102: ldarg.1
IL_0103: ldfld System.Byte NetSegment::m_trafficLightState0
IL_0108: ldc.i4.s 15
IL_010A: and
IL_010B: ldloc.0
IL_010C: ldc.i4.4
IL_010D: shl
IL_010E: or
IL_010F: conv.u1
IL_0110: stfld System.Byte NetSegment::m_trafficLightState0
IL_0115: br => Label11
IL_011A: Label10
IL_011A: ldarg.1
IL_011B: ldarg.1
IL_011C: ldfld System.Byte NetSegment::m_trafficLightState1
IL_0121: ldc.i4.s 15
IL_0123: and
IL_0124: ldloc.0
IL_0125: ldc.i4.4
IL_0126: shl
IL_0127: or
IL_0128: conv.u1
IL_0129: stfld System.Byte NetSegment::m_trafficLightState1
IL_012E: Label11
IL_012E: ldarg.s 5
IL_0130: brfalse => Label12
IL_0135: ldarg.1
IL_0136: dup
IL_0137: ldfld Flags NetSegment::m_flags
IL_013C: ldc.i4 8192
IL_0141: or
IL_0142: stfld Flags NetSegment::m_flags
IL_0147: br => Label13
IL_014C: Label12
IL_014C: ldarg.1
IL_014D: dup
IL_014E: ldfld Flags NetSegment::m_flags
IL_0153: ldc.i4 -8193
IL_0158: and
IL_0159: stfld Flags NetSegment::m_flags
IL_015E: Label13
IL_015E: ldarg.s 6
IL_0160: brfalse => Label14
IL_0165: ldarg.1
IL_0166: dup
IL_0167: ldfld Flags NetSegment::m_flags
IL_016C: ldc.i4 32768
IL_0171: or
IL_0172: stfld Flags NetSegment::m_flags
IL_0177: br => Label15
IL_017C: Label14
IL_017C: ldarg.1
IL_017D: dup
IL_017E: ldfld Flags NetSegment::m_flags
IL_0183: ldc.i4 -32769
IL_0188: and
IL_0189: stfld Flags NetSegment::m_flags
IL_018E: // end original
IL_018E: Label9
IL_018E: Label15
IL_018E: Label0
IL_018E: 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/Problem
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<SimulationManager>::get_instance()
IL_003C: stloc.0
IL_003D: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0042: stloc.1
IL_0043: ldarg.2
IL_0044: ldfld Problem NetSegment::m_problems
IL_0049: ldc.i4 805306368
IL_004E: conv.i8
IL_004F: call static Problem Notification::RemoveProblems(Problem problems1,
Problem problems2)
IL_0054: stloc.2
IL_0055: ldarg.2
IL_0056: ldfld Flags NetSegment::m_flags
IL_005B: ldc.i4 2048
IL_0060: and
IL_0061: brfalse => Label2
IL_0066: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_006B: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0070: ldc.i4.s 16
IL_0072: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0077: brtrue => Label3
IL_007C: ldarg.2
IL_007D: dup
IL_007E: ldfld Flags NetSegment::m_flags
IL_0083: ldc.i4 -2049
IL_0088: and
IL_0089: stfld Flags NetSegment::m_flags
IL_008E: Label2
IL_008E: Label3
IL_008E: ldc.r4 0
IL_0093: stloc.3
IL_0094: ldarg.2
IL_0095: ldfld System.UInt32 NetSegment::m_lanes
IL_009A: stloc.s 4 (System.UInt32)
IL_009C: ldc.i4.0
IL_009D: stloc.s 5 (System.Int32)
IL_009F: br => Label4
IL_00A4: Label8
IL_00A4: ldarg.0
IL_00A5: ldfld NetInfo NetAI::m_info
IL_00AA: ldfld Lane[] NetInfo::m_lanes
IL_00AF: ldloc.s 5 (System.Int32)
IL_00B1: ldelem.ref
IL_00B2: stloc.s 6 (NetInfo+Lane)
IL_00B4: ldloc.s 6 (NetInfo+Lane)
IL_00B6: ldfld LaneType Lane::m_laneType
IL_00BB: ldc.i4.s 33
IL_00BD: and
IL_00BE: conv.u1
IL_00BF: brfalse => Label5
IL_00C4: ldloc.s 6 (NetInfo+Lane)
IL_00C6: ldfld VehicleType Lane::m_vehicleType
IL_00CB: ldc.i4.s -33
IL_00CD: and
IL_00CE: brfalse => Label6
IL_00D3: ldloc.3
IL_00D4: ldloc.1
IL_00D5: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00DA: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00DF: ldloc.s 4 (System.UInt32)
IL_00E1: conv.u
IL_00E2: ldelema NetLane
IL_00E7: ldfld System.Single NetLane::m_length
IL_00EC: add
IL_00ED: stloc.3
IL_00EE: Label5
IL_00EE: Label6
IL_00EE: ldloc.1
IL_00EF: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00F4: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00F9: ldloc.s 4 (System.UInt32)
IL_00FB: conv.u
IL_00FC: ldelema NetLane
IL_0101: ldfld System.UInt32 NetLane::m_nextLane
IL_0106: stloc.s 4 (System.UInt32)
IL_0108: ldloc.s 5 (System.Int32)
IL_010A: ldc.i4.1
IL_010B: add
IL_010C: stloc.s 5 (System.Int32)
IL_010E: Label4
IL_010E: ldloc.s 5 (System.Int32)
IL_0110: ldarg.0
IL_0111: ldfld NetInfo NetAI::m_info
IL_0116: ldfld Lane[] NetInfo::m_lanes
IL_011B: ldlen
IL_011C: conv.i4
IL_011D: bge => Label7
IL_0122: ldloc.s 4 (System.UInt32)
IL_0124: brtrue => Label8
IL_0129: Label7
IL_0129: ldc.i4.0
IL_012A: stloc.s 7 (System.Int32)
IL_012C: ldc.i4.0
IL_012D: stloc.s 8 (System.Int32)
IL_012F: ldarg.2
IL_0130: ldfld System.UInt16 NetSegment::m_trafficBuffer
IL_0135: ldc.i4 65535
IL_013A: bne.un => Label9
IL_013F: ldarg.2
IL_0140: ldfld Flags NetSegment::m_flags
IL_0145: ldc.i4 2097152
IL_014A: and
IL_014B: brtrue => Label10
IL_0150: ldarg.2
IL_0151: dup
IL_0152: ldfld Flags NetSegment::m_flags
IL_0157: ldc.i4 2097152
IL_015C: or
IL_015D: stfld Flags NetSegment::m_flags
IL_0162: ldarg.2
IL_0163: ldloc.0
IL_0164: dup
IL_0165: ldfld System.UInt32 SimulationManager::m_currentBuildIndex
IL_016A: dup
IL_016B: stloc.s 9 (System.UInt32)
IL_016D: ldc.i4.1
IL_016E: add
IL_016F: stfld System.UInt32 SimulationManager::m_currentBuildIndex
IL_0174: ldloc.s 9 (System.UInt32)
IL_0176: stfld System.UInt32 NetSegment::m_modifiedIndex
IL_017B: Label10
IL_017B: br => Label11
IL_0180: Label9
IL_0180: ldarg.2
IL_0181: dup
IL_0182: ldfld Flags NetSegment::m_flags
IL_0187: ldc.i4 -2097153
IL_018C: and
IL_018D: stfld Flags NetSegment::m_flags
IL_0192: ldloc.3
IL_0193: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_0198: ldc.i4.4
IL_0199: shl
IL_019A: stloc.s 10 (System.Int32)
IL_019C: ldloc.s 10 (System.Int32)
IL_019E: brfalse => Label12
IL_01A3: ldarg.2
IL_01A4: ldfld System.UInt16 NetSegment::m_trafficBuffer
IL_01A9: ldc.i4.s 100
IL_01AB: mul
IL_01AC: ldloc.s 10 (System.Int32)
IL_01AE: div
IL_01AF: ldc.i4.s 100
IL_01B1: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01B6: conv.u1
IL_01B7: stloc.s 7 (System.Int32)
IL_01B9: ldarg.2
IL_01BA: ldfld System.UInt16 NetSegment::m_noiseBuffer
IL_01BF: ldc.i4 250
IL_01C4: mul
IL_01C5: ldloc.s 10 (System.Int32)
IL_01C7: div
IL_01C8: ldc.i4.s 100
IL_01CA: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01CF: conv.u1
IL_01D0: stloc.s 8 (System.Int32)
IL_01D2: Label11
IL_01D2: Label12
IL_01D2: ldarg.2
IL_01D3: ldc.i4.0
IL_01D4: stfld System.UInt16 NetSegment::m_trafficBuffer
IL_01D9: ldarg.2
IL_01DA: ldc.i4.0
IL_01DB: stfld System.UInt16 NetSegment::m_noiseBuffer
IL_01E0: ldloc.s 7 (System.Int32)
IL_01E2: ldarg.2
IL_01E3: ldfld System.Byte NetSegment::m_trafficDensity
IL_01E8: ble => Label13
IL_01ED: ldarg.2
IL_01EE: ldarg.2
IL_01EF: ldfld System.Byte NetSegment::m_trafficDensity
IL_01F4: ldc.i4.5
IL_01F5: add
IL_01F6: ldloc.s 7 (System.Int32)
IL_01F8: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01FD: conv.u1
IL_01FE: stfld System.Byte NetSegment::m_trafficDensity
IL_0203: br => Label14
IL_0208: Label13
IL_0208: ldloc.s 7 (System.Int32)
IL_020A: ldarg.2
IL_020B: ldfld System.Byte NetSegment::m_trafficDensity
IL_0210: bge => Label15
IL_0215: ldarg.2
IL_0216: ldarg.2
IL_0217: ldfld System.Byte NetSegment::m_trafficDensity
IL_021C: ldc.i4.5
IL_021D: sub
IL_021E: ldloc.s 7 (System.Int32)
IL_0220: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0225: conv.u1
IL_0226: stfld System.Byte NetSegment::m_trafficDensity
IL_022B: Label14
IL_022B: Label15
IL_022B: ldloc.s 8 (System.Int32)
IL_022D: ldarg.2
IL_022E: ldfld System.Byte NetSegment::m_noiseDensity
IL_0233: ble => Label16
IL_0238: ldarg.2
IL_0239: ldarg.2
IL_023A: ldfld System.Byte NetSegment::m_noiseDensity
IL_023F: ldc.i4.2
IL_0240: add
IL_0241: ldloc.s 8 (System.Int32)
IL_0243: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0248: conv.u1
IL_0249: stfld System.Byte NetSegment::m_noiseDensity
IL_024E: br => Label17
IL_0253: Label16
IL_0253: ldloc.s 8 (System.Int32)
IL_0255: ldarg.2
IL_0256: ldfld System.Byte NetSegment::m_noiseDensity
IL_025B: bge => Label18
IL_0260: ldarg.2
IL_0261: ldarg.2
IL_0262: ldfld System.Byte NetSegment::m_noiseDensity
IL_0267: ldc.i4.2
IL_0268: sub
IL_0269: ldloc.s 8 (System.Int32)
IL_026B: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0270: conv.u1
IL_0271: stfld System.Byte NetSegment::m_noiseDensity
IL_0276: Label17
IL_0276: Label18
IL_0276: ldloc.1
IL_0277: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_027C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0281: ldarg.2
IL_0282: ldfld System.UInt16 NetSegment::m_startNode
IL_0287: ldelema NetNode
IL_028C: ldfld UnityEngine.Vector3 NetNode::m_position
IL_0291: stloc.s 11 (UnityEngine.Vector3)
IL_0293: ldloc.1
IL_0294: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0299: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_029E: ldarg.2
IL_029F: ldfld System.UInt16 NetSegment::m_endNode
IL_02A4: ldelema NetNode
IL_02A9: ldfld UnityEngine.Vector3 NetNode::m_position
IL_02AE: stloc.s 12 (UnityEngine.Vector3)
IL_02B0: ldloc.s 11 (UnityEngine.Vector3)
IL_02B2: ldloc.s 12 (UnityEngine.Vector3)
IL_02B4: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_02B9: ldc.r4 0.5
IL_02BE: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_02C3: stloc.s 13 (UnityEngine.Vector3)
IL_02C5: ldc.i4.0
IL_02C6: stloc.s 14 (System.Boolean)
IL_02C8: ldarg.0
IL_02C9: ldfld NetInfo NetAI::m_info
IL_02CE: ldfld Flags NetInfo::m_setVehicleFlags
IL_02D3: ldc.i4 268435456
IL_02D8: and
IL_02D9: brtrue => Label19
IL_02DE: call static TerrainManager
ColossalFramework.Singleton`1<TerrainManager>::get_instance()
IL_02E3: ldloc.s 13 (UnityEngine.Vector3)
IL_02E5: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_02EA: callvirt System.Single TerrainManager::WaterLevel(UnityEngine.Vector2
position)
IL_02EF: stloc.s 15 (System.Single)
IL_02F1: ldloc.s 15 (System.Single)
IL_02F3: ldloca.s 13 (UnityEngine.Vector3)
IL_02F5: ldfld System.Single UnityEngine.Vector3::y
IL_02FA: ldc.r4 1
IL_02FF: add
IL_0300: ble.un => Label20
IL_0305: ldloc.s 15 (System.Single)
IL_0307: ldc.r4 0
IL_030C: ble.un => Label21
IL_0311: ldc.i4.1
IL_0312: stloc.s 14 (System.Boolean)
IL_0314: ldarg.2
IL_0315: dup
IL_0316: ldfld Flags NetSegment::m_flags
IL_031B: ldc.i4 4194304
IL_0320: or
IL_0321: stfld Flags NetSegment::m_flags
IL_0326: ldloc.2
IL_0327: ldc.i8 4611686018695823360
IL_0330: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0335: stloc.2
IL_0336: ldarg.2
IL_0337: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_033C: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0341: stloc.s 16 (UnityEngine.Vector3)
IL_0343: ldarg.2
IL_0344: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0349: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_034E: stloc.s 17 (UnityEngine.Vector3)
IL_0350: ldloca.s 16 (UnityEngine.Vector3)
IL_0352: ldfld System.Single UnityEngine.Vector3::x
IL_0357: ldloca.s 16 (UnityEngine.Vector3)
IL_0359: ldfld System.Single UnityEngine.Vector3::z
IL_035E: ldloca.s 17 (UnityEngine.Vector3)
IL_0360: ldfld System.Single UnityEngine.Vector3::x
IL_0365: ldloca.s 17 (UnityEngine.Vector3)
IL_0367: ldfld System.Single UnityEngine.Vector3::z
IL_036C: call static System.Void RoadBaseAI::FloodParkedCars(System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0371: br => Label22
IL_0376: Label20
IL_0376: Label21
IL_0376: ldarg.2
IL_0377: dup
IL_0378: ldfld Flags NetSegment::m_flags
IL_037D: ldc.i4 -4194305
IL_0382: and
IL_0383: stfld Flags NetSegment::m_flags
IL_0388: ldloc.s 15 (System.Single)
IL_038A: ldloca.s 13 (UnityEngine.Vector3)
IL_038C: ldfld System.Single UnityEngine.Vector3::y
IL_0391: ble.un => Label23
IL_0396: ldloc.s 15 (System.Single)
IL_0398: ldc.r4 0
IL_039D: ble.un => Label24
IL_03A2: ldc.i4.1
IL_03A3: stloc.s 14 (System.Boolean)
IL_03A5: ldloc.2
IL_03A6: ldc.i4 268435456
IL_03AB: conv.i8
IL_03AC: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_03B1: stloc.2
IL_03B2: Label19
IL_03B2: Label22
IL_03B2: Label23
IL_03B2: Label24
IL_03B2: call static DistrictManager
ColossalFramework.Singleton`1<DistrictManager>::get_instance()
IL_03B7: stloc.s 18 (DistrictManager)
IL_03B9: ldloc.s 18 (DistrictManager)
IL_03BB: ldloc.s 13 (UnityEngine.Vector3)
IL_03BD: callvirt System.Byte DistrictManager::GetDistrict(UnityEngine.Vector3
worldPos)
IL_03C2: stloc.s 19 (System.Byte)
IL_03C4: ldloc.s 18 (DistrictManager)
IL_03C6: ldfld Array8`1<District> DistrictManager::m_districts
IL_03CB: ldfld District[] Array8`1<District>::m_buffer
IL_03D0: ldloc.s 19 (System.Byte)
IL_03D2: ldelema District
IL_03D7: ldfld CityPlanning District::m_cityPlanningPolicies
IL_03DC: stloc.s 20 (DistrictPolicies+CityPlanning)
IL_03DE: ldc.i4.s 100
IL_03E0: ldarg.2
IL_03E1: ldfld System.Byte NetSegment::m_noiseDensity
IL_03E6: ldc.i4.s 100
IL_03E8: sub
IL_03E9: ldarg.2
IL_03EA: ldfld System.Byte NetSegment::m_noiseDensity
IL_03EF: ldc.i4.s 100
IL_03F1: sub
IL_03F2: mul
IL_03F3: ldc.i4.s 100
IL_03F5: div
IL_03F6: sub
IL_03F7: stloc.s 21 (System.Int32)
IL_03F9: ldarg.0
IL_03FA: ldfld NetInfo NetAI::m_info
IL_03FF: ldfld VehicleType NetInfo::m_vehicleTypes
IL_0404: ldc.i4.1
IL_0405: and
IL_0406: brfalse => Label25
IL_040B: ldarg.0
IL_040C: ldfld NetInfo NetAI::m_info
IL_0411: ldfld Flags NetInfo::m_setVehicleFlags
IL_0416: ldc.i4 268435456
IL_041B: and
IL_041C: brtrue => Label26
IL_0421: ldloc.s 14 (System.Boolean)
IL_0423: brfalse => Label27
IL_0428: ldarg.2
IL_0429: ldfld Flags NetSegment::m_flags
IL_042E: ldc.i4 2099200
IL_0433: and
IL_0434: brtrue => Label28
IL_0439: ldloc.0
IL_043A: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_043F: ldc.i4.s 10
IL_0441: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0446: brtrue => Label29
IL_044B: ldloca.s 22 (TransferManager+TransferOffer)
IL_044D: initobj TransferManager+TransferOffer
IL_0453: ldloca.s 22 (TransferManager+TransferOffer)
IL_0455: ldc.i4.4
IL_0456: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_045B: ldloca.s 22 (TransferManager+TransferOffer)
IL_045D: ldarg.1
IL_045E: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_0463: ldloca.s 22 (TransferManager+TransferOffer)
IL_0465: ldloc.s 13 (UnityEngine.Vector3)
IL_0467: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_046C: ldloca.s 22 (TransferManager+TransferOffer)
IL_046E: ldc.i4.1
IL_046F: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_0474: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_0479: ldc.i4.s 73
IL_047B: ldloc.s 22 (TransferManager+TransferOffer)
IL_047D: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason
material, TransferOffer offer)
IL_0482: Label27
IL_0482: Label28
IL_0482: Label29
IL_0482: ldarg.2
IL_0483: ldfld System.Byte NetSegment::m_wetness
IL_0488: stloc.s 23 (System.Int32)
IL_048A: ldloc.1
IL_048B: ldfld System.Boolean NetManager::m_treatWetAsSnow
IL_0490: brtrue => Label30
IL_0495: ldloc.s 14 (System.Boolean)
IL_0497: brfalse => Label31
IL_049C: ldc.i4 255
IL_04A1: stloc.s 23 (System.Int32)
IL_04A3: br => Label32
IL_04A8: Label31
IL_04A8: ldloc.s 23 (System.Int32)
IL_04AA: ldc.i4.s 63
IL_04AC: add
IL_04AD: ldc.i4.5
IL_04AE: shr
IL_04AF: neg
IL_04B0: stloc.s 24 (System.Int32)
IL_04B2: call static WeatherManager
ColossalFramework.Singleton`1<WeatherManager>::get_instance()
IL_04B7: ldloc.s 13 (UnityEngine.Vector3)
IL_04B9: ldc.i4.0
IL_04BA: callvirt System.Single
WeatherManager::SampleRainIntensity(UnityEngine.Vector3 pos, System.Boolean
ignoreWeather)
IL_04BF: stloc.s 25 (System.Single)
IL_04C1: ldloc.s 25 (System.Single)
IL_04C3: ldc.r4 0
IL_04C8: beq => Label33
IL_04CD: ldloc.s 25 (System.Single)
IL_04CF: ldc.r4 4000
IL_04D4: mul
IL_04D5: ldc.r4 1000
IL_04DA: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_04DF: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_04E4: stloc.s 26 (System.Int32)
IL_04E6: ldloc.s 24 (System.Int32)
IL_04E8: ldloc.0
IL_04E9: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_04EE: ldloc.s 26 (System.Int32)
IL_04F0: ldloc.s 26 (System.Int32)
IL_04F2: ldc.i4.s 99
IL_04F4: add
IL_04F5: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_04FA: ldc.i4.s 100
IL_04FC: div
IL_04FD: add
IL_04FE: stloc.s 24 (System.Int32)
IL_0500: Label33
IL_0500: ldloc.s 23 (System.Int32)
IL_0502: ldloc.s 24 (System.Int32)
IL_0504: add
IL_0505: ldc.i4.0
IL_0506: ldc.i4 255
IL_050B: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_0510: stloc.s 23 (System.Int32)
IL_0512: Label32
IL_0512: br => Label34
IL_0517: Label30
IL_0517: ldarg.0
IL_0518: ldfld System.Boolean RoadBaseAI::m_accumulateSnow
IL_051D: brfalse => Label35
IL_0522: ldloc.s 14 (System.Boolean)
IL_0524: brfalse => Label36
IL_0529: ldc.i4 128
IL_052E: stloc.s 23 (System.Int32)
IL_0530: br => Label37
IL_0535: Label36
IL_0535: call static WeatherManager
ColossalFramework.Singleton`1<WeatherManager>::get_instance()
IL_053A: ldloc.s 13 (UnityEngine.Vector3)
IL_053C: ldc.i4.0
IL_053D: callvirt System.Single
WeatherManager::SampleRainIntensity(UnityEngine.Vector3 pos, System.Boolean
ignoreWeather)
IL_0542: stloc.s 27 (System.Single)
IL_0544: ldloc.s 27 (System.Single)
IL_0546: ldc.r4 0
IL_054B: beq => Label38
IL_0550: ldloc.s 27 (System.Single)
IL_0552: ldc.r4 400
IL_0557: mul
IL_0558: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_055D: stloc.s 28 (System.Int32)
IL_055F: ldloc.0
IL_0560: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0565: ldloc.s 28 (System.Int32)
IL_0567: ldloc.s 28 (System.Int32)
IL_0569: ldc.i4.s 99
IL_056B: add
IL_056C: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_0571: ldc.i4.s 100
IL_0573: div
IL_0574: stloc.s 29 (System.Int32)
IL_0576: call static UnlockManager
ColossalFramework.Singleton`1<UnlockManager>::get_instance()
IL_057B: ldc.i4.s 24
IL_057D: callvirt System.Boolean UnlockManager::Unlocked(Feature feature)
IL_0582: brfalse => Label39
IL_0587: ldloc.s 23 (System.Int32)
IL_0589: ldloc.s 29 (System.Int32)
IL_058B: add
IL_058C: ldc.i4 255
IL_0591: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0596: stloc.s 23 (System.Int32)
IL_0598: br => Label40
IL_059D: Label39
IL_059D: ldloc.s 23 (System.Int32)
IL_059F: ldloc.s 29 (System.Int32)
IL_05A1: add
IL_05A2: ldc.i4 128
IL_05A7: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_05AC: stloc.s 23 (System.Int32)
IL_05AE: Label40
IL_05AE: br => Label41
IL_05B3: Label38
IL_05B3: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_05B8: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_05BD: ldc.i4.4
IL_05BE: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_05C3: brtrue => Label42
IL_05C8: ldloc.s 23 (System.Int32)
IL_05CA: ldc.i4.1
IL_05CB: sub
IL_05CC: ldc.i4.0
IL_05CD: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_05D2: stloc.s 23 (System.Int32)
IL_05D4: Label41
IL_05D4: Label42
IL_05D4: ldloc.s 23 (System.Int32)
IL_05D6: ldc.i4.s 64
IL_05D8: blt => Label43
IL_05DD: ldarg.2
IL_05DE: ldfld Flags NetSegment::m_flags
IL_05E3: ldc.i4 6293504
IL_05E8: and
IL_05E9: brtrue => Label44
IL_05EE: ldloc.0
IL_05EF: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_05F4: ldc.i4.s 10
IL_05F6: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_05FB: brtrue => Label45
IL_0600: ldloca.s 30 (TransferManager+TransferOffer)
IL_0602: initobj TransferManager+TransferOffer
IL_0608: ldloca.s 30 (TransferManager+TransferOffer)
IL_060A: ldloc.s 23 (System.Int32)
IL_060C: ldc.i4.s 50
IL_060E: div
IL_060F: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_0614: ldloca.s 30 (TransferManager+TransferOffer)
IL_0616: ldarg.1
IL_0617: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_061C: ldloca.s 30 (TransferManager+TransferOffer)
IL_061E: ldloc.s 13 (UnityEngine.Vector3)
IL_0620: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_0625: ldloca.s 30 (TransferManager+TransferOffer)
IL_0627: ldc.i4.1
IL_0628: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_062D: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_0632: ldc.i4.s 64
IL_0634: ldloc.s 30 (TransferManager+TransferOffer)
IL_0636: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason
material, TransferOffer offer)
IL_063B: Label43
IL_063B: Label44
IL_063B: Label45
IL_063B: ldloc.s 23 (System.Int32)
IL_063D: ldc.i4 192
IL_0642: blt => Label46
IL_0647: ldloc.2
IL_0648: ldc.i4 536870912
IL_064D: conv.i8
IL_064E: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0653: stloc.2
IL_0654: Label46
IL_0654: ldloc.s 18 (DistrictManager)
IL_0656: ldfld Array8`1<District> DistrictManager::m_districts
IL_065B: ldfld District[] Array8`1<District>::m_buffer
IL_0660: ldloc.s 19 (System.Byte)
IL_0662: ldelema District
IL_0667: ldflda DistrictProductionData District::m_productionData
IL_066C: dup
IL_066D: ldfld System.UInt32 DistrictProductionData::m_tempSnowCover
IL_0672: ldloc.s 23 (System.Int32)
IL_0674: add
IL_0675: stfld System.UInt32 DistrictProductionData::m_tempSnowCover
IL_067A: Label34
IL_067A: Label35
IL_067A: Label37
IL_067A: ldloc.s 23 (System.Int32)
IL_067C: ldarg.2
IL_067D: ldfld System.Byte NetSegment::m_wetness
IL_0682: beq => Label47
IL_0687: ldarg.2
IL_0688: ldfld System.Byte NetSegment::m_wetness
IL_068D: ldloc.s 23 (System.Int32)
IL_068F: sub
IL_0690: call static System.Int32 UnityEngine.Mathf::Abs(System.Int32 value)
IL_0695: ldc.i4.s 10
IL_0697: ble => Label48
IL_069C: ldarg.2
IL_069D: ldloc.s 23 (System.Int32)
IL_069F: conv.u1
IL_06A0: stfld System.Byte NetSegment::m_wetness
IL_06A5: ldsfld InstanceID InstanceID::Empty
IL_06AA: stloc.s 31 (InstanceID)
IL_06AC: ldloca.s 31 (InstanceID)
IL_06AE: ldarg.1
IL_06AF: call System.Void InstanceID::set_NetSegment(System.UInt16 value)
IL_06B4: ldloc.1
IL_06B5: ldloc.s 31 (InstanceID)
IL_06B7: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06BC: ldloca.s 31 (InstanceID)
IL_06BE: ldarg.2
IL_06BF: ldfld System.UInt16 NetSegment::m_startNode
IL_06C4: call System.Void InstanceID::set_NetNode(System.UInt16 value)
IL_06C9: ldloc.1
IL_06CA: ldloc.s 31 (InstanceID)
IL_06CC: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06D1: ldloca.s 31 (InstanceID)
IL_06D3: ldarg.2
IL_06D4: ldfld System.UInt16 NetSegment::m_endNode
IL_06D9: call System.Void InstanceID::set_NetNode(System.UInt16 value)
IL_06DE: ldloc.1
IL_06DF: ldloc.s 31 (InstanceID)
IL_06E1: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06E6: br => Label49
IL_06EB: Label48
IL_06EB: ldarg.2
IL_06EC: ldloc.s 23 (System.Int32)
IL_06EE: conv.u1
IL_06EF: stfld System.Byte NetSegment::m_wetness
IL_06F4: ldloc.1
IL_06F5: ldc.i4 256
IL_06FA: stfld System.Int32 NetManager::m_wetnessChanged
IL_06FF: Label26
IL_06FF: Label47
IL_06FF: Label49
IL_06FF: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_0701: ldc.i4 1024
IL_0706: and
IL_0707: brfalse => Label50
IL_070C: ldloc.s 21 (System.Int32)
IL_070E: ldc.i4.3
IL_070F: mul
IL_0710: ldc.i4.1
IL_0711: add
IL_0712: ldc.i4.1
IL_0713: shr
IL_0714: stloc.s 21 (System.Int32)
IL_0716: ldc.i4 700
IL_071B: ldc.i4.s 50
IL_071D: ldarg.2
IL_071E: ldfld System.Byte NetSegment::m_trafficDensity
IL_0723: ldc.i4.6
IL_0724: mul
IL_0725: add
IL_0726: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_072B: stloc.s 32 (System.Int32)
IL_072D: br => Label51
IL_0732: Label50
IL_0732: ldc.i4 500
IL_0737: ldc.i4.s 50
IL_0739: ldarg.2
IL_073A: ldfld System.Byte NetSegment::m_trafficDensity
IL_073F: ldc.i4.4
IL_0740: mul
IL_0741: add
IL_0742: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0747: stloc.s 32 (System.Int32)
IL_0749: Label51
IL_0749: ldarg.0
IL_074A: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_074F: brtrue => Label52
IL_0754: ldloc.0
IL_0755: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_075A: ldloc.s 32 (System.Int32)
IL_075C: ldloc.s 32 (System.Int32)
IL_075E: ldc.i4.s 99
IL_0760: add
IL_0761: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_0766: ldc.i4.s 100
IL_0768: div
IL_0769: stloc.s 33 (System.Int32)
IL_076B: ldarg.2
IL_076C: ldarg.2
IL_076D: ldfld System.Byte NetSegment::m_condition
IL_0772: ldloc.s 33 (System.Int32)
IL_0774: sub
IL_0775: ldc.i4.0
IL_0776: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_077B: conv.u1
IL_077C: stfld System.Byte NetSegment::m_condition
IL_0781: ldarg.2
IL_0782: ldfld System.Byte NetSegment::m_condition
IL_0787: ldc.i4 192
IL_078C: bge => Label53
IL_0791: ldarg.2
IL_0792: ldfld Flags NetSegment::m_flags
IL_0797: ldc.i4 6293504
IL_079C: and
IL_079D: brtrue => Label54
IL_07A2: ldloc.0
IL_07A3: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_07A8: ldc.i4.s 20
IL_07AA: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_07AF: brtrue => Label55
IL_07B4: ldloca.s 34 (TransferManager+TransferOffer)
IL_07B6: initobj TransferManager+TransferOffer
IL_07BC: ldloca.s 34 (TransferManager+TransferOffer)
IL_07BE: ldc.i4 255
IL_07C3: ldarg.2
IL_07C4: ldfld System.Byte NetSegment::m_condition
IL_07C9: sub
IL_07CA: ldc.i4.s 50
IL_07CC: div
IL_07CD: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_07D2: ldloca.s 34 (TransferManager+TransferOffer)
IL_07D4: ldarg.1
IL_07D5: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_07DA: ldloca.s 34 (TransferManager+TransferOffer)
IL_07DC: ldloc.s 13 (UnityEngine.Vector3)
IL_07DE: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_07E3: ldloca.s 34 (TransferManager+TransferOffer)
IL_07E5: ldc.i4.1
IL_07E6: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_07EB: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_07F0: ldc.i4.s 66
IL_07F2: ldloc.s 34 (TransferManager+TransferOffer)
IL_07F4: callvirt System.Void TransferManager::AddIncomingOffer(TransferReason
material, TransferOffer offer)
IL_07F9: Label25
IL_07F9: Label52
IL_07F9: Label53
IL_07F9: Label54
IL_07F9: Label55
IL_07F9: ldarg.0
IL_07FA: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_07FF: brtrue => Label56
IL_0804: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_0806: ldc.i4.s 32
IL_0808: and
IL_0809: brfalse => Label57
IL_080E: ldarg.2
IL_080F: dup
IL_0810: ldfld Flags NetSegment::m_flags
IL_0815: ldc.i4 1048576
IL_081A: or
IL_081B: stfld Flags NetSegment::m_flags
IL_0820: br => Label58
IL_0825: Label57
IL_0825: ldarg.2
IL_0826: dup
IL_0827: ldfld Flags NetSegment::m_flags
IL_082C: ldc.i4 -1048577
IL_0831: and
IL_0832: stfld Flags NetSegment::m_flags
IL_0837: Label58
IL_0837: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_0839: ldc.i4 128
IL_083E: and
IL_083F: brfalse => Label59
IL_0844: ldarg.2
IL_0845: dup
IL_0846: ldfld Flags NetSegment::m_flags
IL_084B: ldc.i4 8388608
IL_0850: or
IL_0851: stfld Flags NetSegment::m_flags
IL_0856: br => Label60
IL_085B: Label59
IL_085B: ldarg.2
IL_085C: dup
IL_085D: ldfld Flags NetSegment::m_flags
IL_0862: ldc.i4 -8388609
IL_0867: and
IL_0868: stfld Flags NetSegment::m_flags
IL_086D: Label60
IL_086D: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_086F: ldc.i4 512
IL_0874: and
IL_0875: brfalse => Label61
IL_087A: ldarg.2
IL_087B: dup
IL_087C: ldfld Flags NetSegment::m_flags
IL_0881: ldc.i4 16777216
IL_0886: or
IL_0887: stfld Flags NetSegment::m_flags
IL_088C: br => Label62
IL_0891: Label61
IL_0891: ldarg.2
IL_0892: dup
IL_0893: ldfld Flags NetSegment::m_flags
IL_0898: ldc.i4 -16777217
IL_089D: and
IL_089E: stfld Flags NetSegment::m_flags
IL_08A3: Label62
IL_08A3: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_08A5: ldc.i4 65536
IL_08AA: and
IL_08AB: brfalse => Label63
IL_08B0: ldarg.2
IL_08B1: dup
IL_08B2: ldfld Flags NetSegment::m_flags
IL_08B7: ldc.i4 256
IL_08BC: or
IL_08BD: stfld Flags NetSegment::m_flags
IL_08C2: br => Label64
IL_08C7: Label63
IL_08C7: ldarg.2
IL_08C8: dup
IL_08C9: ldfld Flags NetSegment::m_flags
IL_08CE: ldc.i4 -257
IL_08D3: and
IL_08D4: stfld Flags NetSegment::m_flags
IL_08D9: Label56
IL_08D9: Label64
IL_08D9: ldarg.0
IL_08DA: ldfld System.Int32 RoadBaseAI::m_noiseAccumulation
IL_08DF: ldloc.s 21 (System.Int32)
IL_08E1: mul
IL_08E2: ldc.i4.s 100
IL_08E4: div
IL_08E5: stloc.s 35 (System.Int32)
IL_08E7: ldloc.s 35 (System.Int32)
IL_08E9: brfalse => Label65
IL_08EE: ldloc.s 11 (UnityEngine.Vector3)
IL_08F0: ldloc.s 12 (UnityEngine.Vector3)
IL_08F2: call static System.Single
UnityEngine.Vector3::Distance(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_08F7: stloc.s 36 (System.Single)
IL_08F9: ldloc.s 36 (System.Single)
IL_08FB: ldarg.0
IL_08FC: ldfld System.Single RoadBaseAI::m_noiseRadius
IL_0901: div
IL_0902: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single
f)
IL_0907: stloc.s 37 (System.Int32)
IL_0909: ldc.i4.0
IL_090A: stloc.s 38 (System.Int32)
IL_090C: br => Label66
IL_0911: Label67
IL_0911: ldloc.s 11 (UnityEngine.Vector3)
IL_0913: ldloc.s 12 (UnityEngine.Vector3)
IL_0915: ldloc.s 38 (System.Int32)
IL_0917: ldc.i4.1
IL_0918: add
IL_0919: conv.r4
IL_091A: ldloc.s 37 (System.Int32)
IL_091C: ldc.i4.1
IL_091D: add
IL_091E: conv.r4
IL_091F: div
IL_0920: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_0925: stloc.s 39 (UnityEngine.Vector3)
IL_0927: call static ImmaterialResourceManager
ColossalFramework.Singleton`1<ImmaterialResourceManager>::get_instance()
IL_092C: ldc.i4.8
IL_092D: ldloc.s 35 (System.Int32)
IL_092F: ldloc.s 39 (UnityEngine.Vector3)
IL_0931: ldarg.0
IL_0932: ldfld System.Single RoadBaseAI::m_noiseRadius
IL_0937: callvirt System.Int32 ImmaterialResourceManager::AddResource(Resource
resource, System.Int32 rate, UnityEngine.Vector3 position, System.Single radius)
IL_093C: pop
IL_093D: ldloc.s 38 (System.Int32)
IL_093F: ldc.i4.1
IL_0940: add
IL_0941: stloc.s 38 (System.Int32)
IL_0943: Label66
IL_0943: ldloc.s 38 (System.Int32)
IL_0945: ldloc.s 37 (System.Int32)
IL_0947: blt => Label67
IL_094C: Label65
IL_094C: ldarg.2
IL_094D: ldfld System.Byte NetSegment::m_trafficDensity
IL_0952: ldc.i4.s 50
IL_0954: blt => Label68
IL_0959: ldarg.2
IL_095A: ldfld System.Single NetSegment::m_averageLength
IL_095F: ldc.r4 25
IL_0964: bge.un => Label69
IL_0969: ldloc.1
IL_096A: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_096F: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0974: ldarg.2
IL_0975: ldfld System.UInt16 NetSegment::m_startNode
IL_097A: ldelema NetNode
IL_097F: ldfld Flags NetNode::m_flags
IL_0984: ldc.i4 10485760
IL_0989: and
IL_098A: ldc.i4 8388608
IL_098F: bne.un => Label70
IL_0994: ldloc.1
IL_0995: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_099A: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_099F: ldarg.2
IL_09A0: ldfld System.UInt16 NetSegment::m_endNode
IL_09A5: ldelema NetNode
IL_09AA: ldfld Flags NetNode::m_flags
IL_09AF: ldc.i4 10485760
IL_09B4: and
IL_09B5: ldc.i4 8388608
IL_09BA: bne.un => Label71
IL_09BF: call static GuideManager
ColossalFramework.Singleton`1<GuideManager>::get_instance()
IL_09C4: ldfld GuideController SimulationManagerBase`2<GuideManager,
GuideController>::m_properties
IL_09C9: stloc.s 40 (GuideController)
IL_09CB: ldloc.s 40 (GuideController)
IL_09CD: brfalse => Label72
IL_09D2: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_09D7: ldfld NetSegmentInstanceGuide NetManager::m_shortRoadTraffic
IL_09DC: ldloc.s 40 (GuideController)
IL_09DE: ldfld GuideInfo GuideController::m_shortRoadTraffic
IL_09E3: ldarg.1
IL_09E4: ldc.i4.0
IL_09E5: callvirt System.Void NetSegmentInstanceGuide::Activate(GuideInfo
guideInfo, System.UInt16 segmentID, System.Boolean ignoreID)
IL_09EA: Label68
IL_09EA: Label69
IL_09EA: Label70
IL_09EA: Label71
IL_09EA: Label72
IL_09EA: ldarg.2
IL_09EB: ldfld Flags NetSegment::m_flags
IL_09F0: ldc.i4.8
IL_09F1: and
IL_09F2: brfalse => Label73
IL_09F7: call static GuideManager
ColossalFramework.Singleton`1<GuideManager>::get_instance()
IL_09FC: ldfld GuideController SimulationManagerBase`2<GuideManager,
GuideController>::m_properties
IL_0A01: stloc.s 41 (GuideController)
IL_0A03: ldloc.s 41 (GuideController)
IL_0A05: brfalse => Label74
IL_0A0A: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0A0F: ldfld NetSegmentInstanceGuide NetManager::m_roadDestroyed
IL_0A14: ldloc.s 41 (GuideController)
IL_0A16: ldfld GuideInfo GuideController::m_roadDestroyed
IL_0A1B: ldarg.1
IL_0A1C: ldc.i4.0
IL_0A1D: callvirt System.Void NetSegmentInstanceGuide::Activate(GuideInfo
guideInfo, System.UInt16 segmentID, System.Boolean ignoreID)
IL_0A22: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0A27: ldfld ServiceTypeGuide NetManager::m_roadDestroyed2
IL_0A2C: ldloc.s 41 (GuideController)
IL_0A2E: ldfld GuideInfo GuideController::m_roadDestroyed2
IL_0A33: ldarg.0
IL_0A34: ldfld NetInfo NetAI::m_info
IL_0A39: ldfld ItemClass NetInfo::m_class
IL_0A3E: ldfld Service ItemClass::m_service
IL_0A43: callvirt System.Void ServiceTypeGuide::Activate(GuideInfo guideInfo,
Service service)
IL_0A48: Label74
IL_0A48: ldloc.0
IL_0A49: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0A4E: ldc.i4.8
IL_0A4F: shr.un
IL_0A50: ldc.i4.s 15
IL_0A52: and
IL_0A53: conv.u8
IL_0A54: ldarg.1
IL_0A55: ldc.i4.s 15
IL_0A57: and
IL_0A58: conv.i8
IL_0A59: bne.un => Label75
IL_0A5E: ldarg.2
IL_0A5F: ldfld System.Single NetSegment::m_averageLength
IL_0A64: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_0A69: stloc.s 42 (System.Int32)
IL_0A6B: call static StatisticsManager
ColossalFramework.Singleton`1<StatisticsManager>::get_instance()
IL_0A70: ldc.i4.s 53
IL_0A72: callvirt StatisticBase StatisticsManager::Acquire(StatisticType type)
IL_0A77: stloc.s 43 (StatisticBase)
IL_0A79: ldloc.s 43 (StatisticBase)
IL_0A7B: ldloc.s 42 (System.Int32)
IL_0A7D: callvirt abstract virtual System.Void StatisticBase::Add(System.Int32
delta)
IL_0A82: Label73
IL_0A82: Label75
IL_0A82: ldarg.2
IL_0A83: ldloc.2
IL_0A84: stfld Problem NetSegment::m_problems
IL_0A89: // end original
IL_0A89: Label0
IL_0A89: 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: ldnull
IL_0018: ldarg 0
IL_001C: ldarg 1
IL_0020: call static System.Boolean
TrafficManager.Patch._RoadBaseAI.TrafficLightSimulationStepPatch::Prefix(RoadBaseAI
__instance, System.UInt16 nodeID, NetNode& data)
IL_0025: stloc 20 (System.Boolean)
IL_0029: Label1
IL_0029: nop
IL_002A: ldloc 20 (System.Boolean)
IL_002E: brfalse => Label0
IL_0033: // start original
IL_0033: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0038: stloc.0
IL_0039: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_003E: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0043: stloc.1
IL_0044: ldc.i4.0
IL_0045: stloc.2
IL_0046: ldc.i4.0
IL_0047: stloc.3
IL_0048: ldc.i4.0
IL_0049: stloc.s 4 (System.Int32)
IL_004B: br => Label2
IL_0050: Label14
IL_0050: ldarg.1
IL_0051: ldloc.s 4 (System.Int32)
IL_0053: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0058: stloc.s 5 (System.UInt16)
IL_005A: ldloc.s 5 (System.UInt16)
IL_005C: brfalse => Label3
IL_0061: ldloc.0
IL_0062: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0067: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_006C: ldloc.s 5 (System.UInt16)
IL_006E: ldelema NetSegment
IL_0073: call NetInfo NetSegment::get_Info()
IL_0078: stloc.s 6 (NetInfo)
IL_007A: ldloc.s 6 (NetInfo)
IL_007C: ldfld ItemClass NetInfo::m_class
IL_0081: ldfld Service ItemClass::m_service
IL_0086: ldc.i4.s 9
IL_0088: beq => Label4
IL_008D: ldloc.s 6 (NetInfo)
IL_008F: ldfld Lane[] NetInfo::m_lanes
IL_0094: brfalse => Label5
IL_0099: ldloc.0
IL_009A: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_009F: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00A4: ldloc.s 5 (System.UInt16)
IL_00A6: ldelema NetSegment
IL_00AB: ldfld System.UInt16 NetSegment::m_startNode
IL_00B0: ldarg.0
IL_00B1: ceq
IL_00B3: stloc.s 7 (System.Boolean)
IL_00B5: ldloc.0
IL_00B6: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_00BB: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00C0: ldloc.s 5 (System.UInt16)
IL_00C2: ldelema NetSegment
IL_00C7: ldfld System.UInt32 NetSegment::m_lanes
IL_00CC: stloc.s 8 (System.UInt32)
IL_00CE: ldc.i4.0
IL_00CF: stloc.s 9 (System.Int32)
IL_00D1: br => Label6
IL_00D6: Label12
IL_00D6: ldloc.s 6 (NetInfo)
IL_00D8: ldfld Lane[] NetInfo::m_lanes
IL_00DD: ldloc.s 9 (System.Int32)
IL_00DF: ldelem.ref
IL_00E0: ldfld LaneType Lane::m_laneType
IL_00E5: ldc.i4.1
IL_00E6: bne.un => Label7
IL_00EB: ldloc.0
IL_00EC: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00F1: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00F6: ldloc.s 8 (System.UInt32)
IL_00F8: conv.u
IL_00F9: ldelema NetLane
IL_00FE: ldloc.s 7 (System.Boolean)
IL_0100: brfalse => Label8
IL_0105: ldc.r4 0
IL_010A: br => Label9
IL_010F: Label8
IL_010F: ldc.r4 1
IL_0114: Label9
IL_0114: call UnityEngine.Vector3 NetLane::CalculatePosition(System.Single
laneOffset)
IL_0119: stloc.s 10 (UnityEngine.Vector3)
IL_011B: ldloc.s 10 (UnityEngine.Vector3)
IL_011D: call static System.Boolean
TrainTrackBaseAI::CheckOverlap(UnityEngine.Vector3 pos)
IL_0122: brfalse => Label10
IL_0127: ldc.i4.1
IL_0128: stloc.2
IL_0129: Label7
IL_0129: Label10
IL_0129: ldloc.0
IL_012A: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_012F: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0134: ldloc.s 8 (System.UInt32)
IL_0136: conv.u
IL_0137: ldelema NetLane
IL_013C: ldfld System.UInt32 NetLane::m_nextLane
IL_0141: stloc.s 8 (System.UInt32)
IL_0143: ldloc.s 9 (System.Int32)
IL_0145: ldc.i4.1
IL_0146: add
IL_0147: stloc.s 9 (System.Int32)
IL_0149: Label6
IL_0149: ldloc.s 9 (System.Int32)
IL_014B: ldloc.s 6 (NetInfo)
IL_014D: ldfld Lane[] NetInfo::m_lanes
IL_0152: ldlen
IL_0153: conv.i4
IL_0154: bge => Label11
IL_0159: ldloc.s 8 (System.UInt32)
IL_015B: brtrue => Label12
IL_0160: Label5
IL_0160: Label11
IL_0160: ldarg.0
IL_0161: ldloc.0
IL_0162: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0167: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_016C: ldloc.s 5 (System.UInt16)
IL_016E: ldelema NetSegment
IL_0173: ldloc.1
IL_0174: ldc.i4 256
IL_0179: sub
IL_017A: ldloca.s 11 (RoadBaseAI+TrafficLightState)
IL_017C: ldloca.s 12 (RoadBaseAI+TrafficLightState)
IL_017E: ldloca.s 13 (System.Boolean)
IL_0180: ldloca.s 14 (System.Boolean)
IL_0182: 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_0187: ldloc.s 13 (System.Boolean)
IL_0189: brfalse => Label13
IL_018E: ldc.i4.1
IL_018F: stloc.2
IL_0190: Label3
IL_0190: Label4
IL_0190: Label13
IL_0190: ldloc.s 4 (System.Int32)
IL_0192: ldc.i4.1
IL_0193: add
IL_0194: stloc.s 4 (System.Int32)
IL_0196: Label2
IL_0196: ldloc.s 4 (System.Int32)
IL_0198: ldc.i4.8
IL_0199: blt => Label14
IL_019E: ldloc.2
IL_019F: stloc.3
IL_01A0: ldc.i4.0
IL_01A1: stloc.s 15 (System.Int32)
IL_01A3: br => Label15
IL_01A8: Label29
IL_01A8: ldarg.1
IL_01A9: ldloc.s 15 (System.Int32)
IL_01AB: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_01B0: stloc.s 16 (System.UInt16)
IL_01B2: ldloc.s 16 (System.UInt16)
IL_01B4: brfalse => Label16
IL_01B9: ldloc.0
IL_01BA: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01BF: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01C4: ldloc.s 16 (System.UInt16)
IL_01C6: ldelema NetSegment
IL_01CB: call NetInfo NetSegment::get_Info()
IL_01D0: stloc.s 17 (NetInfo)
IL_01D2: ldarg.0
IL_01D3: ldloc.0
IL_01D4: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01D9: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01DE: ldloc.s 16 (System.UInt16)
IL_01E0: ldelema NetSegment
IL_01E5: ldloc.1
IL_01E6: ldc.i4 256
IL_01EB: sub
IL_01EC: ldloca.s 18 (RoadBaseAI+TrafficLightState)
IL_01EE: ldloca.s 19 (RoadBaseAI+TrafficLightState)
IL_01F0: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_01F5: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01F7: ldc.i4.s -2
IL_01F9: and
IL_01FA: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01FC: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_01FE: ldc.i4.s -2
IL_0200: and
IL_0201: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0203: ldloc.s 17 (NetInfo)
IL_0205: ldfld ItemClass NetInfo::m_class
IL_020A: ldfld Service ItemClass::m_service
IL_020F: ldc.i4.s 9
IL_0211: bne.un => Label17
IL_0216: ldloc.3
IL_0217: brfalse => Label18
IL_021C: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_021E: ldc.i4.2
IL_021F: and
IL_0220: brtrue => Label19
IL_0225: ldc.i4.3
IL_0226: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0228: Label19
IL_0228: br => Label20
IL_022D: Label18
IL_022D: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_022F: ldc.i4.2
IL_0230: and
IL_0231: brfalse => Label21
IL_0236: ldc.i4.1
IL_0237: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0239: Label20
IL_0239: Label21
IL_0239: ldc.i4.0
IL_023A: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_023C: br => Label22
IL_0241: Label17
IL_0241: ldloc.3
IL_0242: brfalse => Label23
IL_0247: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0249: ldc.i4.2
IL_024A: and
IL_024B: brfalse => Label24
IL_0250: ldc.i4.1
IL_0251: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0253: Label24
IL_0253: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0255: ldc.i4.2
IL_0256: and
IL_0257: brtrue => Label25
IL_025C: ldc.i4.3
IL_025D: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_025F: Label25
IL_025F: br => Label26
IL_0264: Label23
IL_0264: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0266: ldc.i4.2
IL_0267: and
IL_0268: brtrue => Label27
IL_026D: ldc.i4.3
IL_026E: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0270: Label27
IL_0270: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0272: ldc.i4.2
IL_0273: and
IL_0274: brfalse => Label28
IL_0279: ldc.i4.1
IL_027A: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_027C: Label22
IL_027C: Label26
IL_027C: Label28
IL_027C: ldarg.0
IL_027D: ldloc.0
IL_027E: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0283: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0288: ldloc.s 16 (System.UInt16)
IL_028A: ldelema NetSegment
IL_028F: ldloc.1
IL_0290: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0292: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0294: ldc.i4.0
IL_0295: ldc.i4.0
IL_0296: 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_029B: Label16
IL_029B: ldloc.s 15 (System.Int32)
IL_029D: ldc.i4.1
IL_029E: add
IL_029F: stloc.s 15 (System.Int32)
IL_02A1: Label15
IL_02A1: ldloc.s 15 (System.Int32)
IL_02A3: ldc.i4.8
IL_02A4: blt => Label29
IL_02A9: // end original
IL_02A9: Label0
IL_02A9: 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._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<CitizenManager>::get_instance()
IL_0045: stloc.1
IL_0046: ldloc.1
IL_0047: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_004C: ldfld Citizen[] Array32`1<Citizen>::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<NetManager>::get_instance()
IL_0089: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008E: ldfld NetNode[] Array16`1<NetNode>::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<TransportManager>::get_instance()
IL_00AA: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_00AF: ldfld TransportLine[] Array16`1<TransportLine>::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<Citizen> CitizenManager::m_citizens
IL_0145: ldfld Citizen[] Array32`1<Citizen>::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<Citizen> CitizenManager::m_citizens
IL_016E: ldfld Citizen[] Array32`1<Citizen>::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<BuildingManager>::get_instance()
IL_018A: stloc.s 5 (BuildingManager)
IL_018C: ldloc.s 5 (BuildingManager)
IL_018E: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0193: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_01BE: ldfld Building[] Array16`1<Building>::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: 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<SimulationManager>::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<BuildingManager>::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<InfoManager>::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<NetManager>::get_instance()
IL_0036: stloc.0
IL_0037: ldloc.0
IL_0038: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0074: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16>
NetManager::m_updateNameVisibility
IL_00CF: ldarg.1
IL_00D0: callvirt System.Boolean
System.Collections.Generic.HashSet`1<System.UInt16>::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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<CustomAssetMetaData>::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<CustomAssetMetaData>::GetListingMetaData(System.Int32 index)
IL_0037: stloc.0
IL_0038: ldarg.0
IL_0039: ldloc.0
IL_003A: call System.Void
LoadSavePanelBase`1<CustomAssetMetaData>::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<CustomAssetMetaData>::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<SimulationManager>::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<SimulationManager>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_010B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<VehicleInfo>::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<VehicleInfo>::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<VehicleInfo>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_023B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<BuildingInfo>::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<BuildingInfo>::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<BuildingInfo>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_036B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<BuildingInfo>::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<BuildingInfo>::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<BuildingInfo>::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<BuildingManager>::get_instance()
IL_0482: callvirt virtual System.Void SimulationManagerBase`2<BuildingManager,
BuildingProperties>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_04A5: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<BuildingInfo>::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<CitizenInfo>::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<VehicleInfo>::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<PropInfo>::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<TreeInfo>::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<NetInfo>::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
IL_00B7: br => Label37
IL_00BC: Label0
IL_00BC: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00C1: ldc.i4.0
IL_00C2: ldc.i4.0
IL_00C3: ldc.i4.m1
IL_00C4: ldc.r4 300
IL_00C9: ldc.i4.0
IL_00CA: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_00CF: br => Label38
IL_00D4: Label1
IL_00D4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00D9: ldc.i4.0
IL_00DA: ldc.i4.0
IL_00DB: ldc.i4.m1
IL_00DC: ldc.r4 300
IL_00E1: ldc.i4.0
IL_00E2: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_00E7: br => Label39
IL_00EC: Label2
IL_00EC: ldarg.2
IL_00ED: brtrue => Label40
IL_00F2: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00F7: ldc.i4.s 15
IL_00F9: ldc.i4.0
IL_00FA: ldc.i4.0
IL_00FB: ldc.r4 500
IL_0100: ldc.i4.0
IL_0101: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0106: br => Label41
IL_010B: Label40
IL_010B: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0110: ldc.i4.0
IL_0111: ldc.i4.0
IL_0112: ldc.i4.m1
IL_0113: ldc.r4 300
IL_0118: ldc.i4.0
IL_0119: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_011E: Label41
IL_011E: br => Label42
IL_0123: Label3
IL_0123: ldarg.2
IL_0124: ldc.i4.1
IL_0125: bne.un => Label43
IL_012A: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_012F: ldc.i4.s 14
IL_0131: ldc.i4.0
IL_0132: ldc.i4.1
IL_0133: ldc.r4 500
IL_0138: ldc.i4.0
IL_0139: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_013E: br => Label44
IL_0143: Label43
IL_0143: ldarg.2
IL_0144: ldc.i4.3
IL_0145: bne.un => Label45
IL_014A: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_014F: ldc.i4.s 14
IL_0151: ldc.i4.0
IL_0152: ldc.i4.4
IL_0153: ldc.r4 500
IL_0158: ldc.i4.0
IL_0159: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_015E: br => Label46
IL_0163: Label45
IL_0163: ldarg.2
IL_0164: ldc.i4.2
IL_0165: bne.un => Label47
IL_016A: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_016F: ldc.i4.s 14
IL_0171: ldc.i4.0
IL_0172: ldc.i4.3
IL_0173: ldc.r4 500
IL_0178: ldc.i4.0
IL_0179: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_017E: br => Label48
IL_0183: Label47
IL_0183: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0188: ldc.i4.s 14
IL_018A: ldc.i4.0
IL_018B: ldc.i4.0
IL_018C: ldc.r4 500
IL_0191: ldc.i4.0
IL_0192: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0197: Label44
IL_0197: Label46
IL_0197: Label48
IL_0197: br => Label49
IL_019C: Label12
IL_019C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01A1: ldc.i4.0
IL_01A2: ldc.i4.0
IL_01A3: ldc.i4.m1
IL_01A4: ldc.r4 300
IL_01A9: ldc.i4.0
IL_01AA: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01AF: br => Label50
IL_01B4: Label4
IL_01B4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01B9: ldc.i4.0
IL_01BA: ldc.i4.0
IL_01BB: ldc.i4.m1
IL_01BC: ldc.r4 300
IL_01C1: ldc.i4.0
IL_01C2: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01C7: br => Label51
IL_01CC: Label5
IL_01CC: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01D1: ldc.i4.0
IL_01D2: ldc.i4.0
IL_01D3: ldc.i4.m1
IL_01D4: ldc.r4 300
IL_01D9: ldc.i4.0
IL_01DA: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01DF: br => Label52
IL_01E4: Label8
IL_01E4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01E9: ldc.i4.0
IL_01EA: ldc.i4.0
IL_01EB: ldc.i4.m1
IL_01EC: ldc.r4 300
IL_01F1: ldc.i4.0
IL_01F2: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01F7: br => Label53
IL_01FC: Label6
IL_01FC: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0201: ldc.i4.0
IL_0202: ldc.i4.0
IL_0203: ldc.i4.m1
IL_0204: ldc.r4 300
IL_0209: ldc.i4.0
IL_020A: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_020F: br => Label54
IL_0214: Label7
IL_0214: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0219: ldc.i4.0
IL_021A: ldc.i4.0
IL_021B: ldc.i4.m1
IL_021C: ldc.r4 300
IL_0221: ldc.i4.0
IL_0222: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0227: br => Label55
IL_022C: Label9
IL_022C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0231: ldc.i4.0
IL_0232: ldc.i4.0
IL_0233: ldc.i4.m1
IL_0234: ldc.r4 300
IL_0239: ldc.i4.0
IL_023A: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_023F: br => Label56
IL_0244: Label10
IL_0244: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0249: ldc.i4.0
IL_024A: ldc.i4.0
IL_024B: ldc.i4.m1
IL_024C: ldc.r4 300
IL_0251: ldc.i4.0
IL_0252: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0257: br => Label57
IL_025C: Label11
IL_025C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0261: ldc.i4.0
IL_0262: ldc.i4.0
IL_0263: ldc.i4.m1
IL_0264: ldc.r4 300
IL_0269: ldc.i4.0
IL_026A: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_026F: br => Label58
IL_0274: Label14
IL_0274: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0279: ldc.i4.0
IL_027A: ldc.i4.0
IL_027B: ldc.i4.m1
IL_027C: ldc.r4 300
IL_0281: ldc.i4.0
IL_0282: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0287: br => Label59
IL_028C: Label17
IL_028C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0291: ldc.i4.s 18
IL_0293: ldc.i4.0
IL_0294: ldc.i4.0
IL_0295: ldc.r4 500
IL_029A: ldc.i4.0
IL_029B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02A0: br => Label60
IL_02A5: Label19
IL_02A5: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02AA: ldc.i4.0
IL_02AB: ldc.i4.0
IL_02AC: ldc.i4.m1
IL_02AD: ldc.r4 300
IL_02B2: ldc.i4.1
IL_02B3: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02B8: br => Label61
IL_02BD: Label18
IL_02BD: ldarg.2
IL_02BE: ldc.i4.1
IL_02BF: bne.un => Label62
IL_02C4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02C9: ldc.i4.s 16
IL_02CB: ldc.i4.0
IL_02CC: ldc.i4.1
IL_02CD: ldc.r4 500
IL_02D2: ldc.i4.1
IL_02D3: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02D8: br => Label63
IL_02DD: Label62
IL_02DD: ldarg.2
IL_02DE: ldc.i4.2
IL_02DF: bne.un => Label64
IL_02E4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02E9: ldc.i4.s 16
IL_02EB: ldc.i4.0
IL_02EC: ldc.i4.2
IL_02ED: ldc.r4 500
IL_02F2: ldc.i4.1
IL_02F3: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02F8: br => Label65
IL_02FD: Label64
IL_02FD: ldarg.2
IL_02FE: brtrue => Label66
IL_0303: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0308: ldc.i4.s 16
IL_030A: ldc.i4.0
IL_030B: ldc.i4.0
IL_030C: ldc.r4 500
IL_0311: ldc.i4.1
IL_0312: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0317: br => Label67
IL_031C: Label66
IL_031C: ldarg.2
IL_031D: ldc.i4.4
IL_031E: bne.un => Label68
IL_0323: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0328: ldc.i4.s 16
IL_032A: ldc.i4.0
IL_032B: ldc.i4.3
IL_032C: ldc.r4 500
IL_0331: ldc.i4.1
IL_0332: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0337: br => Label69
IL_033C: Label68
IL_033C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0341: ldc.i4.s 16
IL_0343: ldc.i4.0
IL_0344: ldc.i4.2
IL_0345: ldc.r4 500
IL_034A: ldc.i4.1
IL_034B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0350: Label63
IL_0350: Label65
IL_0350: Label67
IL_0350: Label69
IL_0350: br => Label70
IL_0355: Label16
IL_0355: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_035A: ldc.i4.0
IL_035B: ldc.i4.0
IL_035C: ldc.i4.m1
IL_035D: ldc.r4 300
IL_0362: ldc.i4.0
IL_0363: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0368: br => Label71
IL_036D: Label13
IL_036D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0372: ldc.i4.0
IL_0373: ldc.i4.0
IL_0374: ldc.i4.m1
IL_0375: ldc.r4 300
IL_037A: ldc.i4.0
IL_037B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0380: br => Label72
IL_0385: Label15
IL_0385: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_038A: ldc.i4.s 13
IL_038C: ldc.i4.0
IL_038D: ldc.i4.m1
IL_038E: ldc.r4 2000
IL_0393: ldc.i4.0
IL_0394: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0399: br => Label73
IL_039E: Label20
IL_039E: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03A3: ldc.i4.0
IL_03A4: ldc.i4.0
IL_03A5: ldc.i4.m1
IL_03A6: ldc.r4 300
IL_03AB: ldc.i4.0
IL_03AC: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03B1: br => Label74
IL_03B6: Label21
IL_03B6: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03BB: ldc.i4.0
IL_03BC: ldc.i4.0
IL_03BD: ldc.i4.m1
IL_03BE: ldc.r4 300
IL_03C3: ldc.i4.0
IL_03C4: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03C9: br => Label75
IL_03CE: Label22
IL_03CE: ldarg.2
IL_03CF: brtrue => Label76
IL_03D4: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03D9: ldc.i4.s 9
IL_03DB: ldc.i4.0
IL_03DC: ldc.i4.1
IL_03DD: ldc.r4 2000
IL_03E2: ldc.i4.0
IL_03E3: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03E8: br => Label77
IL_03ED: Label76
IL_03ED: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03F2: ldc.i4.0
IL_03F3: ldc.i4.0
IL_03F4: ldc.i4.m1
IL_03F5: ldc.r4 300
IL_03FA: ldc.i4.0
IL_03FB: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0400: Label77
IL_0400: br => Label78
IL_0405: Label23
IL_0405: ldarg.2
IL_0406: brtrue => Label79
IL_040B: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0410: ldc.i4.s 9
IL_0412: ldc.i4.0
IL_0413: ldc.i4.3
IL_0414: ldc.r4 2000
IL_0419: ldc.i4.0
IL_041A: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_041F: br => Label80
IL_0424: Label79
IL_0424: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0429: ldc.i4.0
IL_042A: ldc.i4.0
IL_042B: ldc.i4.m1
IL_042C: ldc.r4 300
IL_0431: ldc.i4.0
IL_0432: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0437: Label80
IL_0437: br => Label81
IL_043C: Label24
IL_043C: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0441: ldc.i4.s 20
IL_0443: ldc.i4.0
IL_0444: ldc.i4.3
IL_0445: ldc.r4 500
IL_044A: ldc.i4.1
IL_044B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0450: br => Label82
IL_0455: Label25
IL_0455: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_045A: ldc.i4.0
IL_045B: ldc.i4.0
IL_045C: ldc.i4.m1
IL_045D: ldc.r4 300
IL_0462: ldc.i4.0
IL_0463: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0468: br => Label83
IL_046D: Label26
IL_046D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0472: ldc.i4.s 20
IL_0474: ldc.i4.0
IL_0475: ldc.i4.1
IL_0476: ldc.r4 2000
IL_047B: ldc.i4.0
IL_047C: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0481: br => Label84
IL_0486: Label27
IL_0486: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_048B: ldc.i4.0
IL_048C: ldc.i4.0
IL_048D: ldc.i4.m1
IL_048E: ldc.r4 300
IL_0493: ldc.i4.0
IL_0494: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0499: br => Label85
IL_049E: Label28
IL_049E: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04A3: ldc.i4.0
IL_04A4: ldc.i4.0
IL_04A5: ldc.i4.m1
IL_04A6: ldc.r4 300
IL_04AB: ldc.i4.0
IL_04AC: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04B1: br => Label86
IL_04B6: Label29
IL_04B6: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04BB: ldc.i4.0
IL_04BC: ldc.i4.0
IL_04BD: ldc.i4.m1
IL_04BE: ldc.r4 300
IL_04C3: ldc.i4.0
IL_04C4: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04C9: br => Label87
IL_04CE: Label30
IL_04CE: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04D3: ldc.i4.0
IL_04D4: ldc.i4.0
IL_04D5: ldc.i4.m1
IL_04D6: ldc.r4 300
IL_04DB: ldc.i4.0
IL_04DC: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04E1: br => Label88
IL_04E6: Label31
IL_04E6: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04EB: ldc.i4.0
IL_04EC: ldc.i4.0
IL_04ED: ldc.i4.m1
IL_04EE: ldc.r4 300
IL_04F3: ldc.i4.0
IL_04F4: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04F9: br => Label89
IL_04FE: Label32
IL_04FE: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0503: ldc.i4.s 12
IL_0505: ldc.i4.s 17
IL_0507: ldc.i4.1
IL_0508: ldc.r4 2000
IL_050D: ldc.i4.0
IL_050E: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0513: br => Label90
IL_0518: Label33
IL_0518: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_051D: ldc.i4.0
IL_051E: ldc.i4.0
IL_051F: ldc.i4.m1
IL_0520: ldc.r4 300
IL_0525: ldc.i4.0
IL_0526: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_052B: br => Label91
IL_0530: Label34
IL_0530: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0535: ldc.i4.s 19
IL_0537: ldc.i4.s 28
IL_0539: ldc.i4.1
IL_053A: ldc.r4 500
IL_053F: ldc.i4.0
IL_0540: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0545: br => Label92
IL_054A: Label35
IL_054A: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_054F: ldc.i4.0
IL_0550: ldc.i4.0
IL_0551: ldc.i4.m1
IL_0552: ldc.r4 300
IL_0557: ldc.i4.0
IL_0558: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_055D: br => Label93
IL_0562: Label36
IL_0562: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0567: ldc.i4.0
IL_0568: ldc.i4.0
IL_0569: ldc.i4.m1
IL_056A: ldc.r4 300
IL_056F: ldc.i4.0
IL_0570: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0575: br => Label94
IL_057A: Label37
IL_057A: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_057F: ldc.i4.0
IL_0580: ldc.i4.0
IL_0581: ldc.i4.m1
IL_0582: ldc.r4 300
IL_0587: ldc.i4.0
IL_0588: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_058D: br => Label95
IL_0592: // end original
IL_0592: Label38
IL_0592: Label39
IL_0592: Label42
IL_0592: Label49
IL_0592: Label50
IL_0592: Label51
IL_0592: Label52
IL_0592: Label53
IL_0592: Label54
IL_0592: Label55
IL_0592: Label56
IL_0592: Label57
IL_0592: Label58
IL_0592: Label59
IL_0592: Label60
IL_0592: Label61
IL_0592: Label70
IL_0592: Label71
IL_0592: Label72
IL_0592: Label73
IL_0592: Label74
IL_0592: Label75
IL_0592: Label78
IL_0592: Label81
IL_0592: Label82
IL_0592: Label83
IL_0592: Label84
IL_0592: Label85
IL_0592: Label86
IL_0592: Label87
IL_0592: Label88
IL_0592: Label89
IL_0592: Label90
IL_0592: Label91
IL_0592: Label92
IL_0592: Label93
IL_0592: Label94
IL_0592: Label95
IL_0592: 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<SimulationManager>::get_instance()
IL_0046: ldarg.0
IL_0047: ldftn System.Void DefaultTool::<OnToolGUI>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<InstanceManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<BuildingManager>::get_instance()
IL_017E: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0183: ldfld Building[] Array16`1<Building>::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<SimulationManager>::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<SimulationManager>::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::<OnToolGUI>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<SimulationManager>::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::<OnToolGUI>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<LogChannel>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<BuildingManager>::get_instance()
IL_04D2: stloc.s 13 (BuildingManager)
IL_04D4: ldloc.s 13 (BuildingManager)
IL_04D6: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_04DB: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_04FA: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0555: ldfld Building[] Array16`1<Building>::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<VehicleManager>::get_instance()
IL_0590: stloc.s 16 (VehicleManager)
IL_0592: ldloc.s 16 (VehicleManager)
IL_0594: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0599: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_05B8: ldfld Vehicle[] Array16`1<Vehicle>::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})"
IL_05DD: ldc.i4.2
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: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_0601: stloc.s 12 (System.String)
IL_0603: ldloc.s 17 (VehicleInfo)
IL_0605: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_060A: ldloc.s 8 (System.UInt16)
IL_060C: ldloc.s 16 (VehicleManager)
IL_060E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0613: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0618: ldloc.s 8 (System.UInt16)
IL_061A: ldelema Vehicle
IL_061F: callvirt virtual System.String VehicleAI::GetDebugString(System.UInt16
vehicleID, Vehicle& data)
IL_0624: stloc.s 18 (System.String)
IL_0626: ldloc.s 18 (System.String)
IL_0628: brfalse => Label68
IL_062D: ldloc.s 12 (System.String)
IL_062F: ldstr "\n"
IL_0634: ldloc.s 18 (System.String)
IL_0636: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_063B: stloc.s 12 (System.String)
IL_063D: Label66
IL_063D: Label67
IL_063D: Label68
IL_063D: br => Label69
IL_0642: Label65
IL_0642: ldloc.s 9 (System.UInt16)
IL_0644: brfalse => Label70
IL_0649: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_064E: stloc.s 19 (VehicleManager)
IL_0650: ldloc.s 19 (VehicleManager)
IL_0652: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_0657: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_065C: ldloc.s 9 (System.UInt16)
IL_065E: ldelema VehicleParked
IL_0663: ldfld System.UInt16 VehicleParked::m_flags
IL_0668: ldc.i4.1
IL_0669: and
IL_066A: brfalse => Label71
IL_066F: ldloc.s 19 (VehicleManager)
IL_0671: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_0676: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_067B: ldloc.s 9 (System.UInt16)
IL_067D: ldelema VehicleParked
IL_0682: call VehicleInfo VehicleParked::get_Info()
IL_0687: stloc.s 20 (VehicleInfo)
IL_0689: ldloc.s 20 (VehicleInfo)
IL_068B: ldnull
IL_068C: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0691: brfalse => Label72
IL_0696: ldstr "{0} ({1})"
IL_069B: ldc.i4.2
IL_069C: newarr System.Object
IL_06A1: dup
IL_06A2: ldc.i4.0
IL_06A3: ldloc.s 20 (VehicleInfo)
IL_06A5: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_06AA: callvirt System.String UnityEngine.Object::get_name()
IL_06AF: stelem.ref
IL_06B0: dup
IL_06B1: ldc.i4.1
IL_06B2: ldloc.s 9 (System.UInt16)
IL_06B4: box System.UInt16
IL_06B9: stelem.ref
IL_06BA: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_06BF: stloc.s 12 (System.String)
IL_06C1: ldloc.s 20 (VehicleInfo)
IL_06C3: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_06C8: ldloc.s 9 (System.UInt16)
IL_06CA: ldloc.s 19 (VehicleManager)
IL_06CC: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_06D1: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_06D6: ldloc.s 9 (System.UInt16)
IL_06D8: ldelema VehicleParked
IL_06DD: callvirt virtual System.String VehicleAI::GetDebugString(System.UInt16
parkedVehicleID, VehicleParked& data)
IL_06E2: stloc.s 21 (System.String)
IL_06E4: ldloc.s 21 (System.String)
IL_06E6: brfalse => Label73
IL_06EB: ldloc.s 12 (System.String)
IL_06ED: ldstr "\n"
IL_06F2: ldloc.s 21 (System.String)
IL_06F4: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_06F9: stloc.s 12 (System.String)
IL_06FB: Label71
IL_06FB: Label72
IL_06FB: Label73
IL_06FB: br => Label74
IL_0700: Label70
IL_0700: ldloc.s 10 (System.UInt16)
IL_0702: brfalse => Label75
IL_0707: call static CitizenManager
ColossalFramework.Singleton`1<CitizenManager>::get_instance()
IL_070C: stloc.s 22 (CitizenManager)
IL_070E: ldloc.s 22 (CitizenManager)
IL_0710: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0715: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_071A: ldloc.s 10 (System.UInt16)
IL_071C: ldelema CitizenInstance
IL_0721: ldfld Flags CitizenInstance::m_flags
IL_0726: ldc.i4.1
IL_0727: and
IL_0728: brfalse => Label76
IL_072D: ldloc.s 22 (CitizenManager)
IL_072F: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0734: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0739: ldloc.s 10 (System.UInt16)
IL_073B: ldelema CitizenInstance
IL_0740: call CitizenInfo CitizenInstance::get_Info()
IL_0745: stloc.s 23 (CitizenInfo)
IL_0747: ldloc.s 23 (CitizenInfo)
IL_0749: ldnull
IL_074A: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_074F: brfalse => Label77
IL_0754: ldstr "{0} ({1})"
IL_0759: ldc.i4.2
IL_075A: newarr System.Object
IL_075F: dup
IL_0760: ldc.i4.0
IL_0761: ldloc.s 23 (CitizenInfo)
IL_0763: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_0768: callvirt System.String UnityEngine.Object::get_name()
IL_076D: stelem.ref
IL_076E: dup
IL_076F: ldc.i4.1
IL_0770: ldloc.s 10 (System.UInt16)
IL_0772: box System.UInt16
IL_0777: stelem.ref
IL_0778: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_077D: stloc.s 12 (System.String)
IL_077F: ldloc.s 23 (CitizenInfo)
IL_0781: ldfld CitizenAI CitizenInfo::m_citizenAI
IL_0786: ldloc.s 10 (System.UInt16)
IL_0788: ldloc.s 22 (CitizenManager)
IL_078A: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_078F: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0794: ldloc.s 10 (System.UInt16)
IL_0796: ldelema CitizenInstance
IL_079B: callvirt virtual System.String CitizenAI::GetDebugString(System.UInt16
instanceID, CitizenInstance& data)
IL_07A0: stloc.s 24 (System.String)
IL_07A2: ldloc.s 24 (System.String)
IL_07A4: brfalse => Label78
IL_07A9: ldloc.s 12 (System.String)
IL_07AB: ldstr "\n"
IL_07B0: ldloc.s 24 (System.String)
IL_07B2: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_07B7: stloc.s 12 (System.String)
IL_07B9: Label76
IL_07B9: Label77
IL_07B9: Label78
IL_07B9: br => Label79
IL_07BE: Label75
IL_07BE: ldloc.s 11 (System.UInt16)
IL_07C0: brfalse => Label80
IL_07C5: call static TransportManager
ColossalFramework.Singleton`1<TransportManager>::get_instance()
IL_07CA: stloc.s 25 (TransportManager)
IL_07CC: ldloc.s 25 (TransportManager)
IL_07CE: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_07D3: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_07D8: ldloc.s 11 (System.UInt16)
IL_07DA: ldelema TransportLine
IL_07DF: ldfld Flags TransportLine::m_flags
IL_07E4: ldc.i4.1
IL_07E5: and
IL_07E6: brfalse => Label81
IL_07EB: ldloc.s 25 (TransportManager)
IL_07ED: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_07F2: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_07F7: ldloc.s 11 (System.UInt16)
IL_07F9: ldelema TransportLine
IL_07FE: call TransportInfo TransportLine::get_Info()
IL_0803: stloc.s 26 (TransportInfo)
IL_0805: ldloc.s 26 (TransportInfo)
IL_0807: ldnull
IL_0808: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_080D: brfalse => Label82
IL_0812: ldstr "{0} ({1})"
IL_0817: ldc.i4.2
IL_0818: newarr System.Object
IL_081D: dup
IL_081E: ldc.i4.0
IL_081F: ldloc.s 26 (TransportInfo)
IL_0821: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_0826: callvirt System.String UnityEngine.Object::get_name()
IL_082B: stelem.ref
IL_082C: dup
IL_082D: ldc.i4.1
IL_082E: ldloc.s 11 (System.UInt16)
IL_0830: box System.UInt16
IL_0835: stelem.ref
IL_0836: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_083B: stloc.s 12 (System.String)
IL_083D: ldloc.s 25 (TransportManager)
IL_083F: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_0844: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_0849: ldloc.s 11 (System.UInt16)
IL_084B: ldelema TransportLine
IL_0850: ldloc.s 11 (System.UInt16)
IL_0852: call System.String TransportLine::GetDebugString(System.UInt16
lineID)
IL_0857: stloc.s 27 (System.String)
IL_0859: ldloc.s 27 (System.String)
IL_085B: brfalse => Label83
IL_0860: ldloc.s 12 (System.String)
IL_0862: ldstr "\n"
IL_0867: ldloc.s 27 (System.String)
IL_0869: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_086E: stloc.s 12 (System.String)
IL_0870: Label64
IL_0870: Label69
IL_0870: Label74
IL_0870: Label79
IL_0870: Label80
IL_0870: Label81
IL_0870: Label82
IL_0870: Label83
IL_0870: ldloc.s 12 (System.String)
IL_0872: brfalse => Label84
IL_0877: ldloc.s 6 (InstanceID)
IL_0879: ldloca.s 28 (UnityEngine.Vector3)
IL_087B: ldloca.s 29 (UnityEngine.Quaternion)
IL_087D: ldloca.s 30 (UnityEngine.Vector3)
IL_087F: call static System.Boolean InstanceManager::GetPosition(InstanceID
id, UnityEngine.Vector3& position, UnityEngine.Quaternion& rotation,
UnityEngine.Vector3& size)
IL_0884: brtrue => Label85
IL_0889: ldarg.0
IL_088A: ldfld UnityEngine.Vector3 DefaultTool::m_mousePosition
IL_088F: stloc.s 28 (UnityEngine.Vector3)
IL_0891: Label85
IL_0891: call static UnityEngine.Camera UnityEngine.Camera::get_main()
IL_0896: ldloc.s 28 (UnityEngine.Vector3)
IL_0898: callvirt UnityEngine.Vector3
UnityEngine.Camera::WorldToScreenPoint(UnityEngine.Vector3 position)
IL_089D: stloc.s 31 (UnityEngine.Vector3)
IL_089F: ldloca.s 31 (UnityEngine.Vector3)
IL_08A1: call static System.Int32 UnityEngine.Screen::get_height()
IL_08A6: conv.r4
IL_08A7: ldloca.s 31 (UnityEngine.Vector3)
IL_08A9: ldfld System.Single UnityEngine.Vector3::y
IL_08AE: sub
IL_08AF: stfld System.Single UnityEngine.Vector3::y
IL_08B4: call static UnityEngine.Color UnityEngine.GUI::get_color()
IL_08B9: stloc.s 32 (UnityEngine.Color)
IL_08BB: call static UnityEngine.Color UnityEngine.Color::get_cyan()
IL_08C0: call static System.Void UnityEngine.GUI::set_color(UnityEngine.Color
value)
IL_08C5: ldloca.s 31 (UnityEngine.Vector3)
IL_08C7: ldfld System.Single UnityEngine.Vector3::x
IL_08CC: ldloca.s 31 (UnityEngine.Vector3)
IL_08CE: ldfld System.Single UnityEngine.Vector3::y
IL_08D3: ldc.r4 500
IL_08D8: ldc.r4 500
IL_08DD: newobj System.Void UnityEngine.Rect::.ctor(System.Single x,
System.Single y, System.Single width, System.Single height)
IL_08E2: ldloc.s 12 (System.String)
IL_08E4: call static UnityEngine.Color UnityEngine.Color::get_black()
IL_08E9: call static UnityEngine.Color UnityEngine.Color::get_cyan()
IL_08EE: call static UnityEngine.GUISkin UnityEngine.GUI::get_skin()
IL_08F3: callvirt UnityEngine.GUIStyle UnityEngine.GUISkin::get_label()
IL_08F8: ldc.r4 2
IL_08FD: 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_0902: ldloc.s 32 (UnityEngine.Color)
IL_0904: call static System.Void UnityEngine.GUI::set_color(UnityEngine.Color
value)
IL_0909: // end original
IL_0909: Label57
IL_0909: Label58
IL_0909: Label59
IL_0909: Label84
IL_0909: ldarg 1
IL_090D: call static System.Void
TrafficManager.Patch._DefaultTool.OnToolGUIPatch::Postfix(UnityEngine.Event e)
IL_0912: 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<PropManager>::get_instance()
IL_0079: ldfld Array16`1<PropInstance> PropManager::m_props
IL_007E: ldfld PropInstance[] Array16`1<PropInstance>::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<TreeManager>::get_instance()
IL_012C: ldfld Array32`1<TreeInstance> TreeManager::m_trees
IL_0131: ldfld TreeInstance[] Array32`1<TreeInstance>::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<BuildingManager>::get_instance()
IL_01E6: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01EB: ldfld Building[] Array16`1<Building>::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<DisasterManager>::get_instance()
IL_03A3: ldfld FastList`1<DisasterData> DisasterManager::m_disasters
IL_03A8: ldfld DisasterData[] FastList`1<DisasterData>::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<NetManager>::get_instance()
IL_04A6: stloc.s 24 (NetManager)
IL_04A8: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_04AD: stloc.s 25 (BuildingManager)
IL_04AF: ldloc.s 25 (BuildingManager)
IL_04B1: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_04B6: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_04F6: ldfld Building[] Array16`1<Building>::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<NetNode> NetManager::m_nodes
IL_0520: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_0543: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0562: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0582: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_05AA: ldfld NetNode[] Array16`1<NetNode>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_05F6: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0618: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0637: ldfld Building[] Array16`1<Building>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_0693: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06AD: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06C7: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06F2: ldfld Building[] Array16`1<Building>::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<NetNode> NetManager::m_nodes
IL_071C: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_073F: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_075E: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_077F: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_07A9: ldfld NetNode[] Array16`1<NetNode>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_07F5: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0817: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0831: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_084B: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0865: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0890: ldfld Building[] Array16`1<Building>::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<LogChannel>::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<NetManager>::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<RenderManager>::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<NetSegment> NetManager::m_segments
IL_09A8: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_09CC: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_09D1: ldloc.s 45 (NetManager)
IL_09D3: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_09D8: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_0A01: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A06: ldloc.s 45 (NetManager)
IL_0A08: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0A0D: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0A73: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0A92: ldfld NetSegment[] Array16`1<NetSegment>::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<ToolManager>::get_instance()
IL_0C1C: ldflda DrawCallData SimulationManagerBase`2<ToolManager,
ToolController>::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<RenderManager>::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<NetSegment> NetManager::m_segments
IL_0C75: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0C96: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0CF4: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0D18: ldfld NetSegment[] Array16`1<NetSegment>::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<TreeManager>::get_instance()
IL_0D40: stloc.s 67 (TreeManager)
IL_0D42: ldloc.s 67 (TreeManager)
IL_0D44: ldfld Array32`1<TreeInstance> TreeManager::m_trees
IL_0D49: ldfld TreeInstance[] Array32`1<TreeInstance>::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<TreeInstance> TreeManager::m_trees
IL_0D64: ldfld TreeInstance[] Array32`1<TreeInstance>::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<PropManager>::get_instance()
IL_0E07: stloc.s 75 (PropManager)
IL_0E09: ldloc.s 75 (PropManager)
IL_0E0B: ldfld Array16`1<PropInstance> PropManager::m_props
IL_0E10: ldfld PropInstance[] Array16`1<PropInstance>::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<PropInstance> PropManager::m_props
IL_0E2A: ldfld PropInstance[] Array16`1<PropInstance>::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<PropInstance> PropManager::m_props
IL_0E44: ldfld PropInstance[] Array16`1<PropInstance>::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<VehicleManager>::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<Vehicle> VehicleManager::m_vehicles
IL_0F0E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0F38: ldfld Vehicle[] Array16`1<Vehicle>::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<VehicleManager>::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<VehicleParked> VehicleManager::m_parkedVehicles
IL_0F87: ldfld VehicleParked[] Array16`1<VehicleParked>::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<VehicleParked> VehicleManager::m_parkedVehicles
IL_0FB1: ldfld VehicleParked[] Array16`1<VehicleParked>::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<CitizenManager>::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<CitizenInstance> CitizenManager::m_instances
IL_1000: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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<CitizenInstance> CitizenManager::m_instances
IL_102A: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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<InfoManager>::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<DistrictManager>::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<InfoManager>::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<DistrictManager>::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<DisasterManager>::get_instance()
IL_1129: stloc.s 104 (DisasterManager)
IL_112B: ldloc.s 104 (DisasterManager)
IL_112D: ldfld FastList`1<DisasterData> DisasterManager::m_disasters
IL_1132: ldfld DisasterData[] FastList`1<DisasterData>::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<DisasterData> DisasterManager::m_disasters
IL_114C: ldfld DisasterData[] FastList`1<DisasterData>::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<DisasterData> DisasterManager::m_disasters
IL_1166: ldfld DisasterData[] FastList`1<DisasterData>::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<Citizen> CitizenManager::m_citizens
IL_0008: ldfld Citizen[] Array32`1<Citizen>::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<CitizenInstance> CitizenManager::m_instances
IL_0008: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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(CitizenMa
nager __instance, System.UInt16 instance)
IL_0022: ret
DONE

### 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<NetManager>::get_instance()
IL_0010: stloc.0
IL_0011: ldloc.0
IL_0012: ldfld FastList`1<System.UInt16> NetManager::m_tempNodeBuffer
IL_0017: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_001C: ldloc.0
IL_001D: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_0022: callvirt System.Void FastList`1<System.UInt16>::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<System.UInt16> 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<System.UInt16> 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<System.UInt16> 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<System.UInt16>::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<NodePosition> 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<NodePosition> 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<System.UInt16> NetManager::m_tempNodeBuffer
IL_022C: ldloc.s 9 (System.UInt16)
IL_022E: callvirt System.Void FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_0268: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_02AC: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16> 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<System.UInt16> 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<NodePosition> 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<NodePosition> 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<System.UInt16> NetManager::m_tempNodeBuffer
IL_056B: ldloc.s 20 (System.UInt16)
IL_056D: callvirt System.Void FastList`1<System.UInt16>::Add(System.UInt16 item)
IL_0572: ldloc.0
IL_0573: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_0578: ldloc.s 21 (System.UInt16)
IL_057A: callvirt System.Void FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_05B6: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_05FC: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_0646: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_067B: ldfld NetSegment[] Array16`1<NetSegment>::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<System.UInt16> NetManager::m_tempNodeBuffer
IL_06D4: ldfld System.UInt16[] FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_06E4: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_071D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_073E: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_075D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0788: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16> NetManager::m_tempNodeBuffer
IL_07C2: ldfld System.Int32 FastList`1<System.UInt16>::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<System.UInt16> NetManager::m_tempSegmentBuffer
IL_07DA: ldfld System.UInt16[] FastList`1<System.UInt16>::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<NetSegment> NetManager::m_segments
IL_07EA: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_080F: ldfld NetSegment[] Array16`1<NetSegment>::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<ToolManager>::get_instance()
IL_083B: ldfld ToolController SimulationManagerBase`2<ToolManager,
ToolController>::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<NetSegment> NetManager::m_segments
IL_0852: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0879: ldfld NetSegment[] Array16`1<NetSegment>::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<System.UInt16> NetManager::m_tempSegmentBuffer
IL_08A9: ldfld System.Int32 FastList`1<System.UInt16>::m_size
IL_08AE: blt => Label60
IL_08B3: ldarg.0
IL_08B4: call static System.Void
TrafficManager.Patches._BuildingDecoration.LoadPathsPatch::AfterIntersectionBuilt(B
uildingInfo info)
IL_08B9: ldloc.0
IL_08BA: ldfld FastList`1<System.UInt16> NetManager::m_tempNodeBuffer
IL_08BF: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_08C4: ldloc.0
IL_08C5: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_08CA: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_08CF: // end original
IL_08CF: Label0
IL_08CF: ret
DONE

### Harmony id=de.viathinksoft.tmpe, version=2.0.1.0, location=E:\Games\data-


0000000016F5EE20, env/clr=2.0.50727.1433, platform=Win32NT,
ptrsize:runtime/env=8/Bits64, Windows
### Started from System.Void TrafficManager.Patcher::Uninstall(), location E:\
Games\data-0000000017B22040
### At 2022-11-05 01.48.34
### 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_Patch1(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<Vehicle> VehicleManager::m_vehicles
IL_0042: ldloca.s 0 (System.UInt16)
IL_0044: ldarg.2
IL_0045: callvirt System.Boolean Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0066: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_007E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_009D: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_00C4: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_00E4: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_00FC: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0114: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_012C: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0144: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_015C: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0178: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0194: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_01B0: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_01CC: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_01E4: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_01FC: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0216: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_022E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0246: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_025E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0276: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_028E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_02A6: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_02BE: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_02D6: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_02EE: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0306: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_031E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0336: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_034E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0366: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_037E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0396: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_03AE: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_03C6: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_03DE: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_03F6: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_040E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_042E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_044D: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0452: ldarg.1
IL_0453: ldind.u2
IL_0454: ldelema Vehicle
IL_0459: ldarg.0
IL_045A: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_045F: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_047C: callvirt System.UInt32 Array16`1<Vehicle>::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: ldloc 2 (System.Boolean)
IL_049A: 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_Patch0(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: // start original
IL_0000: ldarg.0
IL_0001: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0006: ldloca.s 0 (System.UInt16)
IL_0008: ldarg.2
IL_0009: callvirt System.Boolean Array16`1<Vehicle>::CreateItem(System.UInt16&
item, ColossalFramework.Math.Randomizer& r)
IL_000E: brfalse => Label0
IL_0013: ldarg.1
IL_0014: ldloc.0
IL_0015: stind.i2
IL_0016: ldloca.s 1 (Vehicle+Frame)
IL_0018: ldarg.s 4
IL_001A: call static UnityEngine.Quaternion
UnityEngine.Quaternion::get_identity()
IL_001F: call System.Void Frame::.ctor(UnityEngine.Vector3 position,
UnityEngine.Quaternion rotation)
IL_0024: ldarg.0
IL_0025: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_002A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_002F: ldarg.1
IL_0030: ldind.u2
IL_0031: ldelema Vehicle
IL_0036: ldc.i4.1
IL_0037: stfld Flags Vehicle::m_flags
IL_003C: ldarg.0
IL_003D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0042: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0047: ldarg.1
IL_0048: ldind.u2
IL_0049: ldelema Vehicle
IL_004E: ldc.i4.0
IL_004F: stfld Flags2 Vehicle::m_flags2
IL_0054: ldarg.s 6
IL_0056: brfalse => Label1
IL_005B: ldarg.0
IL_005C: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0061: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0066: ldarg.1
IL_0067: ldind.u2
IL_0068: ldelema Vehicle
IL_006D: dup
IL_006E: ldfld Flags Vehicle::m_flags
IL_0073: ldc.i4.s 32
IL_0075: or
IL_0076: stfld Flags Vehicle::m_flags
IL_007B: Label1
IL_007B: ldarg.s 7
IL_007D: brfalse => Label2
IL_0082: ldarg.0
IL_0083: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0088: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_008D: ldarg.1
IL_008E: ldind.u2
IL_008F: ldelema Vehicle
IL_0094: dup
IL_0095: ldfld Flags Vehicle::m_flags
IL_009A: ldc.i4.s 16
IL_009C: or
IL_009D: stfld Flags Vehicle::m_flags
IL_00A2: Label2
IL_00A2: ldarg.0
IL_00A3: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00A8: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00AD: ldarg.1
IL_00AE: ldind.u2
IL_00AF: ldelema Vehicle
IL_00B4: ldarg.3
IL_00B5: call System.Void Vehicle::set_Info(VehicleInfo value)
IL_00BA: ldarg.0
IL_00BB: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00C0: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00C5: ldarg.1
IL_00C6: ldind.u2
IL_00C7: ldelema Vehicle
IL_00CC: ldloc.1
IL_00CD: stfld Frame Vehicle::m_frame0
IL_00D2: ldarg.0
IL_00D3: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00D8: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00DD: ldarg.1
IL_00DE: ldind.u2
IL_00DF: ldelema Vehicle
IL_00E4: ldloc.1
IL_00E5: stfld Frame Vehicle::m_frame1
IL_00EA: ldarg.0
IL_00EB: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_00F0: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_00F5: ldarg.1
IL_00F6: ldind.u2
IL_00F7: ldelema Vehicle
IL_00FC: ldloc.1
IL_00FD: stfld Frame Vehicle::m_frame2
IL_0102: ldarg.0
IL_0103: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0108: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_010D: ldarg.1
IL_010E: ldind.u2
IL_010F: ldelema Vehicle
IL_0114: ldloc.1
IL_0115: stfld Frame Vehicle::m_frame3
IL_011A: ldarg.0
IL_011B: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0120: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0125: ldarg.1
IL_0126: ldind.u2
IL_0127: ldelema Vehicle
IL_012C: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_0131: stfld UnityEngine.Vector4 Vehicle::m_targetPos0
IL_0136: ldarg.0
IL_0137: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_013C: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0141: ldarg.1
IL_0142: ldind.u2
IL_0143: ldelema Vehicle
IL_0148: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_014D: stfld UnityEngine.Vector4 Vehicle::m_targetPos1
IL_0152: ldarg.0
IL_0153: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0158: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_015D: ldarg.1
IL_015E: ldind.u2
IL_015F: ldelema Vehicle
IL_0164: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_0169: stfld UnityEngine.Vector4 Vehicle::m_targetPos2
IL_016E: ldarg.0
IL_016F: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0174: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0179: ldarg.1
IL_017A: ldind.u2
IL_017B: ldelema Vehicle
IL_0180: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero()
IL_0185: stfld UnityEngine.Vector4 Vehicle::m_targetPos3
IL_018A: ldarg.0
IL_018B: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0190: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0195: ldarg.1
IL_0196: ldind.u2
IL_0197: ldelema Vehicle
IL_019C: ldc.i4.0
IL_019D: stfld System.UInt16 Vehicle::m_sourceBuilding
IL_01A2: ldarg.0
IL_01A3: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01A8: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01AD: ldarg.1
IL_01AE: ldind.u2
IL_01AF: ldelema Vehicle
IL_01B4: ldc.i4.0
IL_01B5: stfld System.UInt16 Vehicle::m_targetBuilding
IL_01BA: ldarg.0
IL_01BB: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01C0: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01C5: ldarg.1
IL_01C6: ldind.u2
IL_01C7: ldelema Vehicle
IL_01CC: ldarg.s 5
IL_01CE: conv.u1
IL_01CF: stfld System.Byte Vehicle::m_transferType
IL_01D4: ldarg.0
IL_01D5: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01DA: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01DF: ldarg.1
IL_01E0: ldind.u2
IL_01E1: ldelema Vehicle
IL_01E6: ldc.i4.0
IL_01E7: stfld System.UInt16 Vehicle::m_transferSize
IL_01EC: ldarg.0
IL_01ED: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_01F2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_01F7: ldarg.1
IL_01F8: ldind.u2
IL_01F9: ldelema Vehicle
IL_01FE: ldc.i4.0
IL_01FF: stfld System.Byte Vehicle::m_waitCounter
IL_0204: ldarg.0
IL_0205: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_020A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_020F: ldarg.1
IL_0210: ldind.u2
IL_0211: ldelema Vehicle
IL_0216: ldc.i4.0
IL_0217: stfld System.Byte Vehicle::m_blockCounter
IL_021C: ldarg.0
IL_021D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0222: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0227: ldarg.1
IL_0228: ldind.u2
IL_0229: ldelema Vehicle
IL_022E: ldc.i4.0
IL_022F: stfld System.UInt16 Vehicle::m_nextGridVehicle
IL_0234: ldarg.0
IL_0235: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_023A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_023F: ldarg.1
IL_0240: ldind.u2
IL_0241: ldelema Vehicle
IL_0246: ldc.i4.0
IL_0247: stfld System.UInt16 Vehicle::m_nextOwnVehicle
IL_024C: ldarg.0
IL_024D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0252: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0257: ldarg.1
IL_0258: ldind.u2
IL_0259: ldelema Vehicle
IL_025E: ldc.i4.0
IL_025F: stfld System.UInt16 Vehicle::m_nextGuestVehicle
IL_0264: ldarg.0
IL_0265: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_026A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_026F: ldarg.1
IL_0270: ldind.u2
IL_0271: ldelema Vehicle
IL_0276: ldc.i4.0
IL_0277: stfld System.UInt16 Vehicle::m_nextLineVehicle
IL_027C: ldarg.0
IL_027D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0282: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0287: ldarg.1
IL_0288: ldind.u2
IL_0289: ldelema Vehicle
IL_028E: ldc.i4.0
IL_028F: stfld System.UInt16 Vehicle::m_transportLine
IL_0294: ldarg.0
IL_0295: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_029A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_029F: ldarg.1
IL_02A0: ldind.u2
IL_02A1: ldelema Vehicle
IL_02A6: ldc.i4.0
IL_02A7: stfld System.UInt16 Vehicle::m_leadingVehicle
IL_02AC: ldarg.0
IL_02AD: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02B2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02B7: ldarg.1
IL_02B8: ldind.u2
IL_02B9: ldelema Vehicle
IL_02BE: ldc.i4.0
IL_02BF: stfld System.UInt16 Vehicle::m_trailingVehicle
IL_02C4: ldarg.0
IL_02C5: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02CA: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02CF: ldarg.1
IL_02D0: ldind.u2
IL_02D1: ldelema Vehicle
IL_02D6: ldc.i4.0
IL_02D7: stfld System.UInt16 Vehicle::m_cargoParent
IL_02DC: ldarg.0
IL_02DD: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02E2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02E7: ldarg.1
IL_02E8: ldind.u2
IL_02E9: ldelema Vehicle
IL_02EE: ldc.i4.0
IL_02EF: stfld System.UInt16 Vehicle::m_firstCargo
IL_02F4: ldarg.0
IL_02F5: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_02FA: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_02FF: ldarg.1
IL_0300: ldind.u2
IL_0301: ldelema Vehicle
IL_0306: ldc.i4.0
IL_0307: stfld System.UInt16 Vehicle::m_nextCargo
IL_030C: ldarg.0
IL_030D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0312: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0317: ldarg.1
IL_0318: ldind.u2
IL_0319: ldelema Vehicle
IL_031E: ldc.i4.0
IL_031F: stfld System.UInt32 Vehicle::m_citizenUnits
IL_0324: ldarg.0
IL_0325: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_032A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_032F: ldarg.1
IL_0330: ldind.u2
IL_0331: ldelema Vehicle
IL_0336: ldc.i4.0
IL_0337: stfld System.UInt32 Vehicle::m_path
IL_033C: ldarg.0
IL_033D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0342: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0347: ldarg.1
IL_0348: ldind.u2
IL_0349: ldelema Vehicle
IL_034E: ldc.i4.0
IL_034F: stfld System.Byte Vehicle::m_lastFrame
IL_0354: ldarg.0
IL_0355: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_035A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_035F: ldarg.1
IL_0360: ldind.u2
IL_0361: ldelema Vehicle
IL_0366: ldc.i4.0
IL_0367: stfld System.Byte Vehicle::m_pathPositionIndex
IL_036C: ldarg.0
IL_036D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0372: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0377: ldarg.1
IL_0378: ldind.u2
IL_0379: ldelema Vehicle
IL_037E: ldc.i4.0
IL_037F: stfld System.Byte Vehicle::m_lastPathOffset
IL_0384: ldarg.0
IL_0385: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_038A: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_038F: ldarg.1
IL_0390: ldind.u2
IL_0391: ldelema Vehicle
IL_0396: ldc.i4.0
IL_0397: stfld System.Byte Vehicle::m_gateIndex
IL_039C: ldarg.0
IL_039D: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03A2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03A7: ldarg.1
IL_03A8: ldind.u2
IL_03A9: ldelema Vehicle
IL_03AE: ldc.i4.0
IL_03AF: stfld System.UInt16 Vehicle::m_waterSource
IL_03B4: ldarg.0
IL_03B5: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03BA: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03BF: ldarg.1
IL_03C0: ldind.u2
IL_03C1: ldelema Vehicle
IL_03C6: ldc.i4.0
IL_03C7: stfld System.UInt16 Vehicle::m_touristCount
IL_03CC: ldarg.0
IL_03CD: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03D2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03D7: ldarg.1
IL_03D8: ldind.u2
IL_03D9: ldelema Vehicle
IL_03DE: ldc.i4.0
IL_03DF: stfld System.UInt16 Vehicle::m_custom
IL_03E4: ldarg.3
IL_03E5: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_03EA: ldarg.1
IL_03EB: ldind.u2
IL_03EC: ldarg.0
IL_03ED: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_03F2: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_03F7: ldarg.1
IL_03F8: ldind.u2
IL_03F9: ldelema Vehicle
IL_03FE: callvirt virtual System.Void VehicleAI::CreateVehicle(System.UInt16
vehicleID, Vehicle& data)
IL_0403: ldarg.3
IL_0404: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_0409: ldarg.1
IL_040A: ldind.u2
IL_040B: ldarg.0
IL_040C: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0411: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0416: ldarg.1
IL_0417: ldind.u2
IL_0418: ldelema Vehicle
IL_041D: ldarg.0
IL_041E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0423: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0428: ldarg.1
IL_0429: ldind.u2
IL_042A: ldelema Vehicle
IL_042F: ldflda Frame Vehicle::m_frame0
IL_0434: callvirt virtual System.Void VehicleAI::FrameDataUpdated(System.UInt16
vehicleID, Vehicle& vehicleData, Frame& frameData)
IL_0439: ldarg.0
IL_043A: ldarg.0
IL_043B: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0440: callvirt System.UInt32 Array16`1<Vehicle>::ItemCount()
IL_0445: ldc.i4.1
IL_0446: sub
IL_0447: stfld System.Int32 VehicleManager::m_vehicleCount
IL_044C: ldc.i4.1
IL_044D: br => Label3
IL_0452: Label0
IL_0452: ldarg.1
IL_0453: ldc.i4.0
IL_0454: stind.i2
IL_0455: ldc.i4.0
IL_0456: // end original
IL_0456: Label3
IL_0456: ret
DONE

### Patch: System.Void VehicleManager::ReleaseVehicle(System.UInt16 vehicle)


### Replacement: static System.Void
VehicleManager::VehicleManager.ReleaseVehicle_Patch0(VehicleManager this,
System.UInt16 vehicle)
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: ldarg.0
IL_0003: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0008: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_000D: ldarg.1
IL_000E: ldelema Vehicle
IL_0013: call System.Void
VehicleManager::ReleaseVehicleImplementation(System.UInt16 vehicle, Vehicle& data)
IL_0018: // end original
IL_0018: ret
DONE

### Patch: System.Void NetManager::UpdateSegment(System.UInt16 segment,


System.UInt16 fromNode, System.Int32 level)
### Replacement: static System.Void
NetManager::NetManager.UpdateSegment_Patch0(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<NetSegment> NetManager::m_segments
IL_0030: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0047: ldfld NetSegment[] Array16`1<NetSegment>::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: ret
DONE

### Patch: System.Void NetManager::FinalizeSegment(System.UInt16 segment,


NetSegment& data)
### Replacement: static System.Void
NetManager::NetManager.FinalizeSegment_Patch0(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<NetNode> NetManager::m_nodes
IL_0006: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0021: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_00CD: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_00F3: ldfld NetSegment[] Array16`1<NetSegment>::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<LogChannel>::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: ret
DONE

### Patch: static System.Void RoadBaseAI::TrafficLightSimulationStep(System.UInt16


nodeID, NetNode& data)
### Replacement: static System.Void
RoadBaseAI::RoadBaseAI.TrafficLightSimulationStep_Patch0(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.Int32
IL_0000: Local var 38: System.UInt16
IL_0000: Local var 39: RoadBaseAI/TrafficLightState
IL_0000: Local var 40: RoadBaseAI/TrafficLightState
IL_0000: Local var 41: UnityEngine.Vector3
IL_0000: // start original
IL_0000: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0005: stloc.0
IL_0006: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_000B: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0010: stloc.1
IL_0011: ldarg.1
IL_0012: ldfld System.Byte NetNode::m_maxWaitTime
IL_0017: ldc.i4.3
IL_0018: and
IL_0019: stloc.2
IL_001A: ldarg.1
IL_001B: ldfld System.Byte NetNode::m_maxWaitTime
IL_0020: ldc.i4.2
IL_0021: shr
IL_0022: ldc.i4.7
IL_0023: and
IL_0024: stloc.3
IL_0025: ldarg.1
IL_0026: ldfld System.Byte NetNode::m_maxWaitTime
IL_002B: ldc.i4.5
IL_002C: shr
IL_002D: stloc.s 4 (System.Int32)
IL_002F: ldc.i4.m1
IL_0030: stloc.s 5 (System.Int32)
IL_0032: ldc.i4.m1
IL_0033: stloc.s 6 (System.Int32)
IL_0035: ldc.i4.m1
IL_0036: stloc.s 7 (System.Int32)
IL_0038: ldc.i4.m1
IL_0039: stloc.s 8 (System.Int32)
IL_003B: ldc.i4.m1
IL_003C: stloc.s 9 (System.Int32)
IL_003E: ldc.i4.m1
IL_003F: stloc.s 10 (System.Int32)
IL_0041: ldc.i4.0
IL_0042: stloc.s 11 (System.Int32)
IL_0044: ldc.i4.0
IL_0045: stloc.s 12 (System.Int32)
IL_0047: ldc.i4.0
IL_0048: stloc.s 13 (System.Int32)
IL_004A: ldc.i4.0
IL_004B: stloc.s 14 (System.Int32)
IL_004D: ldc.i4.0
IL_004E: stloc.s 15 (System.Int32)
IL_0050: ldc.i4.0
IL_0051: stloc.s 16 (System.Int32)
IL_0053: br => Label0
IL_0058: Label22
IL_0058: ldarg.1
IL_0059: ldloc.s 16 (System.Int32)
IL_005B: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0060: stloc.s 17 (System.UInt16)
IL_0062: ldloc.s 17 (System.UInt16)
IL_0064: brfalse => Label1
IL_0069: ldc.i4.0
IL_006A: stloc.s 18 (System.Int32)
IL_006C: ldc.i4.0
IL_006D: stloc.s 19 (System.Int32)
IL_006F: ldloc.0
IL_0070: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0075: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_007A: ldloc.s 17 (System.UInt16)
IL_007C: ldelema NetSegment
IL_0081: ldloc.s 17 (System.UInt16)
IL_0083: ldc.i4.s 33
IL_0085: ldc.i4 65601
IL_008A: ldloca.s 18 (System.Int32)
IL_008C: ldloca.s 19 (System.Int32)
IL_008E: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_0093: ldloc.0
IL_0094: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0099: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_009E: ldloc.s 17 (System.UInt16)
IL_00A0: ldelema NetSegment
IL_00A5: ldfld System.UInt16 NetSegment::m_startNode
IL_00AA: ldarg.0
IL_00AB: ceq
IL_00AD: stloc.s 20 (System.Boolean)
IL_00AF: ldloc.s 20 (System.Boolean)
IL_00B1: brfalse => Label2
IL_00B6: ldloc.s 19 (System.Int32)
IL_00B8: ldc.i4.0
IL_00B9: ceq
IL_00BB: ldc.i4.0
IL_00BC: ceq
IL_00BE: br => Label3
IL_00C3: Label2
IL_00C3: ldloc.s 18 (System.Int32)
IL_00C5: ldc.i4.0
IL_00C6: ceq
IL_00C8: ldc.i4.0
IL_00C9: ceq
IL_00CB: Label3
IL_00CB: stloc.s 21 (System.Boolean)
IL_00CD: ldloc.s 20 (System.Boolean)
IL_00CF: brfalse => Label4
IL_00D4: ldloc.s 18 (System.Int32)
IL_00D6: ldc.i4.0
IL_00D7: ceq
IL_00D9: ldc.i4.0
IL_00DA: ceq
IL_00DC: br => Label5
IL_00E1: Label4
IL_00E1: ldloc.s 19 (System.Int32)
IL_00E3: ldc.i4.0
IL_00E4: ceq
IL_00E6: ldc.i4.0
IL_00E7: ceq
IL_00E9: Label5
IL_00E9: stloc.s 22 (System.Boolean)
IL_00EB: ldloc.s 21 (System.Boolean)
IL_00ED: brfalse => Label6
IL_00F2: ldloc.s 11 (System.Int32)
IL_00F4: ldc.i4.1
IL_00F5: ldloc.s 16 (System.Int32)
IL_00F7: ldc.i4.s 31
IL_00F9: and
IL_00FA: shl
IL_00FB: or
IL_00FC: stloc.s 11 (System.Int32)
IL_00FE: Label6
IL_00FE: ldloc.s 22 (System.Boolean)
IL_0100: brfalse => Label7
IL_0105: ldloc.s 12 (System.Int32)
IL_0107: ldc.i4.1
IL_0108: ldloc.s 16 (System.Int32)
IL_010A: ldc.i4.s 31
IL_010C: and
IL_010D: shl
IL_010E: or
IL_010F: stloc.s 12 (System.Int32)
IL_0111: ldloc.s 14 (System.Int32)
IL_0113: ldc.i4.1
IL_0114: add
IL_0115: stloc.s 14 (System.Int32)
IL_0117: Label7
IL_0117: ldarg.0
IL_0118: ldloc.0
IL_0119: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_011E: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0123: ldloc.s 17 (System.UInt16)
IL_0125: ldelema NetSegment
IL_012A: ldloc.1
IL_012B: ldc.i4 256
IL_0130: sub
IL_0131: ldloca.s 23 (RoadBaseAI+TrafficLightState)
IL_0133: ldloca.s 24 (RoadBaseAI+TrafficLightState)
IL_0135: ldloca.s 25 (System.Boolean)
IL_0137: ldloca.s 26 (System.Boolean)
IL_0139: 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_013E: ldloc.s 24 (RoadBaseAI+TrafficLightState)
IL_0140: ldc.i4.2
IL_0141: and
IL_0142: brfalse => Label8
IL_0147: ldloc.s 26 (System.Boolean)
IL_0149: brfalse => Label9
IL_014E: ldloc.s 8 (System.Int32)
IL_0150: ldc.i4.m1
IL_0151: bne.un => Label10
IL_0156: ldloc.s 16 (System.Int32)
IL_0158: stloc.s 8 (System.Int32)
IL_015A: Label10
IL_015A: ldloc.s 10 (System.Int32)
IL_015C: ldc.i4.m1
IL_015D: bne.un => Label11
IL_0162: ldloc.s 15 (System.Int32)
IL_0164: ldloc.s 4 (System.Int32)
IL_0166: blt => Label12
IL_016B: ldloc.s 16 (System.Int32)
IL_016D: stloc.s 10 (System.Int32)
IL_016F: Label8
IL_016F: Label9
IL_016F: Label11
IL_016F: Label12
IL_016F: ldloc.s 15 (System.Int32)
IL_0171: ldc.i4.1
IL_0172: add
IL_0173: stloc.s 15 (System.Int32)
IL_0175: ldloc.s 21 (System.Boolean)
IL_0177: brtrue => Label13
IL_017C: ldloc.s 25 (System.Boolean)
IL_017E: brfalse => Label14
IL_0183: Label13
IL_0183: ldloc.s 23 (RoadBaseAI+TrafficLightState)
IL_0185: ldc.i4.2
IL_0186: and
IL_0187: brtrue => Label15
IL_018C: ldloc.s 16 (System.Int32)
IL_018E: stloc.s 6 (System.Int32)
IL_0190: ldloc.s 25 (System.Boolean)
IL_0192: brfalse => Label16
IL_0197: ldloc.s 16 (System.Int32)
IL_0199: stloc.s 5 (System.Int32)
IL_019B: Label16
IL_019B: br => Label17
IL_01A0: Label15
IL_01A0: ldloc.s 25 (System.Boolean)
IL_01A2: brfalse => Label18
IL_01A7: ldloc.s 7 (System.Int32)
IL_01A9: ldc.i4.m1
IL_01AA: bne.un => Label19
IL_01AF: ldloc.s 16 (System.Int32)
IL_01B1: stloc.s 7 (System.Int32)
IL_01B3: Label19
IL_01B3: ldloc.s 9 (System.Int32)
IL_01B5: ldc.i4.m1
IL_01B6: bne.un => Label20
IL_01BB: ldloc.s 13 (System.Int32)
IL_01BD: ldloc.3
IL_01BE: blt => Label21
IL_01C3: ldloc.s 16 (System.Int32)
IL_01C5: stloc.s 9 (System.Int32)
IL_01C7: Label17
IL_01C7: Label18
IL_01C7: Label20
IL_01C7: Label21
IL_01C7: ldloc.s 13 (System.Int32)
IL_01C9: ldc.i4.1
IL_01CA: add
IL_01CB: stloc.s 13 (System.Int32)
IL_01CD: Label1
IL_01CD: Label14
IL_01CD: ldloc.s 16 (System.Int32)
IL_01CF: ldc.i4.1
IL_01D0: add
IL_01D1: stloc.s 16 (System.Int32)
IL_01D3: Label0
IL_01D3: ldloc.s 16 (System.Int32)
IL_01D5: ldc.i4.8
IL_01D6: blt => Label22
IL_01DB: ldloc.s 9 (System.Int32)
IL_01DD: ldc.i4.m1
IL_01DE: bne.un => Label23
IL_01E3: ldloc.s 7 (System.Int32)
IL_01E5: stloc.s 9 (System.Int32)
IL_01E7: Label23
IL_01E7: ldloc.s 10 (System.Int32)
IL_01E9: ldc.i4.m1
IL_01EA: bne.un => Label24
IL_01EF: ldloc.s 8 (System.Int32)
IL_01F1: stloc.s 10 (System.Int32)
IL_01F3: Label24
IL_01F3: ldloc.s 6 (System.Int32)
IL_01F5: ldc.i4.m1
IL_01F6: beq => Label25
IL_01FB: ldloc.s 5 (System.Int32)
IL_01FD: ldc.i4.m1
IL_01FE: beq => Label26
IL_0203: ldloc.2
IL_0204: ldc.i4.1
IL_0205: bgt => Label27
IL_020A: ldc.i4.m1
IL_020B: stloc.s 9 (System.Int32)
IL_020D: ldc.i4.m1
IL_020E: stloc.s 10 (System.Int32)
IL_0210: ldloc.2
IL_0211: ldc.i4.1
IL_0212: add
IL_0213: stloc.2
IL_0214: Label25
IL_0214: Label26
IL_0214: Label27
IL_0214: ldloc.s 10 (System.Int32)
IL_0216: ldc.i4.m1
IL_0217: beq => Label28
IL_021C: ldloc.s 9 (System.Int32)
IL_021E: ldc.i4.m1
IL_021F: beq => Label29
IL_0224: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0229: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_022E: ldc.i4.3
IL_022F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0234: brfalse => Label30
IL_0239: ldc.i4.m1
IL_023A: stloc.s 10 (System.Int32)
IL_023C: Label28
IL_023C: Label29
IL_023C: Label30
IL_023C: ldloc.s 9 (System.Int32)
IL_023E: ldc.i4.m1
IL_023F: beq => Label31
IL_0244: ldloc.s 9 (System.Int32)
IL_0246: stloc.s 6 (System.Int32)
IL_0248: Label31
IL_0248: ldloc.s 10 (System.Int32)
IL_024A: ldloc.s 6 (System.Int32)
IL_024C: bne.un => Label32
IL_0251: ldc.i4.m1
IL_0252: stloc.s 6 (System.Int32)
IL_0254: Label32
IL_0254: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_0259: stloc.s 27 (UnityEngine.Vector3)
IL_025B: ldloc.s 10 (System.Int32)
IL_025D: ldc.i4.m1
IL_025E: beq => Label33
IL_0263: ldarg.1
IL_0264: ldloc.s 10 (System.Int32)
IL_0266: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_026B: stloc.s 28 (System.UInt16)
IL_026D: ldloc.0
IL_026E: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0273: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0278: ldloc.s 28 (System.UInt16)
IL_027A: ldelema NetSegment
IL_027F: ldarg.0
IL_0280: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0285: stloc.s 27 (UnityEngine.Vector3)
IL_0287: ldloc.s 6 (System.Int32)
IL_0289: ldc.i4.m1
IL_028A: beq => Label34
IL_028F: ldarg.1
IL_0290: ldloc.s 6 (System.Int32)
IL_0292: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0297: stloc.s 28 (System.UInt16)
IL_0299: ldloc.0
IL_029A: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_029F: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02A4: ldloc.s 28 (System.UInt16)
IL_02A6: ldelema NetSegment
IL_02AB: ldarg.0
IL_02AC: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_02B1: stloc.s 29 (UnityEngine.Vector3)
IL_02B3: ldloca.s 29 (UnityEngine.Vector3)
IL_02B5: ldfld System.Single UnityEngine.Vector3::x
IL_02BA: ldloca.s 27 (UnityEngine.Vector3)
IL_02BC: ldfld System.Single UnityEngine.Vector3::x
IL_02C1: mul
IL_02C2: ldloca.s 29 (UnityEngine.Vector3)
IL_02C4: ldfld System.Single UnityEngine.Vector3::z
IL_02C9: ldloca.s 27 (UnityEngine.Vector3)
IL_02CB: ldfld System.Single UnityEngine.Vector3::z
IL_02D0: mul
IL_02D1: add
IL_02D2: ldc.r4 -0.5
IL_02D7: bge.un => Label35
IL_02DC: ldc.i4.m1
IL_02DD: stloc.s 6 (System.Int32)
IL_02DF: Label34
IL_02DF: Label35
IL_02DF: ldloc.s 6 (System.Int32)
IL_02E1: ldc.i4.m1
IL_02E2: bne.un => Label36
IL_02E7: ldc.i4.0
IL_02E8: stloc.s 30 (System.Int32)
IL_02EA: br => Label37
IL_02EF: Label43
IL_02EF: ldloc.s 30 (System.Int32)
IL_02F1: ldloc.s 10 (System.Int32)
IL_02F3: beq => Label38
IL_02F8: ldloc.s 11 (System.Int32)
IL_02FA: ldc.i4.1
IL_02FB: ldloc.s 30 (System.Int32)
IL_02FD: ldc.i4.s 31
IL_02FF: and
IL_0300: shl
IL_0301: and
IL_0302: brfalse => Label39
IL_0307: ldarg.1
IL_0308: ldloc.s 30 (System.Int32)
IL_030A: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_030F: stloc.s 28 (System.UInt16)
IL_0311: ldloc.s 28 (System.UInt16)
IL_0313: brfalse => Label40
IL_0318: ldloc.0
IL_0319: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_031E: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0323: ldloc.s 28 (System.UInt16)
IL_0325: ldelema NetSegment
IL_032A: ldarg.0
IL_032B: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0330: stloc.s 31 (UnityEngine.Vector3)
IL_0332: ldloca.s 31 (UnityEngine.Vector3)
IL_0334: ldfld System.Single UnityEngine.Vector3::x
IL_0339: ldloca.s 27 (UnityEngine.Vector3)
IL_033B: ldfld System.Single UnityEngine.Vector3::x
IL_0340: mul
IL_0341: ldloca.s 31 (UnityEngine.Vector3)
IL_0343: ldfld System.Single UnityEngine.Vector3::z
IL_0348: ldloca.s 27 (UnityEngine.Vector3)
IL_034A: ldfld System.Single UnityEngine.Vector3::z
IL_034F: mul
IL_0350: add
IL_0351: ldc.r4 -0.5
IL_0356: blt.un => Label41
IL_035B: ldloc.s 30 (System.Int32)
IL_035D: stloc.s 6 (System.Int32)
IL_035F: br => Label42
IL_0364: Label38
IL_0364: Label39
IL_0364: Label40
IL_0364: Label41
IL_0364: ldloc.s 30 (System.Int32)
IL_0366: ldc.i4.1
IL_0367: add
IL_0368: stloc.s 30 (System.Int32)
IL_036A: Label37
IL_036A: ldloc.s 30 (System.Int32)
IL_036C: ldc.i4.8
IL_036D: blt => Label43
IL_0372: Label33
IL_0372: Label36
IL_0372: Label42
IL_0372: ldc.i4.m1
IL_0373: stloc.s 32 (System.Int32)
IL_0375: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_037A: stloc.s 33 (UnityEngine.Vector3)
IL_037C: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_0381: stloc.s 34 (UnityEngine.Vector3)
IL_0383: ldloc.s 6 (System.Int32)
IL_0385: ldc.i4.m1
IL_0386: beq => Label44
IL_038B: ldarg.1
IL_038C: ldloc.s 6 (System.Int32)
IL_038E: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0393: stloc.s 35 (System.UInt16)
IL_0395: ldloc.0
IL_0396: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_039B: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_03A0: ldloc.s 35 (System.UInt16)
IL_03A2: ldelema NetSegment
IL_03A7: ldarg.0
IL_03A8: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_03AD: stloc.s 33 (UnityEngine.Vector3)
IL_03AF: ldloc.s 11 (System.Int32)
IL_03B1: ldloc.s 12 (System.Int32)
IL_03B3: and
IL_03B4: ldc.i4.1
IL_03B5: ldloc.s 6 (System.Int32)
IL_03B7: ldc.i4.s 31
IL_03B9: and
IL_03BA: shl
IL_03BB: and
IL_03BC: brfalse => Label45
IL_03C1: ldc.i4.0
IL_03C2: stloc.s 36 (System.Int32)
IL_03C4: br => Label46
IL_03C9: Label57
IL_03C9: ldloc.s 36 (System.Int32)
IL_03CB: ldloc.s 6 (System.Int32)
IL_03CD: beq => Label47
IL_03D2: ldloc.s 36 (System.Int32)
IL_03D4: ldloc.s 10 (System.Int32)
IL_03D6: beq => Label48
IL_03DB: ldloc.s 11 (System.Int32)
IL_03DD: ldloc.s 12 (System.Int32)
IL_03DF: and
IL_03E0: ldc.i4.1
IL_03E1: ldloc.s 36 (System.Int32)
IL_03E3: ldc.i4.s 31
IL_03E5: and
IL_03E6: shl
IL_03E7: and
IL_03E8: brfalse => Label49
IL_03ED: ldarg.1
IL_03EE: ldloc.s 36 (System.Int32)
IL_03F0: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_03F5: stloc.s 35 (System.UInt16)
IL_03F7: ldloc.s 35 (System.UInt16)
IL_03F9: brfalse => Label50
IL_03FE: ldloc.0
IL_03FF: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0404: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0409: ldloc.s 35 (System.UInt16)
IL_040B: ldelema NetSegment
IL_0410: ldarg.0
IL_0411: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0416: stloc.s 34 (UnityEngine.Vector3)
IL_0418: ldloc.s 10 (System.Int32)
IL_041A: ldc.i4.m1
IL_041B: beq => Label51
IL_0420: ldloca.s 34 (UnityEngine.Vector3)
IL_0422: ldfld System.Single UnityEngine.Vector3::x
IL_0427: ldloca.s 27 (UnityEngine.Vector3)
IL_0429: ldfld System.Single UnityEngine.Vector3::x
IL_042E: mul
IL_042F: ldloca.s 34 (UnityEngine.Vector3)
IL_0431: ldfld System.Single UnityEngine.Vector3::z
IL_0436: ldloca.s 27 (UnityEngine.Vector3)
IL_0438: ldfld System.Single UnityEngine.Vector3::z
IL_043D: mul
IL_043E: add
IL_043F: ldc.r4 -0.5
IL_0444: blt.un => Label52
IL_0449: Label51
IL_0449: ldloc.s 14 (System.Int32)
IL_044B: ldc.i4.2
IL_044C: bne.un => Label53
IL_0451: ldloc.s 36 (System.Int32)
IL_0453: stloc.s 32 (System.Int32)
IL_0455: br => Label54
IL_045A: Label53
IL_045A: ldloca.s 34 (UnityEngine.Vector3)
IL_045C: ldfld System.Single UnityEngine.Vector3::x
IL_0461: ldloca.s 33 (UnityEngine.Vector3)
IL_0463: ldfld System.Single UnityEngine.Vector3::x
IL_0468: mul
IL_0469: ldloca.s 34 (UnityEngine.Vector3)
IL_046B: ldfld System.Single UnityEngine.Vector3::z
IL_0470: ldloca.s 33 (UnityEngine.Vector3)
IL_0472: ldfld System.Single UnityEngine.Vector3::z
IL_0477: mul
IL_0478: add
IL_0479: ldc.r4 -0.9396926
IL_047E: bge.un => Label55
IL_0483: ldloc.s 36 (System.Int32)
IL_0485: stloc.s 32 (System.Int32)
IL_0487: br => Label56
IL_048C: Label47
IL_048C: Label48
IL_048C: Label49
IL_048C: Label50
IL_048C: Label52
IL_048C: Label55
IL_048C: ldloc.s 36 (System.Int32)
IL_048E: ldc.i4.1
IL_048F: add
IL_0490: stloc.s 36 (System.Int32)
IL_0492: Label46
IL_0492: ldloc.s 36 (System.Int32)
IL_0494: ldc.i4.8
IL_0495: blt => Label57
IL_049A: Label44
IL_049A: Label45
IL_049A: Label54
IL_049A: Label56
IL_049A: ldc.i4.0
IL_049B: stloc.s 37 (System.Int32)
IL_049D: br => Label58
IL_04A2: Label77
IL_04A2: ldarg.1
IL_04A3: ldloc.s 37 (System.Int32)
IL_04A5: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_04AA: stloc.s 38 (System.UInt16)
IL_04AC: ldloc.s 38 (System.UInt16)
IL_04AE: brfalse => Label59
IL_04B3: ldarg.0
IL_04B4: ldloc.0
IL_04B5: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_04BA: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_04BF: ldloc.s 38 (System.UInt16)
IL_04C1: ldelema NetSegment
IL_04C6: ldloc.1
IL_04C7: ldc.i4 256
IL_04CC: sub
IL_04CD: ldloca.s 39 (RoadBaseAI+TrafficLightState)
IL_04CF: ldloca.s 40 (RoadBaseAI+TrafficLightState)
IL_04D1: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_04D6: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_04D8: ldc.i4.s -2
IL_04DA: and
IL_04DB: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_04DD: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_04DF: ldc.i4.s -2
IL_04E1: and
IL_04E2: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_04E4: ldloc.s 6 (System.Int32)
IL_04E6: ldloc.s 37 (System.Int32)
IL_04E8: beq => Label60
IL_04ED: ldloc.s 32 (System.Int32)
IL_04EF: ldloc.s 37 (System.Int32)
IL_04F1: bne.un => Label61
IL_04F6: Label60
IL_04F6: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_04F8: ldc.i4.2
IL_04F9: and
IL_04FA: brfalse => Label62
IL_04FF: ldc.i4.1
IL_0500: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0502: ldc.i4.0
IL_0503: stloc.2
IL_0504: ldloc.3
IL_0505: ldc.i4.1
IL_0506: add
IL_0507: dup
IL_0508: stloc.3
IL_0509: ldloc.s 13 (System.Int32)
IL_050B: blt => Label63
IL_0510: ldc.i4.0
IL_0511: stloc.3
IL_0512: Label62
IL_0512: Label63
IL_0512: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0514: ldc.i4.2
IL_0515: and
IL_0516: brtrue => Label64
IL_051B: ldc.i4.3
IL_051C: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_051E: Label64
IL_051E: br => Label65
IL_0523: Label61
IL_0523: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0525: ldc.i4.2
IL_0526: and
IL_0527: brtrue => Label66
IL_052C: ldc.i4.3
IL_052D: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_052F: Label66
IL_052F: ldloc.0
IL_0530: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0535: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_053A: ldloc.s 38 (System.UInt16)
IL_053C: ldelema NetSegment
IL_0541: ldarg.0
IL_0542: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0547: stloc.s 41 (UnityEngine.Vector3)
IL_0549: ldloc.s 12 (System.Int32)
IL_054B: ldc.i4.1
IL_054C: ldloc.s 37 (System.Int32)
IL_054E: ldc.i4.s 31
IL_0550: and
IL_0551: shl
IL_0552: and
IL_0553: brfalse => Label67
IL_0558: ldloc.s 10 (System.Int32)
IL_055A: ldloc.s 37 (System.Int32)
IL_055C: beq => Label68
IL_0561: ldloc.s 6 (System.Int32)
IL_0563: ldc.i4.m1
IL_0564: beq => Label69
IL_0569: ldloca.s 41 (UnityEngine.Vector3)
IL_056B: ldfld System.Single UnityEngine.Vector3::x
IL_0570: ldloca.s 33 (UnityEngine.Vector3)
IL_0572: ldfld System.Single UnityEngine.Vector3::x
IL_0577: mul
IL_0578: ldloca.s 41 (UnityEngine.Vector3)
IL_057A: ldfld System.Single UnityEngine.Vector3::z
IL_057F: ldloca.s 33 (UnityEngine.Vector3)
IL_0581: ldfld System.Single UnityEngine.Vector3::z
IL_0586: mul
IL_0587: add
IL_0588: ldc.r4 -0.5
IL_058D: blt => Label70
IL_0592: Label69
IL_0592: ldloc.s 32 (System.Int32)
IL_0594: ldc.i4.m1
IL_0595: beq => Label71
IL_059A: ldloca.s 41 (UnityEngine.Vector3)
IL_059C: ldfld System.Single UnityEngine.Vector3::x
IL_05A1: ldloca.s 34 (UnityEngine.Vector3)
IL_05A3: ldfld System.Single UnityEngine.Vector3::x
IL_05A8: mul
IL_05A9: ldloca.s 41 (UnityEngine.Vector3)
IL_05AB: ldfld System.Single UnityEngine.Vector3::z
IL_05B0: ldloca.s 34 (UnityEngine.Vector3)
IL_05B2: ldfld System.Single UnityEngine.Vector3::z
IL_05B7: mul
IL_05B8: add
IL_05B9: ldc.r4 -0.5
IL_05BE: bge.un => Label72
IL_05C3: Label70
IL_05C3: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05C5: ldc.i4.2
IL_05C6: and
IL_05C7: brtrue => Label73
IL_05CC: ldc.i4.3
IL_05CD: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05CF: Label73
IL_05CF: br => Label74
IL_05D4: Label67
IL_05D4: Label68
IL_05D4: Label71
IL_05D4: Label72
IL_05D4: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05D6: ldc.i4.2
IL_05D7: and
IL_05D8: brfalse => Label75
IL_05DD: ldc.i4.1
IL_05DE: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05E0: ldloc.s 4 (System.Int32)
IL_05E2: ldc.i4.1
IL_05E3: add
IL_05E4: dup
IL_05E5: stloc.s 4 (System.Int32)
IL_05E7: ldloc.s 15 (System.Int32)
IL_05E9: blt => Label76
IL_05EE: ldc.i4.0
IL_05EF: stloc.s 4 (System.Int32)
IL_05F1: Label65
IL_05F1: Label74
IL_05F1: Label75
IL_05F1: Label76
IL_05F1: ldarg.0
IL_05F2: ldloc.0
IL_05F3: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_05F8: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_05FD: ldloc.s 38 (System.UInt16)
IL_05FF: ldelema NetSegment
IL_0604: ldloc.1
IL_0605: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0607: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0609: ldc.i4.0
IL_060A: ldc.i4.0
IL_060B: 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_0610: Label59
IL_0610: ldloc.s 37 (System.Int32)
IL_0612: ldc.i4.1
IL_0613: add
IL_0614: stloc.s 37 (System.Int32)
IL_0616: Label58
IL_0616: ldloc.s 37 (System.Int32)
IL_0618: ldc.i4.8
IL_0619: blt => Label77
IL_061E: ldarg.1
IL_061F: ldloc.s 4 (System.Int32)
IL_0621: ldc.i4.5
IL_0622: shl
IL_0623: ldloc.3
IL_0624: ldc.i4.2
IL_0625: shl
IL_0626: or
IL_0627: ldloc.2
IL_0628: or
IL_0629: conv.u1
IL_062A: stfld System.Byte NetNode::m_maxWaitTime
IL_062F: // end original
IL_062F: ret
DONE

### Patch: static System.Void RoadBaseAI::GetTrafficLightNodeState(System.UInt16


nodeID, NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData, Flags&
flags, UnityEngine.Color& color)
### Replacement: static System.Void
RoadBaseAI::RoadBaseAI.GetTrafficLightNodeState_Patch0(System.UInt16 nodeID,
NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData, Flags& 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: // start original
IL_0000: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0005: ldfld System.UInt32 SimulationManager::m_referenceFrameIndex
IL_000A: ldc.i4.s 15
IL_000C: sub
IL_000D: stloc.2
IL_000E: ldarg.0
IL_000F: ldc.i4.8
IL_0010: shl
IL_0011: ldc.i4 32768
IL_0016: div.un
IL_0017: stloc.3
IL_0018: ldloc.2
IL_0019: ldloc.3
IL_001A: sub
IL_001B: ldc.i4 255
IL_0020: and
IL_0021: stloc.s 4 (System.UInt32)
IL_0023: ldarg.0
IL_0024: ldarg.3
IL_0025: ldloc.2
IL_0026: ldloc.3
IL_0027: sub
IL_0028: ldloca.s 0 (RoadBaseAI+TrafficLightState)
IL_002A: ldloca.s 1 (RoadBaseAI+TrafficLightState)
IL_002C: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_0031: ldarg.s 5
IL_0033: ldc.r4 0.5
IL_0038: stfld System.Single UnityEngine.Color::a
IL_003D: ldloc.0
IL_003E: switch => Labels0,1,2,3
IL_0053: br => Label4
IL_0058: Label0
IL_0058: ldarg.s 5
IL_005A: ldc.r4 1
IL_005F: stfld System.Single UnityEngine.Color::g
IL_0064: br => Label5
IL_0069: Label1
IL_0069: ldloc.s 4 (System.UInt32)
IL_006B: ldc.i4.s 45
IL_006D: bge.un => Label6
IL_0072: ldarg.s 5
IL_0074: ldc.r4 0
IL_0079: stfld System.Single UnityEngine.Color::g
IL_007E: br => Label7
IL_0083: Label6
IL_0083: ldloc.s 4 (System.UInt32)
IL_0085: ldc.i4.s 60
IL_0087: bge.un => Label8
IL_008C: ldarg.s 5
IL_008E: ldc.r4 1
IL_0093: stfld System.Single UnityEngine.Color::r
IL_0098: br => Label9
IL_009D: Label8
IL_009D: ldarg.s 5
IL_009F: ldc.r4 1
IL_00A4: stfld System.Single UnityEngine.Color::g
IL_00A9: Label7
IL_00A9: Label9
IL_00A9: br => Label10
IL_00AE: Label2
IL_00AE: ldarg.s 5
IL_00B0: ldc.r4 0
IL_00B5: stfld System.Single UnityEngine.Color::g
IL_00BA: br => Label11
IL_00BF: Label3
IL_00BF: ldloc.s 4 (System.UInt32)
IL_00C1: ldc.i4.s 45
IL_00C3: bge.un => Label12
IL_00C8: ldarg.s 5
IL_00CA: ldc.r4 1
IL_00CF: stfld System.Single UnityEngine.Color::r
IL_00D4: br => Label13
IL_00D9: Label12
IL_00D9: ldarg.s 5
IL_00DB: ldc.r4 0
IL_00E0: stfld System.Single UnityEngine.Color::g
IL_00E5: Label13
IL_00E5: br => Label14
IL_00EA: Label4
IL_00EA: Label5
IL_00EA: Label10
IL_00EA: Label11
IL_00EA: Label14
IL_00EA: ldloc.1
IL_00EB: switch => Labels15,16,17,18
IL_0100: br => Label19
IL_0105: Label15
IL_0105: ldarg.s 5
IL_0107: ldc.r4 1
IL_010C: stfld System.Single UnityEngine.Color::b
IL_0111: br => Label20
IL_0116: Label16
IL_0116: ldloc.s 4 (System.UInt32)
IL_0118: ldc.i4.s 45
IL_011A: bge.un => Label21
IL_011F: ldarg.s 5
IL_0121: ldc.r4 0
IL_0126: stfld System.Single UnityEngine.Color::b
IL_012B: br => Label22
IL_0130: Label21
IL_0130: ldarg.s 5
IL_0132: ldc.r4 1
IL_0137: stfld System.Single UnityEngine.Color::b
IL_013C: Label22
IL_013C: br => Label23
IL_0141: Label17
IL_0141: ldarg.s 5
IL_0143: ldc.r4 0
IL_0148: stfld System.Single UnityEngine.Color::b
IL_014D: br => Label24
IL_0152: Label18
IL_0152: ldloc.s 4 (System.UInt32)
IL_0154: ldc.i4.s 45
IL_0156: bge.un => Label25
IL_015B: ldloc.s 4 (System.UInt32)
IL_015D: ldc.i4.8
IL_015E: div.un
IL_015F: ldc.i4.1
IL_0160: and
IL_0161: ldc.i4.1
IL_0162: bne.un => Label26
IL_0167: ldarg.s 5
IL_0169: ldc.r4 1
IL_016E: stfld System.Single UnityEngine.Color::b
IL_0173: Label26
IL_0173: br => Label27
IL_0178: Label25
IL_0178: ldarg.s 5
IL_017A: ldc.r4 0
IL_017F: stfld System.Single UnityEngine.Color::b
IL_0184: Label27
IL_0184: br => Label28
IL_0189: // end original
IL_0189: Label19
IL_0189: Label20
IL_0189: Label23
IL_0189: Label24
IL_0189: Label28
IL_0189: ret
DONE

### Patch: virtual System.Void RoadBaseAI::UpdateNode(System.UInt16 nodeID,


NetNode& data)
### Replacement: static System.Void
RoadBaseAI::RoadBaseAI.UpdateNode_Patch0(RoadBaseAI this, System.UInt16 nodeID,
NetNode& data)
IL_0000: Local var 0: Notification/Problem
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 Problem NetNode::m_problems
IL_000E: ldc.i8 72057602627866624
IL_0017: call static Problem Notification::RemoveProblems(Problem problems1,
Problem problems2)
IL_001C: stloc.0
IL_001D: ldc.i4.0
IL_001E: stloc.1
IL_001F: ldc.i4.0
IL_0020: stloc.2
IL_0021: ldarg.2
IL_0022: ldarg.1
IL_0023: ldc.i4.0
IL_0024: ldc.i4.s 33
IL_0026: ldc.i4.1
IL_0027: ldc.i4.1
IL_0028: ldloca.s 1 (System.Int32)
IL_002A: ldloca.s 2 (System.Int32)
IL_002C: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, LaneType laneTypes, VehicleType vehicleTypes,
System.Boolean onePerSegment, System.Int32& forward, System.Int32& backward)
IL_0031: ldarg.2
IL_0032: ldfld Flags NetNode::m_flags
IL_0037: ldc.i4 1024
IL_003C: and
IL_003D: brfalse => Label0
IL_0042: ldarg.2
IL_0043: ldfld System.UInt16 NetNode::m_building
IL_0048: brfalse => Label1
IL_004D: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0052: stloc.3
IL_0053: ldloc.1
IL_0054: brfalse => Label2
IL_0059: ldloc.3
IL_005A: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_005F: ldfld Building[] Array16`1<Building>::m_buffer
IL_0064: ldarg.2
IL_0065: ldfld System.UInt16 NetNode::m_building
IL_006A: ldelema Building
IL_006F: dup
IL_0070: ldfld Flags Building::m_flags
IL_0075: ldc.i4 128
IL_007A: or
IL_007B: stfld Flags Building::m_flags
IL_0080: br => Label3
IL_0085: Label2
IL_0085: ldloc.3
IL_0086: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008B: ldfld Building[] Array16`1<Building>::m_buffer
IL_0090: ldarg.2
IL_0091: ldfld System.UInt16 NetNode::m_building
IL_0096: ldelema Building
IL_009B: dup
IL_009C: ldfld Flags Building::m_flags
IL_00A1: ldc.i4 -129
IL_00A6: and
IL_00A7: stfld Flags Building::m_flags
IL_00AC: Label3
IL_00AC: ldloc.2
IL_00AD: brfalse => Label4
IL_00B2: ldloc.3
IL_00B3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00B8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00BD: ldarg.2
IL_00BE: ldfld System.UInt16 NetNode::m_building
IL_00C3: ldelema Building
IL_00C8: dup
IL_00C9: ldfld Flags Building::m_flags
IL_00CE: ldc.i4.s 64
IL_00D0: or
IL_00D1: stfld Flags Building::m_flags
IL_00D6: br => Label5
IL_00DB: Label4
IL_00DB: ldloc.3
IL_00DC: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00E1: ldfld Building[] Array16`1<Building>::m_buffer
IL_00E6: ldarg.2
IL_00E7: ldfld System.UInt16 NetNode::m_building
IL_00EC: ldelema Building
IL_00F1: dup
IL_00F2: ldfld Flags Building::m_flags
IL_00F7: ldc.i4.s -65
IL_00F9: and
IL_00FA: stfld Flags Building::m_flags
IL_00FF: Label5
IL_00FF: br => Label6
IL_0104: Label0
IL_0104: Label1
IL_0104: ldloc.1
IL_0105: brfalse => Label7
IL_010A: ldloc.2
IL_010B: brfalse => Label8
IL_0110: Label7
IL_0110: ldloc.1
IL_0111: brtrue => Label9
IL_0116: ldloc.2
IL_0117: brfalse => Label10
IL_011C: Label8
IL_011C: ldloc.0
IL_011D: ldc.i4 4096
IL_0122: conv.i8
IL_0123: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0128: stloc.0
IL_0129: Label6
IL_0129: Label9
IL_0129: Label10
IL_0129: ldloc.1
IL_012A: ldc.i4.1
IL_012B: bne.un => Label11
IL_0130: ldarg.2
IL_0131: dup
IL_0132: ldfld Flags NetNode::m_flags
IL_0137: ldc.i4 4194304
IL_013C: or
IL_013D: stfld Flags NetNode::m_flags
IL_0142: br => Label12
IL_0147: Label11
IL_0147: ldarg.2
IL_0148: dup
IL_0149: ldfld Flags NetNode::m_flags
IL_014E: ldc.i4 -4194305
IL_0153: and
IL_0154: stfld Flags NetNode::m_flags
IL_0159: Label12
IL_0159: ldloc.2
IL_015A: ldc.i4.1
IL_015B: bne.un => Label13
IL_0160: ldarg.2
IL_0161: dup
IL_0162: ldfld Flags NetNode::m_flags
IL_0167: ldc.i4 16777216
IL_016C: or
IL_016D: stfld Flags NetNode::m_flags
IL_0172: br => Label14
IL_0177: Label13
IL_0177: ldarg.2
IL_0178: dup
IL_0179: ldfld Flags NetNode::m_flags
IL_017E: ldc.i4 -16777217
IL_0183: and
IL_0184: stfld Flags NetNode::m_flags
IL_0189: Label14
IL_0189: ldarg.2
IL_018A: ldfld Flags NetNode::m_flags
IL_018F: ldc.i4 262144
IL_0194: and
IL_0195: brtrue => Label15
IL_019A: ldc.i4.0
IL_019B: stloc.s 4 (System.Int32)
IL_019D: ldc.i4.0
IL_019E: stloc.1
IL_019F: ldc.i4.0
IL_01A0: stloc.2
IL_01A1: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_01A6: stloc.s 5 (NetManager)
IL_01A8: ldc.i4.0
IL_01A9: stloc.s 6 (System.Int32)
IL_01AB: br => Label16
IL_01B0: Label24
IL_01B0: ldarg.2
IL_01B1: ldloc.s 6 (System.Int32)
IL_01B3: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_01B8: stloc.s 7 (System.UInt16)
IL_01BA: ldloc.s 7 (System.UInt16)
IL_01BC: brfalse => Label17
IL_01C1: ldc.i4.0
IL_01C2: stloc.s 8 (System.Int32)
IL_01C4: ldc.i4.0
IL_01C5: stloc.s 9 (System.Int32)
IL_01C7: ldloc.s 5 (NetManager)
IL_01C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01D3: ldloc.s 7 (System.UInt16)
IL_01D5: ldelema NetSegment
IL_01DA: ldloc.s 7 (System.UInt16)
IL_01DC: ldc.i4.s 33
IL_01DE: ldc.i4.s 64
IL_01E0: ldloca.s 8 (System.Int32)
IL_01E2: ldloca.s 9 (System.Int32)
IL_01E4: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_01E9: ldloc.s 8 (System.Int32)
IL_01EB: brtrue => Label18
IL_01F0: ldloc.s 9 (System.Int32)
IL_01F2: brfalse => Label19
IL_01F7: Label18
IL_01F7: ldloc.s 4 (System.Int32)
IL_01F9: ldc.i4.1
IL_01FA: add
IL_01FB: stloc.s 4 (System.Int32)
IL_01FD: ldloc.s 8 (System.Int32)
IL_01FF: brfalse => Label20
IL_0204: ldc.i4.1
IL_0205: stloc.s 8 (System.Int32)
IL_0207: Label20
IL_0207: ldloc.s 9 (System.Int32)
IL_0209: brfalse => Label21
IL_020E: ldc.i4.1
IL_020F: stloc.s 9 (System.Int32)
IL_0211: Label21
IL_0211: ldloc.s 5 (NetManager)
IL_0213: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0218: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_021D: ldloc.s 7 (System.UInt16)
IL_021F: ldelema NetSegment
IL_0224: ldfld System.UInt16 NetSegment::m_endNode
IL_0229: ldarg.1
IL_022A: bne.un => Label22
IL_022F: ldloc.1
IL_0230: ldloc.s 9 (System.Int32)
IL_0232: add
IL_0233: stloc.1
IL_0234: ldloc.2
IL_0235: ldloc.s 8 (System.Int32)
IL_0237: add
IL_0238: stloc.2
IL_0239: br => Label23
IL_023E: Label22
IL_023E: ldloc.1
IL_023F: ldloc.s 8 (System.Int32)
IL_0241: add
IL_0242: stloc.1
IL_0243: ldloc.2
IL_0244: ldloc.s 9 (System.Int32)
IL_0246: add
IL_0247: stloc.2
IL_0248: Label17
IL_0248: Label19
IL_0248: Label23
IL_0248: ldloc.s 6 (System.Int32)
IL_024A: ldc.i4.1
IL_024B: add
IL_024C: stloc.s 6 (System.Int32)
IL_024E: Label16
IL_024E: ldloc.s 6 (System.Int32)
IL_0250: ldc.i4.8
IL_0251: blt => Label24
IL_0256: ldloc.1
IL_0257: brfalse => Label25
IL_025C: ldloc.2
IL_025D: brfalse => Label26
IL_0262: Label25
IL_0262: ldloc.1
IL_0263: brtrue => Label27
IL_0268: ldloc.2
IL_0269: brtrue => Label28
IL_026E: Label27
IL_026E: ldloc.s 4 (System.Int32)
IL_0270: ldc.i4.1
IL_0271: bne.un => Label29
IL_0276: Label26
IL_0276: Label28
IL_0276: ldloc.0
IL_0277: ldc.i8 8589934592
IL_0280: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0285: stloc.0
IL_0286: Label29
IL_0286: ldc.i4.0
IL_0287: stloc.s 4 (System.Int32)
IL_0289: ldc.i4.0
IL_028A: stloc.1
IL_028B: ldc.i4.0
IL_028C: stloc.2
IL_028D: ldc.i4.0
IL_028E: stloc.s 10 (System.Int32)
IL_0290: br => Label30
IL_0295: Label38
IL_0295: ldarg.2
IL_0296: ldloc.s 10 (System.Int32)
IL_0298: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_029D: stloc.s 11 (System.UInt16)
IL_029F: ldloc.s 11 (System.UInt16)
IL_02A1: brfalse => Label31
IL_02A6: ldc.i4.0
IL_02A7: stloc.s 12 (System.Int32)
IL_02A9: ldc.i4.0
IL_02AA: stloc.s 13 (System.Int32)
IL_02AC: ldloc.s 5 (NetManager)
IL_02AE: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02B3: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02B8: ldloc.s 11 (System.UInt16)
IL_02BA: ldelema NetSegment
IL_02BF: ldloc.s 11 (System.UInt16)
IL_02C1: ldc.i4.s 33
IL_02C3: ldc.i4 65536
IL_02C8: ldloca.s 12 (System.Int32)
IL_02CA: ldloca.s 13 (System.Int32)
IL_02CC: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_02D1: ldloc.s 12 (System.Int32)
IL_02D3: brtrue => Label32
IL_02D8: ldloc.s 13 (System.Int32)
IL_02DA: brfalse => Label33
IL_02DF: Label32
IL_02DF: ldloc.s 4 (System.Int32)
IL_02E1: ldc.i4.1
IL_02E2: add
IL_02E3: stloc.s 4 (System.Int32)
IL_02E5: ldloc.s 12 (System.Int32)
IL_02E7: brfalse => Label34
IL_02EC: ldc.i4.1
IL_02ED: stloc.s 12 (System.Int32)
IL_02EF: Label34
IL_02EF: ldloc.s 13 (System.Int32)
IL_02F1: brfalse => Label35
IL_02F6: ldc.i4.1
IL_02F7: stloc.s 13 (System.Int32)
IL_02F9: Label35
IL_02F9: ldloc.s 5 (NetManager)
IL_02FB: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0300: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0305: ldloc.s 11 (System.UInt16)
IL_0307: ldelema NetSegment
IL_030C: ldfld System.UInt16 NetSegment::m_endNode
IL_0311: ldarg.1
IL_0312: bne.un => Label36
IL_0317: ldloc.1
IL_0318: ldloc.s 13 (System.Int32)
IL_031A: add
IL_031B: stloc.1
IL_031C: ldloc.2
IL_031D: ldloc.s 12 (System.Int32)
IL_031F: add
IL_0320: stloc.2
IL_0321: br => Label37
IL_0326: Label36
IL_0326: ldloc.1
IL_0327: ldloc.s 12 (System.Int32)
IL_0329: add
IL_032A: stloc.1
IL_032B: ldloc.2
IL_032C: ldloc.s 13 (System.Int32)
IL_032E: add
IL_032F: stloc.2
IL_0330: Label31
IL_0330: Label33
IL_0330: Label37
IL_0330: ldloc.s 10 (System.Int32)
IL_0332: ldc.i4.1
IL_0333: add
IL_0334: stloc.s 10 (System.Int32)
IL_0336: Label30
IL_0336: ldloc.s 10 (System.Int32)
IL_0338: ldc.i4.8
IL_0339: blt => Label38
IL_033E: ldloc.1
IL_033F: brfalse => Label39
IL_0344: ldloc.2
IL_0345: brfalse => Label40
IL_034A: Label39
IL_034A: ldloc.1
IL_034B: brtrue => Label41
IL_0350: ldloc.2
IL_0351: brtrue => Label42
IL_0356: Label41
IL_0356: ldloc.s 4 (System.Int32)
IL_0358: ldc.i4.1
IL_0359: bne.un => Label43
IL_035E: Label40
IL_035E: Label42
IL_035E: ldloc.0
IL_035F: ldc.i8 72057594037927936
IL_0368: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_036D: stloc.0
IL_036E: Label15
IL_036E: Label43
IL_036E: ldarg.2
IL_036F: ldloc.0
IL_0370: stfld Problem NetNode::m_problems
IL_0375: // end original
IL_0375: ret
DONE

### Patch: virtual System.Void RoadBaseAI::UpdateLanes(System.UInt16 segmentID,


NetSegment& data, System.Boolean loading)
### Replacement: static System.Void
RoadBaseAI::RoadBaseAI.UpdateLanes_Patch0(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<NetManager>::get_instance()
IL_0005: stloc.0
IL_0006: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::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<NetNode> NetManager::m_nodes
IL_0176: ldfld NetNode[] Array16`1<NetNode>::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: ldarg.2
IL_0192: ldfld UnityEngine.Vector3 NetSegment::m_endDirection
IL_0197: call static UnityEngine.Vector3
UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a)
IL_019C: ldloca.s 12 (System.Int32)
IL_019E: ldloca.s 13 (System.Int32)
IL_01A0: ldloca.s 14 (System.Int32)
IL_01A2: ldloca.s 15 (System.Int32)
IL_01A4: ldloca.s 16 (System.Int32)
IL_01A6: ldloca.s 17 (System.Int32)
IL_01A8: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, Direction directions, LaneType laneTypes, VehicleType
vehicleTypes, UnityEngine.Vector3 direction, System.Int32& left, System.Int32&
forward, System.Int32& right, System.Int32& left2, System.Int32& forward2,
System.Int32& right2)
IL_01AD: ldloc.0
IL_01AE: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_01B3: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_01B8: ldarg.2
IL_01B9: ldfld System.UInt16 NetSegment::m_endNode
IL_01BE: ldelema NetNode
IL_01C3: ldfld Flags NetNode::m_flags
IL_01C8: ldc.i4 1136
IL_01CD: and
IL_01CE: brfalse => Label2
IL_01D3: ldloc.s 12 (System.Int32)
IL_01D5: ldloc.s 13 (System.Int32)
IL_01D7: add
IL_01D8: ldloc.s 14 (System.Int32)
IL_01DA: add
IL_01DB: brtrue => Label3
IL_01E0: ldc.i4.1
IL_01E1: stloc.s 19 (System.Boolean)
IL_01E3: br => Label4
IL_01E8: Label3
IL_01E8: ldc.i4.1
IL_01E9: stloc.s 18 (System.Boolean)
IL_01EB: Label2
IL_01EB: Label4
IL_01EB: ldc.i4.0
IL_01EC: stloc.s 20 (System.Int32)
IL_01EE: ldc.i4.0
IL_01EF: stloc.s 21 (System.Int32)
IL_01F1: ldc.i4.0
IL_01F2: stloc.s 22 (System.Int32)
IL_01F4: ldc.i4.0
IL_01F5: stloc.s 23 (System.Int32)
IL_01F7: ldc.i4.0
IL_01F8: stloc.s 24 (System.Int32)
IL_01FA: ldc.i4.0
IL_01FB: stloc.s 25 (System.Int32)
IL_01FD: ldc.i4.0
IL_01FE: stloc.s 26 (System.Boolean)
IL_0200: ldc.i4.0
IL_0201: stloc.s 27 (System.Boolean)
IL_0203: ldloc.0
IL_0204: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0209: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_020E: ldarg.2
IL_020F: ldfld System.UInt16 NetSegment::m_startNode
IL_0214: ldelema NetNode
IL_0219: ldarg.2
IL_021A: ldfld System.UInt16 NetSegment::m_startNode
IL_021F: ldarg.1
IL_0220: ldc.i4.1
IL_0221: ldc.i4.s 33
IL_0223: ldc.i4.1
IL_0224: ldarg.2
IL_0225: ldfld UnityEngine.Vector3 NetSegment::m_startDirection
IL_022A: call static UnityEngine.Vector3
UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a)
IL_022F: ldloca.s 20 (System.Int32)
IL_0231: ldloca.s 21 (System.Int32)
IL_0233: ldloca.s 22 (System.Int32)
IL_0235: ldloca.s 23 (System.Int32)
IL_0237: ldloca.s 24 (System.Int32)
IL_0239: ldloca.s 25 (System.Int32)
IL_023B: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, Direction directions, LaneType laneTypes, VehicleType
vehicleTypes, UnityEngine.Vector3 direction, System.Int32& left, System.Int32&
forward, System.Int32& right, System.Int32& left2, System.Int32& forward2,
System.Int32& right2)
IL_0240: ldloc.0
IL_0241: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0246: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_024B: ldarg.2
IL_024C: ldfld System.UInt16 NetSegment::m_startNode
IL_0251: ldelema NetNode
IL_0256: ldfld Flags NetNode::m_flags
IL_025B: ldc.i4 1136
IL_0260: and
IL_0261: brfalse => Label5
IL_0266: ldloc.s 20 (System.Int32)
IL_0268: ldloc.s 21 (System.Int32)
IL_026A: add
IL_026B: ldloc.s 22 (System.Int32)
IL_026D: add
IL_026E: brtrue => Label6
IL_0273: ldc.i4.1
IL_0274: stloc.s 27 (System.Boolean)
IL_0276: br => Label7
IL_027B: Label6
IL_027B: ldc.i4.1
IL_027C: stloc.s 26 (System.Boolean)
IL_027E: Label5
IL_027E: Label7
IL_027E: ldc.i4.0
IL_027F: stloc.s 28 (NetLane+Flags)
IL_0281: ldloc.s 15 (System.Int32)
IL_0283: brfalse => Label8
IL_0288: ldloc.s 12 (System.Int32)
IL_028A: brtrue => Label9
IL_028F: ldloc.s 28 (NetLane+Flags)
IL_0291: ldarg.2
IL_0292: ldfld Flags NetSegment::m_flags
IL_0297: ldc.i4.s 16
IL_0299: and
IL_029A: brfalse => Label10
IL_029F: ldc.i4 4096
IL_02A4: br => Label11
IL_02A9: Label10
IL_02A9: ldc.i4 16384
IL_02AE: Label11
IL_02AE: or
IL_02AF: stloc.s 28 (NetLane+Flags)
IL_02B1: Label8
IL_02B1: Label9
IL_02B1: ldloc.s 17 (System.Int32)
IL_02B3: brfalse => Label12
IL_02B8: ldloc.s 14 (System.Int32)
IL_02BA: brtrue => Label13
IL_02BF: ldloc.s 28 (NetLane+Flags)
IL_02C1: ldarg.2
IL_02C2: ldfld Flags NetSegment::m_flags
IL_02C7: ldc.i4.s 16
IL_02C9: and
IL_02CA: brfalse => Label14
IL_02CF: ldc.i4 8192
IL_02D4: br => Label15
IL_02D9: Label14
IL_02D9: ldc.i4 32768
IL_02DE: Label15
IL_02DE: or
IL_02DF: stloc.s 28 (NetLane+Flags)
IL_02E1: Label12
IL_02E1: Label13
IL_02E1: ldloc.s 23 (System.Int32)
IL_02E3: brfalse => Label16
IL_02E8: ldloc.s 20 (System.Int32)
IL_02EA: brtrue => Label17
IL_02EF: ldloc.s 28 (NetLane+Flags)
IL_02F1: ldarg.2
IL_02F2: ldfld Flags NetSegment::m_flags
IL_02F7: ldc.i4.s 16
IL_02F9: and
IL_02FA: brfalse => Label18
IL_02FF: ldc.i4 16384
IL_0304: br => Label19
IL_0309: Label18
IL_0309: ldc.i4 4096
IL_030E: Label19
IL_030E: or
IL_030F: stloc.s 28 (NetLane+Flags)
IL_0311: Label16
IL_0311: Label17
IL_0311: ldloc.s 25 (System.Int32)
IL_0313: brfalse => Label20
IL_0318: ldloc.s 22 (System.Int32)
IL_031A: brtrue => Label21
IL_031F: ldloc.s 28 (NetLane+Flags)
IL_0321: ldarg.2
IL_0322: ldfld Flags NetSegment::m_flags
IL_0327: ldc.i4.s 16
IL_0329: and
IL_032A: brfalse => Label22
IL_032F: ldc.i4 32768
IL_0334: br => Label23
IL_0339: Label22
IL_0339: ldc.i4 8192
IL_033E: Label23
IL_033E: or
IL_033F: stloc.s 28 (NetLane+Flags)
IL_0341: Label20
IL_0341: Label21
IL_0341: ldarg.2
IL_0342: ldfld Flags NetSegment::m_flags
IL_0347: ldc.i4 1073741824
IL_034C: and
IL_034D: brfalse => Label24
IL_0352: ldloc.s 28 (NetLane+Flags)
IL_0354: ldarg.2
IL_0355: ldfld Flags NetSegment::m_flags
IL_035A: ldc.i4.s 16
IL_035C: and
IL_035D: brfalse => Label25
IL_0362: ldc.i4 2048
IL_0367: br => Label26
IL_036C: Label25
IL_036C: ldc.i4 1024
IL_0371: Label26
IL_0371: or
IL_0372: stloc.s 28 (NetLane+Flags)
IL_0374: Label24
IL_0374: ldarg.2
IL_0375: ldfld Flags NetSegment::m_flags
IL_037A: ldc.i4 -2147483648
IL_037F: and
IL_0380: brfalse => Label27
IL_0385: ldloc.s 28 (NetLane+Flags)
IL_0387: ldarg.2
IL_0388: ldfld Flags NetSegment::m_flags
IL_038D: ldc.i4.s 16
IL_038F: and
IL_0390: brfalse => Label28
IL_0395: ldc.i4 1024
IL_039A: br => Label29
IL_039F: Label28
IL_039F: ldc.i4 2048
IL_03A4: Label29
IL_03A4: or
IL_03A5: stloc.s 28 (NetLane+Flags)
IL_03A7: Label27
IL_03A7: ldc.r4 0
IL_03AC: stloc.s 29 (System.Single)
IL_03AE: ldc.r4 0
IL_03B3: stloc.s 30 (System.Single)
IL_03B5: ldc.i4.0
IL_03B6: stloc.s 31 (System.UInt32)
IL_03B8: ldarg.2
IL_03B9: ldfld System.UInt32 NetSegment::m_lanes
IL_03BE: stloc.s 32 (System.UInt32)
IL_03C0: ldc.i4.0
IL_03C1: stloc.s 33 (System.Int32)
IL_03C3: br => Label30
IL_03C8: Label89
IL_03C8: ldloc.s 32 (System.UInt32)
IL_03CA: brtrue => Label31
IL_03CF: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_03D4: ldloca.s 32 (System.UInt32)
IL_03D6: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_03DB: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_03E0: ldarg.1
IL_03E1: ldc.i4.1
IL_03E2: callvirt System.Boolean NetManager::CreateLanes(System.UInt32&
firstLane, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segment,
System.Int32 count)
IL_03E7: brfalse => Label32
IL_03EC: ldloc.s 31 (System.UInt32)
IL_03EE: brfalse => Label33
IL_03F3: ldloc.0
IL_03F4: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_03F9: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_03FE: ldloc.s 31 (System.UInt32)
IL_0400: conv.u
IL_0401: ldelema NetLane
IL_0406: ldloc.s 32 (System.UInt32)
IL_0408: stfld System.UInt32 NetLane::m_nextLane
IL_040D: br => Label34
IL_0412: Label33
IL_0412: ldarg.2
IL_0413: ldloc.s 32 (System.UInt32)
IL_0415: stfld System.UInt32 NetSegment::m_lanes
IL_041A: Label34
IL_041A: br => Label35
IL_041F: Label32
IL_041F: br => Label36
IL_0424: Label31
IL_0424: Label35
IL_0424: ldarg.0
IL_0425: ldfld NetInfo NetAI::m_info
IL_042A: ldfld Lane[] NetInfo::m_lanes
IL_042F: ldloc.s 33 (System.Int32)
IL_0431: ldelem.ref
IL_0432: stloc.s 34 (NetInfo+Lane)
IL_0434: ldloc.s 34 (NetInfo+Lane)
IL_0436: ldfld System.Single Lane::m_position
IL_043B: ldarg.0
IL_043C: ldfld NetInfo NetAI::m_info
IL_0441: ldfld System.Single NetInfo::m_halfWidth
IL_0446: ldc.r4 2
IL_044B: mul
IL_044C: div
IL_044D: ldc.r4 0.5
IL_0452: add
IL_0453: stloc.s 35 (System.Single)
IL_0455: ldarg.2
IL_0456: ldfld Flags NetSegment::m_flags
IL_045B: ldc.i4.s 16
IL_045D: and
IL_045E: brfalse => Label37
IL_0463: ldc.r4 1
IL_0468: ldloc.s 35 (System.Single)
IL_046A: sub
IL_046B: stloc.s 35 (System.Single)
IL_046D: Label37
IL_046D: ldloc.2
IL_046E: ldloc.3
IL_046F: ldloc.2
IL_0470: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0475: ldloc.s 35 (System.Single)
IL_0477: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_047C: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0481: stloc.s 36 (UnityEngine.Vector3)
IL_0483: ldloc.s 6 (UnityEngine.Vector3)
IL_0485: ldloc.s 7 (UnityEngine.Vector3)
IL_0487: ldloc.s 35 (System.Single)
IL_0489: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_048E: stloc.s 37 (UnityEngine.Vector3)
IL_0490: ldloc.s 4 (UnityEngine.Vector3)
IL_0492: ldloc.s 5 (UnityEngine.Vector3)
IL_0494: ldloc.s 4 (UnityEngine.Vector3)
IL_0496: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_049B: ldloc.s 35 (System.Single)
IL_049D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_04A2: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_04A7: stloc.s 38 (UnityEngine.Vector3)
IL_04A9: ldloc.s 8 (UnityEngine.Vector3)
IL_04AB: ldloc.s 9 (UnityEngine.Vector3)
IL_04AD: ldloc.s 35 (System.Single)
IL_04AF: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_04B4: stloc.s 39 (UnityEngine.Vector3)
IL_04B6: ldloca.s 36 (UnityEngine.Vector3)
IL_04B8: dup
IL_04B9: ldfld System.Single UnityEngine.Vector3::y
IL_04BE: ldloc.s 34 (NetInfo+Lane)
IL_04C0: ldfld System.Single Lane::m_verticalOffset
IL_04C5: add
IL_04C6: stfld System.Single UnityEngine.Vector3::y
IL_04CB: ldloca.s 38 (UnityEngine.Vector3)
IL_04CD: dup
IL_04CE: ldfld System.Single UnityEngine.Vector3::y
IL_04D3: ldloc.s 34 (NetInfo+Lane)
IL_04D5: ldfld System.Single Lane::m_verticalOffset
IL_04DA: add
IL_04DB: stfld System.Single UnityEngine.Vector3::y
IL_04E0: ldloc.s 36 (UnityEngine.Vector3)
IL_04E2: ldloc.s 37 (UnityEngine.Vector3)
IL_04E4: ldloc.s 38 (UnityEngine.Vector3)
IL_04E6: ldloc.s 39 (UnityEngine.Vector3)
IL_04E8: ldloc.s 10 (System.Boolean)
IL_04EA: ldloc.s 11 (System.Boolean)
IL_04EC: ldloca.s 40 (UnityEngine.Vector3)
IL_04EE: ldloca.s 41 (UnityEngine.Vector3)
IL_04F0: 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_04F5: ldloc.0
IL_04F6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_04FB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0500: ldloc.s 32 (System.UInt32)
IL_0502: conv.u
IL_0503: ldelema NetLane
IL_0508: ldfld System.UInt16 NetLane::m_flags
IL_050D: stloc.s 42 (NetLane+Flags)
IL_050F: ldloc.s 28 (NetLane+Flags)
IL_0511: stloc.s 43 (NetLane+Flags)
IL_0513: ldloc.s 42 (NetLane+Flags)
IL_0515: ldc.i4 -64753
IL_051A: and
IL_051B: stloc.s 42 (NetLane+Flags)
IL_051D: ldloc.s 34 (NetInfo+Lane)
IL_051F: ldfld Direction Lane::m_finalDirection
IL_0524: ldc.i4.3
IL_0525: and
IL_0526: conv.u1
IL_0527: ldc.i4.2
IL_0528: bne.un => Label38
IL_052D: ldloc.s 43 (NetLane+Flags)
IL_052F: ldc.i4 -2049
IL_0534: and
IL_0535: stloc.s 43 (NetLane+Flags)
IL_0537: Label38
IL_0537: ldloc.s 34 (NetInfo+Lane)
IL_0539: ldfld Direction Lane::m_finalDirection
IL_053E: ldc.i4.3
IL_053F: and
IL_0540: conv.u1
IL_0541: ldc.i4.1
IL_0542: bne.un => Label39
IL_0547: ldloc.s 43 (NetLane+Flags)
IL_0549: ldc.i4 -1025
IL_054E: and
IL_054F: stloc.s 43 (NetLane+Flags)
IL_0551: Label39
IL_0551: ldloc.s 34 (NetInfo+Lane)
IL_0553: ldfld VehicleType Lane::m_vehicleType
IL_0558: ldc.i4 2048
IL_055D: and
IL_055E: brfalse => Label40
IL_0563: ldloc.s 43 (NetLane+Flags)
IL_0565: ldc.i4 -3073
IL_056A: and
IL_056B: stloc.s 43 (NetLane+Flags)
IL_056D: Label40
IL_056D: ldloc.s 42 (NetLane+Flags)
IL_056F: ldloc.s 43 (NetLane+Flags)
IL_0571: or
IL_0572: stloc.s 42 (NetLane+Flags)
IL_0574: ldloc.1
IL_0575: brfalse => Label41
IL_057A: ldloc.s 42 (NetLane+Flags)
IL_057C: ldc.i4.4
IL_057D: or
IL_057E: stloc.s 42 (NetLane+Flags)
IL_0580: br => Label42
IL_0585: Label41
IL_0585: ldloc.s 42 (NetLane+Flags)
IL_0587: ldc.i4.s -5
IL_0589: and
IL_058A: stloc.s 42 (NetLane+Flags)
IL_058C: Label42
IL_058C: ldc.i4.0
IL_058D: stloc.s 44 (System.Int32)
IL_058F: ldc.i4 255
IL_0594: stloc.s 45 (System.Int32)
IL_0596: ldloc.s 34 (NetInfo+Lane)
IL_0598: ldfld LaneType Lane::m_laneType
IL_059D: ldc.i4.s 33
IL_059F: and
IL_05A0: conv.u1
IL_05A1: brfalse => Label43
IL_05A6: ldloc.s 34 (NetInfo+Lane)
IL_05A8: ldfld Direction Lane::m_finalDirection
IL_05AD: ldc.i4.1
IL_05AE: and
IL_05AF: conv.u1
IL_05B0: ldc.i4.0
IL_05B1: ceq
IL_05B3: ldc.i4.0
IL_05B4: ceq
IL_05B6: ldarg.2
IL_05B7: ldfld Flags NetSegment::m_flags
IL_05BC: ldc.i4.s 16
IL_05BE: and
IL_05BF: ldc.i4.0
IL_05C0: ceq
IL_05C2: ceq
IL_05C4: stloc.s 46 (System.Boolean)
IL_05C6: ldloc.s 46 (System.Boolean)
IL_05C8: brfalse => Label44
IL_05CD: ldloc.s 12 (System.Int32)
IL_05CF: stloc.s 47 (System.Int32)
IL_05D1: ldloc.s 13 (System.Int32)
IL_05D3: stloc.s 48 (System.Int32)
IL_05D5: ldloc.s 14 (System.Int32)
IL_05D7: stloc.s 49 (System.Int32)
IL_05D9: br => Label45
IL_05DE: Label44
IL_05DE: ldloc.s 20 (System.Int32)
IL_05E0: stloc.s 47 (System.Int32)
IL_05E2: ldloc.s 21 (System.Int32)
IL_05E4: stloc.s 48 (System.Int32)
IL_05E6: ldloc.s 22 (System.Int32)
IL_05E8: stloc.s 49 (System.Int32)
IL_05EA: Label45
IL_05EA: ldloc.s 34 (NetInfo+Lane)
IL_05EC: ldfld Direction Lane::m_finalDirection
IL_05F1: ldc.i4.1
IL_05F2: and
IL_05F3: conv.u1
IL_05F4: brfalse => Label46
IL_05F9: ldloc.s 34 (NetInfo+Lane)
IL_05FB: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0600: stloc.s 50 (System.Int32)
IL_0602: ldloc.s 34 (NetInfo+Lane)
IL_0604: ldfld System.Int32 Lane::m_similarLaneCount
IL_0609: ldloc.s 34 (NetInfo+Lane)
IL_060B: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0610: sub
IL_0611: ldc.i4.1
IL_0612: sub
IL_0613: stloc.s 51 (System.Int32)
IL_0615: br => Label47
IL_061A: Label46
IL_061A: ldloc.s 34 (NetInfo+Lane)
IL_061C: ldfld System.Int32 Lane::m_similarLaneCount
IL_0621: ldloc.s 34 (NetInfo+Lane)
IL_0623: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0628: sub
IL_0629: ldc.i4.1
IL_062A: sub
IL_062B: stloc.s 50 (System.Int32)
IL_062D: ldloc.s 34 (NetInfo+Lane)
IL_062F: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0634: stloc.s 51 (System.Int32)
IL_0636: Label47
IL_0636: ldloc.s 47 (System.Int32)
IL_0638: ldloc.s 48 (System.Int32)
IL_063A: add
IL_063B: ldloc.s 49 (System.Int32)
IL_063D: add
IL_063E: stloc.s 52 (System.Int32)
IL_0640: ldc.i4 255
IL_0645: stloc.s 44 (System.Int32)
IL_0647: ldc.i4.0
IL_0648: stloc.s 45 (System.Int32)
IL_064A: ldloc.s 52 (System.Int32)
IL_064C: brfalse => Label48
IL_0651: ldloc.s 34 (NetInfo+Lane)
IL_0653: ldfld System.Int32 Lane::m_similarLaneCount
IL_0658: ldloc.s 52 (System.Int32)
IL_065A: ble => Label49
IL_065F: ldloc.s 52 (System.Int32)
IL_0661: ldc.i4.0
IL_0662: ble => Label50
IL_0667: ldloc.s 52 (System.Int32)
IL_0669: ldloc.s 50 (System.Int32)
IL_066B: mul
IL_066C: ldloc.s 34 (NetInfo+Lane)
IL_066E: ldfld System.Int32 Lane::m_similarLaneCount
IL_0673: div
IL_0674: stloc.s 44 (System.Int32)
IL_0676: ldloc.s 52 (System.Int32)
IL_0678: ldloc.s 52 (System.Int32)
IL_067A: ldloc.s 51 (System.Int32)
IL_067C: mul
IL_067D: ldloc.s 34 (NetInfo+Lane)
IL_067F: ldfld System.Int32 Lane::m_similarLaneCount
IL_0684: div
IL_0685: sub
IL_0686: stloc.s 45 (System.Int32)
IL_0688: ldloc.s 42 (NetLane+Flags)
IL_068A: ldc.i4 128
IL_068F: or
IL_0690: stloc.s 42 (NetLane+Flags)
IL_0692: ldloc.s 44 (System.Int32)
IL_0694: ldloc.s 47 (System.Int32)
IL_0696: bge => Label51
IL_069B: ldloc.s 42 (NetLane+Flags)
IL_069D: ldc.i4.s 32
IL_069F: or
IL_06A0: stloc.s 42 (NetLane+Flags)
IL_06A2: Label51
IL_06A2: ldloc.s 52 (System.Int32)
IL_06A4: ldloc.s 45 (System.Int32)
IL_06A6: sub
IL_06A7: ldloc.s 49 (System.Int32)
IL_06A9: bge => Label52
IL_06AE: ldloc.s 42 (NetLane+Flags)
IL_06B0: ldc.i4.s 64
IL_06B2: or
IL_06B3: stloc.s 42 (NetLane+Flags)
IL_06B5: Label52
IL_06B5: ldloc.s 48 (System.Int32)
IL_06B7: brfalse => Label53
IL_06BC: ldloc.s 44 (System.Int32)
IL_06BE: ldloc.s 47 (System.Int32)
IL_06C0: ldloc.s 48 (System.Int32)
IL_06C2: add
IL_06C3: bge => Label54
IL_06C8: ldloc.s 45 (System.Int32)
IL_06CA: ldloc.s 47 (System.Int32)
IL_06CC: ble => Label55
IL_06D1: ldloc.s 42 (NetLane+Flags)
IL_06D3: ldc.i4.s 16
IL_06D5: or
IL_06D6: stloc.s 42 (NetLane+Flags)
IL_06D8: Label53
IL_06D8: Label54
IL_06D8: Label55
IL_06D8: br => Label56
IL_06DD: Label49
IL_06DD: Label50
IL_06DD: ldloc.s 34 (NetInfo+Lane)
IL_06DF: ldfld System.Int32 Lane::m_similarLaneCount
IL_06E4: ldloc.s 52 (System.Int32)
IL_06E6: blt => Label57
IL_06EB: ldloc.s 47 (System.Int32)
IL_06ED: stloc.s 53 (System.Int32)
IL_06EF: ldloc.s 49 (System.Int32)
IL_06F1: stloc.s 54 (System.Int32)
IL_06F3: br => Label58
IL_06F8: Label57
IL_06F8: ldloc.s 47 (System.Int32)
IL_06FA: ldloc.s 34 (NetInfo+Lane)
IL_06FC: ldfld System.Int32 Lane::m_similarLaneCount
IL_0701: mul
IL_0702: ldloc.s 52 (System.Int32)
IL_0704: ldloc.s 48 (System.Int32)
IL_0706: ldc.i4.1
IL_0707: shr
IL_0708: add
IL_0709: div
IL_070A: stloc.s 53 (System.Int32)
IL_070C: ldloc.s 49 (System.Int32)
IL_070E: ldloc.s 34 (NetInfo+Lane)
IL_0710: ldfld System.Int32 Lane::m_similarLaneCount
IL_0715: mul
IL_0716: ldloc.s 52 (System.Int32)
IL_0718: ldloc.s 48 (System.Int32)
IL_071A: ldc.i4.1
IL_071B: shr
IL_071C: add
IL_071D: div
IL_071E: stloc.s 54 (System.Int32)
IL_0720: Label58
IL_0720: ldloc.s 53 (System.Int32)
IL_0722: stloc.s 55 (System.Int32)
IL_0724: ldloc.s 34 (NetInfo+Lane)
IL_0726: ldfld System.Int32 Lane::m_similarLaneCount
IL_072B: ldloc.s 53 (System.Int32)
IL_072D: sub
IL_072E: ldloc.s 54 (System.Int32)
IL_0730: sub
IL_0731: stloc.s 56 (System.Int32)
IL_0733: ldloc.s 54 (System.Int32)
IL_0735: stloc.s 57 (System.Int32)
IL_0737: ldloc.s 56 (System.Int32)
IL_0739: ldc.i4.0
IL_073A: ble => Label59
IL_073F: ldloc.s 47 (System.Int32)
IL_0741: ldloc.s 53 (System.Int32)
IL_0743: ble => Label60
IL_0748: ldloc.s 55 (System.Int32)
IL_074A: ldc.i4.1
IL_074B: add
IL_074C: stloc.s 55 (System.Int32)
IL_074E: Label60
IL_074E: ldloc.s 49 (System.Int32)
IL_0750: ldloc.s 54 (System.Int32)
IL_0752: ble => Label61
IL_0757: ldloc.s 57 (System.Int32)
IL_0759: ldc.i4.1
IL_075A: add
IL_075B: stloc.s 57 (System.Int32)
IL_075D: Label59
IL_075D: Label61
IL_075D: ldloc.s 50 (System.Int32)
IL_075F: ldloc.s 55 (System.Int32)
IL_0761: bge => Label62
IL_0766: ldloc.s 50 (System.Int32)
IL_0768: ldloc.s 47 (System.Int32)
IL_076A: mul
IL_076B: ldloc.s 55 (System.Int32)
IL_076D: add
IL_076E: ldc.i4.1
IL_076F: sub
IL_0770: ldloc.s 55 (System.Int32)
IL_0772: div
IL_0773: stloc.s 58 (System.Int32)
IL_0775: ldloc.s 50 (System.Int32)
IL_0777: ldc.i4.1
IL_0778: add
IL_0779: ldloc.s 47 (System.Int32)
IL_077B: mul
IL_077C: ldloc.s 55 (System.Int32)
IL_077E: add
IL_077F: ldc.i4.1
IL_0780: sub
IL_0781: ldloc.s 55 (System.Int32)
IL_0783: div
IL_0784: stloc.s 59 (System.Int32)
IL_0786: ldloc.s 59 (System.Int32)
IL_0788: ldloc.s 58 (System.Int32)
IL_078A: ble => Label63
IL_078F: ldloc.s 42 (NetLane+Flags)
IL_0791: ldc.i4.s 32
IL_0793: or
IL_0794: stloc.s 42 (NetLane+Flags)
IL_0796: ldloc.s 44 (System.Int32)
IL_0798: ldloc.s 58 (System.Int32)
IL_079A: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_079F: stloc.s 44 (System.Int32)
IL_07A1: ldloc.s 45 (System.Int32)
IL_07A3: ldloc.s 59 (System.Int32)
IL_07A5: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_07AA: stloc.s 45 (System.Int32)
IL_07AC: Label62
IL_07AC: Label63
IL_07AC: ldloc.s 50 (System.Int32)
IL_07AE: ldloc.s 53 (System.Int32)
IL_07B0: blt => Label64
IL_07B5: ldloc.s 51 (System.Int32)
IL_07B7: ldloc.s 54 (System.Int32)
IL_07B9: blt => Label65
IL_07BE: ldloc.s 48 (System.Int32)
IL_07C0: brfalse => Label66
IL_07C5: ldloc.s 34 (NetInfo+Lane)
IL_07C7: ldfld System.Int32 Lane::m_similarLaneCount
IL_07CC: ldloc.s 52 (System.Int32)
IL_07CE: ble => Label67
IL_07D3: ldloc.s 53 (System.Int32)
IL_07D5: ldc.i4.1
IL_07D6: add
IL_07D7: stloc.s 53 (System.Int32)
IL_07D9: Label67
IL_07D9: ldloc.s 47 (System.Int32)
IL_07DB: ldloc.s 50 (System.Int32)
IL_07DD: ldloc.s 53 (System.Int32)
IL_07DF: sub
IL_07E0: ldloc.s 48 (System.Int32)
IL_07E2: mul
IL_07E3: ldloc.s 56 (System.Int32)
IL_07E5: add
IL_07E6: ldc.i4.1
IL_07E7: sub
IL_07E8: ldloc.s 56 (System.Int32)
IL_07EA: div
IL_07EB: add
IL_07EC: stloc.s 60 (System.Int32)
IL_07EE: ldloc.s 47 (System.Int32)
IL_07F0: ldloc.s 50 (System.Int32)
IL_07F2: ldc.i4.1
IL_07F3: add
IL_07F4: ldloc.s 53 (System.Int32)
IL_07F6: sub
IL_07F7: ldloc.s 48 (System.Int32)
IL_07F9: mul
IL_07FA: ldloc.s 56 (System.Int32)
IL_07FC: add
IL_07FD: ldc.i4.1
IL_07FE: sub
IL_07FF: ldloc.s 56 (System.Int32)
IL_0801: div
IL_0802: add
IL_0803: stloc.s 61 (System.Int32)
IL_0805: ldloc.s 61 (System.Int32)
IL_0807: ldloc.s 60 (System.Int32)
IL_0809: ble => Label68
IL_080E: ldloc.s 42 (NetLane+Flags)
IL_0810: ldc.i4.s 16
IL_0812: or
IL_0813: stloc.s 42 (NetLane+Flags)
IL_0815: ldloc.s 44 (System.Int32)
IL_0817: ldloc.s 60 (System.Int32)
IL_0819: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_081E: stloc.s 44 (System.Int32)
IL_0820: ldloc.s 45 (System.Int32)
IL_0822: ldloc.s 61 (System.Int32)
IL_0824: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0829: stloc.s 45 (System.Int32)
IL_082B: Label64
IL_082B: Label65
IL_082B: Label66
IL_082B: Label68
IL_082B: ldloc.s 51 (System.Int32)
IL_082D: ldloc.s 57 (System.Int32)
IL_082F: bge => Label69
IL_0834: ldloc.s 52 (System.Int32)
IL_0836: ldloc.s 51 (System.Int32)
IL_0838: ldc.i4.1
IL_0839: add
IL_083A: ldloc.s 49 (System.Int32)
IL_083C: mul
IL_083D: ldloc.s 57 (System.Int32)
IL_083F: add
IL_0840: ldc.i4.1
IL_0841: sub
IL_0842: ldloc.s 57 (System.Int32)
IL_0844: div
IL_0845: sub
IL_0846: stloc.s 62 (System.Int32)
IL_0848: ldloc.s 52 (System.Int32)
IL_084A: ldloc.s 51 (System.Int32)
IL_084C: ldloc.s 49 (System.Int32)
IL_084E: mul
IL_084F: ldloc.s 57 (System.Int32)
IL_0851: add
IL_0852: ldc.i4.1
IL_0853: sub
IL_0854: ldloc.s 57 (System.Int32)
IL_0856: div
IL_0857: sub
IL_0858: stloc.s 63 (System.Int32)
IL_085A: ldloc.s 63 (System.Int32)
IL_085C: ldloc.s 62 (System.Int32)
IL_085E: ble => Label70
IL_0863: ldloc.s 42 (NetLane+Flags)
IL_0865: ldc.i4.s 64
IL_0867: or
IL_0868: stloc.s 42 (NetLane+Flags)
IL_086A: ldloc.s 44 (System.Int32)
IL_086C: ldloc.s 62 (System.Int32)
IL_086E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0873: stloc.s 44 (System.Int32)
IL_0875: ldloc.s 45 (System.Int32)
IL_0877: ldloc.s 63 (System.Int32)
IL_0879: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_087E: stloc.s 45 (System.Int32)
IL_0880: Label69
IL_0880: Label70
IL_0880: ldarg.0
IL_0881: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_0886: brfalse => Label71
IL_088B: ldloc.s 42 (NetLane+Flags)
IL_088D: ldc.i4.s 96
IL_088F: and
IL_0890: ldc.i4.s 32
IL_0892: bne.un => Label72
IL_0897: ldloc.s 42 (NetLane+Flags)
IL_0899: ldc.i4.s 16
IL_089B: and
IL_089C: brfalse => Label73
IL_08A1: ldloc.s 48 (System.Int32)
IL_08A3: ldc.i4.2
IL_08A4: blt => Label74
IL_08A9: ldloc.s 47 (System.Int32)
IL_08AB: ldc.i4.1
IL_08AC: bne.un => Label75
IL_08B1: Label73
IL_08B1: ldloc.s 45 (System.Int32)
IL_08B3: ldloc.s 44 (System.Int32)
IL_08B5: ldc.i4.1
IL_08B6: add
IL_08B7: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_08BC: stloc.s 45 (System.Int32)
IL_08BE: Label74
IL_08BE: Label75
IL_08BE: br => Label76
IL_08C3: Label72
IL_08C3: ldloc.s 42 (NetLane+Flags)
IL_08C5: ldc.i4.s 96
IL_08C7: and
IL_08C8: ldc.i4.s 64
IL_08CA: bne.un => Label77
IL_08CF: ldloc.s 42 (NetLane+Flags)
IL_08D1: ldc.i4.s 16
IL_08D3: and
IL_08D4: brfalse => Label78
IL_08D9: ldloc.s 48 (System.Int32)
IL_08DB: ldc.i4.2
IL_08DC: blt => Label79
IL_08E1: ldloc.s 49 (System.Int32)
IL_08E3: ldc.i4.1
IL_08E4: bne.un => Label80
IL_08E9: Label78
IL_08E9: ldloc.s 44 (System.Int32)
IL_08EB: ldloc.s 45 (System.Int32)
IL_08ED: ldc.i4.1
IL_08EE: sub
IL_08EF: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_08F4: stloc.s 44 (System.Int32)
IL_08F6: Label48
IL_08F6: Label56
IL_08F6: Label71
IL_08F6: Label76
IL_08F6: Label77
IL_08F6: Label79
IL_08F6: Label80
IL_08F6: ldloc.s 46 (System.Boolean)
IL_08F8: brfalse => Label81
IL_08FD: ldloc.s 18 (System.Boolean)
IL_08FF: brfalse => Label82
IL_0904: ldloc.s 42 (NetLane+Flags)
IL_0906: ldc.i4.s -113
IL_0908: and
IL_0909: stloc.s 42 (NetLane+Flags)
IL_090B: br => Label83
IL_0910: Label82
IL_0910: ldloc.s 19 (System.Boolean)
IL_0912: brfalse => Label84
IL_0917: ldloc.s 42 (NetLane+Flags)
IL_0919: ldc.i4.s 16
IL_091B: or
IL_091C: stloc.s 42 (NetLane+Flags)
IL_091E: Label83
IL_091E: Label84
IL_091E: br => Label85
IL_0923: Label81
IL_0923: ldloc.s 26 (System.Boolean)
IL_0925: brfalse => Label86
IL_092A: ldloc.s 42 (NetLane+Flags)
IL_092C: ldc.i4.s -113
IL_092E: and
IL_092F: stloc.s 42 (NetLane+Flags)
IL_0931: br => Label87
IL_0936: Label86
IL_0936: ldloc.s 27 (System.Boolean)
IL_0938: brfalse => Label88
IL_093D: ldloc.s 42 (NetLane+Flags)
IL_093F: ldc.i4.s 16
IL_0941: or
IL_0942: stloc.s 42 (NetLane+Flags)
IL_0944: Label43
IL_0944: Label85
IL_0944: Label87
IL_0944: Label88
IL_0944: ldloc.0
IL_0945: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_094A: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_094F: ldloc.s 32 (System.UInt32)
IL_0951: conv.u
IL_0952: ldelema NetLane
IL_0957: ldloc.s 36 (UnityEngine.Vector3)
IL_0959: ldloc.s 40 (UnityEngine.Vector3)
IL_095B: ldloc.s 41 (UnityEngine.Vector3)
IL_095D: ldloc.s 38 (UnityEngine.Vector3)
IL_095F: newobj System.Void
ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3
_b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d)
IL_0964: stfld ColossalFramework.Math.Bezier3 NetLane::m_bezier
IL_0969: ldloc.0
IL_096A: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_096F: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0974: ldloc.s 32 (System.UInt32)
IL_0976: conv.u
IL_0977: ldelema NetLane
IL_097C: ldarg.1
IL_097D: stfld System.UInt16 NetLane::m_segment
IL_0982: ldloc.0
IL_0983: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0988: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_098D: ldloc.s 32 (System.UInt32)
IL_098F: conv.u
IL_0990: ldelema NetLane
IL_0995: ldloc.s 42 (NetLane+Flags)
IL_0997: conv.u2
IL_0998: stfld System.UInt16 NetLane::m_flags
IL_099D: ldloc.0
IL_099E: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09A3: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09A8: ldloc.s 32 (System.UInt32)
IL_09AA: conv.u
IL_09AB: ldelema NetLane
IL_09B0: ldloc.s 44 (System.Int32)
IL_09B2: conv.u1
IL_09B3: stfld System.Byte NetLane::m_firstTarget
IL_09B8: ldloc.0
IL_09B9: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09BE: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09C3: ldloc.s 32 (System.UInt32)
IL_09C5: conv.u
IL_09C6: ldelema NetLane
IL_09CB: ldloc.s 45 (System.Int32)
IL_09CD: conv.u1
IL_09CE: stfld System.Byte NetLane::m_lastTarget
IL_09D3: ldloc.s 29 (System.Single)
IL_09D5: ldloc.0
IL_09D6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09DB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09E0: ldloc.s 32 (System.UInt32)
IL_09E2: conv.u
IL_09E3: ldelema NetLane
IL_09E8: call System.Single NetLane::UpdateLength()
IL_09ED: add
IL_09EE: stloc.s 29 (System.Single)
IL_09F0: ldloc.s 30 (System.Single)
IL_09F2: ldc.r4 1
IL_09F7: add
IL_09F8: stloc.s 30 (System.Single)
IL_09FA: ldloc.s 32 (System.UInt32)
IL_09FC: stloc.s 31 (System.UInt32)
IL_09FE: ldloc.0
IL_09FF: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0A04: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0A09: ldloc.s 32 (System.UInt32)
IL_0A0B: conv.u
IL_0A0C: ldelema NetLane
IL_0A11: ldfld System.UInt32 NetLane::m_nextLane
IL_0A16: stloc.s 32 (System.UInt32)
IL_0A18: ldloc.s 33 (System.Int32)
IL_0A1A: ldc.i4.1
IL_0A1B: add
IL_0A1C: stloc.s 33 (System.Int32)
IL_0A1E: Label30
IL_0A1E: ldloc.s 33 (System.Int32)
IL_0A20: ldarg.0
IL_0A21: ldfld NetInfo NetAI::m_info
IL_0A26: ldfld Lane[] NetInfo::m_lanes
IL_0A2B: ldlen
IL_0A2C: conv.i4
IL_0A2D: blt => Label89
IL_0A32: Label36
IL_0A32: ldloc.s 30 (System.Single)
IL_0A34: ldc.r4 0
IL_0A39: beq => Label90
IL_0A3E: ldarg.2
IL_0A3F: ldloc.s 29 (System.Single)
IL_0A41: ldloc.s 30 (System.Single)
IL_0A43: div
IL_0A44: stfld System.Single NetSegment::m_averageLength
IL_0A49: br => Label91
IL_0A4E: Label90
IL_0A4E: ldarg.2
IL_0A4F: ldc.r4 0
IL_0A54: stfld System.Single NetSegment::m_averageLength
IL_0A59: Label91
IL_0A59: ldc.i4.0
IL_0A5A: stloc.s 64 (System.Boolean)
IL_0A5C: ldarg.2
IL_0A5D: ldfld System.Single NetSegment::m_averageLength
IL_0A62: ldc.r4 11
IL_0A67: bge.un => Label92
IL_0A6C: ldloc.0
IL_0A6D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0A72: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A77: ldarg.2
IL_0A78: ldfld System.UInt16 NetSegment::m_startNode
IL_0A7D: ldelema NetNode
IL_0A82: ldfld Flags NetNode::m_flags
IL_0A87: ldc.i4 128
IL_0A8C: and
IL_0A8D: brfalse => Label93
IL_0A92: ldloc.0
IL_0A93: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0A98: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A9D: ldarg.2
IL_0A9E: ldfld System.UInt16 NetSegment::m_endNode
IL_0AA3: ldelema NetNode
IL_0AA8: ldfld Flags NetNode::m_flags
IL_0AAD: ldc.i4 128
IL_0AB2: and
IL_0AB3: brfalse => Label94
IL_0AB8: ldc.i4.1
IL_0AB9: stloc.s 64 (System.Boolean)
IL_0ABB: Label92
IL_0ABB: Label93
IL_0ABB: Label94
IL_0ABB: ldarg.2
IL_0ABC: ldfld System.UInt32 NetSegment::m_lanes
IL_0AC1: stloc.s 32 (System.UInt32)
IL_0AC3: ldc.i4.0
IL_0AC4: stloc.s 65 (System.Int32)
IL_0AC6: br => Label95
IL_0ACB: Label98
IL_0ACB: ldloc.0
IL_0ACC: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0AD1: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0AD6: ldloc.s 32 (System.UInt32)
IL_0AD8: conv.u
IL_0AD9: ldelema NetLane
IL_0ADE: ldfld System.UInt16 NetLane::m_flags
IL_0AE3: ldc.i4.s -9
IL_0AE5: and
IL_0AE6: stloc.s 66 (NetLane+Flags)
IL_0AE8: ldloc.s 64 (System.Boolean)
IL_0AEA: brfalse => Label96
IL_0AEF: ldloc.s 66 (NetLane+Flags)
IL_0AF1: ldc.i4.8
IL_0AF2: or
IL_0AF3: stloc.s 66 (NetLane+Flags)
IL_0AF5: Label96
IL_0AF5: ldloc.0
IL_0AF6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0AFB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0B00: ldloc.s 32 (System.UInt32)
IL_0B02: conv.u
IL_0B03: ldelema NetLane
IL_0B08: ldloc.s 66 (NetLane+Flags)
IL_0B0A: conv.u2
IL_0B0B: stfld System.UInt16 NetLane::m_flags
IL_0B10: ldloc.0
IL_0B11: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0B16: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0B1B: ldloc.s 32 (System.UInt32)
IL_0B1D: conv.u
IL_0B1E: ldelema NetLane
IL_0B23: ldfld System.UInt32 NetLane::m_nextLane
IL_0B28: stloc.s 32 (System.UInt32)
IL_0B2A: ldloc.s 65 (System.Int32)
IL_0B2C: ldc.i4.1
IL_0B2D: add
IL_0B2E: stloc.s 65 (System.Int32)
IL_0B30: Label95
IL_0B30: ldloc.s 65 (System.Int32)
IL_0B32: ldarg.0
IL_0B33: ldfld NetInfo NetAI::m_info
IL_0B38: ldfld Lane[] NetInfo::m_lanes
IL_0B3D: ldlen
IL_0B3E: conv.i4
IL_0B3F: bge => Label97
IL_0B44: ldloc.s 32 (System.UInt32)
IL_0B46: brtrue => Label98
IL_0B4B: Label97
IL_0B4B: ldarg.3
IL_0B4C: brtrue => Label99
IL_0B51: ldarg.2
IL_0B52: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0B57: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0B5C: stloc.s 68 (UnityEngine.Vector3)
IL_0B5E: ldloca.s 68 (UnityEngine.Vector3)
IL_0B60: ldfld System.Single UnityEngine.Vector3::x
IL_0B65: ldc.r4 16
IL_0B6A: sub
IL_0B6B: ldc.r4 64
IL_0B70: div
IL_0B71: ldc.r4 135
IL_0B76: add
IL_0B77: conv.i4
IL_0B78: ldc.i4.0
IL_0B79: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0B7E: stloc.s 67 (System.Int32)
IL_0B80: ldarg.2
IL_0B81: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0B86: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0B8B: stloc.s 70 (UnityEngine.Vector3)
IL_0B8D: ldloca.s 70 (UnityEngine.Vector3)
IL_0B8F: ldfld System.Single UnityEngine.Vector3::z
IL_0B94: ldc.r4 16
IL_0B99: sub
IL_0B9A: ldc.r4 64
IL_0B9F: div
IL_0BA0: ldc.r4 135
IL_0BA5: add
IL_0BA6: conv.i4
IL_0BA7: ldc.i4.0
IL_0BA8: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0BAD: stloc.s 69 (System.Int32)
IL_0BAF: ldarg.2
IL_0BB0: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0BB5: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0BBA: stloc.s 72 (UnityEngine.Vector3)
IL_0BBC: ldloca.s 72 (UnityEngine.Vector3)
IL_0BBE: ldfld System.Single UnityEngine.Vector3::x
IL_0BC3: ldc.r4 16
IL_0BC8: add
IL_0BC9: ldc.r4 64
IL_0BCE: div
IL_0BCF: ldc.r4 135
IL_0BD4: add
IL_0BD5: conv.i4
IL_0BD6: ldc.i4 269
IL_0BDB: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0BE0: stloc.s 71 (System.Int32)
IL_0BE2: ldarg.2
IL_0BE3: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0BE8: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0BED: stloc.s 74 (UnityEngine.Vector3)
IL_0BEF: ldloca.s 74 (UnityEngine.Vector3)
IL_0BF1: ldfld System.Single UnityEngine.Vector3::z
IL_0BF6: ldc.r4 16
IL_0BFB: add
IL_0BFC: ldc.r4 64
IL_0C01: div
IL_0C02: ldc.r4 135
IL_0C07: add
IL_0C08: conv.i4
IL_0C09: ldc.i4 269
IL_0C0E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0C13: stloc.s 73 (System.Int32)
IL_0C15: ldloc.s 69 (System.Int32)
IL_0C17: stloc.s 75 (System.Int32)
IL_0C19: br => Label100
IL_0C1E: Label108
IL_0C1E: ldloc.s 67 (System.Int32)
IL_0C20: stloc.s 76 (System.Int32)
IL_0C22: br => Label101
IL_0C27: Label107
IL_0C27: ldloc.0
IL_0C28: ldfld System.UInt16[] NetManager::m_nodeGrid
IL_0C2D: ldloc.s 75 (System.Int32)
IL_0C2F: ldc.i4 270
IL_0C34: mul
IL_0C35: ldloc.s 76 (System.Int32)
IL_0C37: add
IL_0C38: ldelem.u2
IL_0C39: stloc.s 77 (System.UInt16)
IL_0C3B: ldc.i4.0
IL_0C3C: stloc.s 78 (System.Int32)
IL_0C3E: br => Label102
IL_0C43: Label106
IL_0C43: ldloc.0
IL_0C44: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0C49: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0C4E: ldloc.s 77 (System.UInt16)
IL_0C50: ldelema NetNode
IL_0C55: call NetInfo NetNode::get_Info()
IL_0C5A: stloc.s 79 (NetInfo)
IL_0C5C: ldloc.0
IL_0C5D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0C62: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0C67: ldloc.s 77 (System.UInt16)
IL_0C69: ldelema NetNode
IL_0C6E: ldfld UnityEngine.Vector3 NetNode::m_position
IL_0C73: stloc.s 80 (UnityEngine.Vector3)
IL_0C75: ldarg.2
IL_0C76: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0C7B: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0C80: stloc.s 82 (UnityEngine.Vector3)
IL_0C82: ldloca.s 82 (UnityEngine.Vector3)
IL_0C84: ldfld System.Single UnityEngine.Vector3::x
IL_0C89: ldc.r4 16
IL_0C8E: sub
IL_0C8F: ldloca.s 80 (UnityEngine.Vector3)
IL_0C91: ldfld System.Single UnityEngine.Vector3::x
IL_0C96: sub
IL_0C97: ldarg.2
IL_0C98: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0C9D: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0CA2: stloc.s 83 (UnityEngine.Vector3)
IL_0CA4: ldloca.s 83 (UnityEngine.Vector3)
IL_0CA6: ldfld System.Single UnityEngine.Vector3::z
IL_0CAB: ldc.r4 16
IL_0CB0: sub
IL_0CB1: ldloca.s 80 (UnityEngine.Vector3)
IL_0CB3: ldfld System.Single UnityEngine.Vector3::z
IL_0CB8: sub
IL_0CB9: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0CBE: ldloca.s 80 (UnityEngine.Vector3)
IL_0CC0: ldfld System.Single UnityEngine.Vector3::x
IL_0CC5: ldarg.2
IL_0CC6: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0CCB: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0CD0: stloc.s 84 (UnityEngine.Vector3)
IL_0CD2: ldloca.s 84 (UnityEngine.Vector3)
IL_0CD4: ldfld System.Single UnityEngine.Vector3::x
IL_0CD9: sub
IL_0CDA: ldc.r4 16
IL_0CDF: sub
IL_0CE0: ldloca.s 80 (UnityEngine.Vector3)
IL_0CE2: ldfld System.Single UnityEngine.Vector3::z
IL_0CE7: ldarg.2
IL_0CE8: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0CED: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0CF2: stloc.s 85 (UnityEngine.Vector3)
IL_0CF4: ldloca.s 85 (UnityEngine.Vector3)
IL_0CF6: ldfld System.Single UnityEngine.Vector3::z
IL_0CFB: sub
IL_0CFC: ldc.r4 16
IL_0D01: sub
IL_0D02: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0D07: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0D0C: stloc.s 81 (System.Single)
IL_0D0E: ldloc.s 81 (System.Single)
IL_0D10: ldc.r4 0
IL_0D15: bge.un => Label103
IL_0D1A: ldloc.s 79 (NetInfo)
IL_0D1C: ldfld NetAI NetInfo::m_netAI
IL_0D21: ldloc.s 77 (System.UInt16)
IL_0D23: ldloc.0
IL_0D24: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0D29: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0D2E: ldloc.s 77 (System.UInt16)
IL_0D30: ldelema NetNode
IL_0D35: callvirt virtual System.Void NetAI::NearbyLanesUpdated(System.UInt16
nodeID, NetNode& data)
IL_0D3A: Label103
IL_0D3A: ldloc.0
IL_0D3B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0D40: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0D45: ldloc.s 77 (System.UInt16)
IL_0D47: ldelema NetNode
IL_0D4C: ldfld System.UInt16 NetNode::m_nextGridNode
IL_0D51: stloc.s 77 (System.UInt16)
IL_0D53: ldloc.s 78 (System.Int32)
IL_0D55: ldc.i4.1
IL_0D56: add
IL_0D57: dup
IL_0D58: stloc.s 78 (System.Int32)
IL_0D5A: ldc.i4 32768
IL_0D5F: blt => Label104
IL_0D64: ldc.i4.1
IL_0D65: ldstr "Invalid list detected!\n"
IL_0D6A: call static System.String System.Environment::get_StackTrace()
IL_0D6F: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_0D74: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Error(LogChannel ll, System.String
msg)
IL_0D79: br => Label105
IL_0D7E: Label102
IL_0D7E: Label104
IL_0D7E: ldloc.s 77 (System.UInt16)
IL_0D80: brtrue => Label106
IL_0D85: Label105
IL_0D85: ldloc.s 76 (System.Int32)
IL_0D87: ldc.i4.1
IL_0D88: add
IL_0D89: stloc.s 76 (System.Int32)
IL_0D8B: Label101
IL_0D8B: ldloc.s 76 (System.Int32)
IL_0D8D: ldloc.s 71 (System.Int32)
IL_0D8F: ble => Label107
IL_0D94: ldloc.s 75 (System.Int32)
IL_0D96: ldc.i4.1
IL_0D97: add
IL_0D98: stloc.s 75 (System.Int32)
IL_0D9A: Label100
IL_0D9A: ldloc.s 75 (System.Int32)
IL_0D9C: ldloc.s 73 (System.Int32)
IL_0D9E: ble => Label108
IL_0DA3: ldarg.0
IL_0DA4: ldfld NetInfo NetAI::m_info
IL_0DA9: ldfld System.Boolean NetInfo::m_hasPedestrianLanes
IL_0DAE: brfalse => Label109
IL_0DB3: ldarg.0
IL_0DB4: ldfld NetInfo NetAI::m_info
IL_0DB9: ldfld System.Boolean NetInfo::m_hasForwardVehicleLanes
IL_0DBE: brtrue => Label110
IL_0DC3: ldarg.0
IL_0DC4: ldfld NetInfo NetAI::m_info
IL_0DC9: ldfld System.Boolean NetInfo::m_hasBackwardVehicleLanes
IL_0DCE: brfalse => Label111
IL_0DD3: Label110
IL_0DD3: ldarg.1
IL_0DD4: ldarg.2
IL_0DD5: call static System.Void RoadBaseAI::CheckBuildings(System.UInt16
segmentID, NetSegment& data)
IL_0DDA: // end original
IL_0DDA: Label99
IL_0DDA: Label109
IL_0DDA: Label111
IL_0DDA: 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_Patch0(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: // start original
IL_0000: ldarg.s 4
IL_0002: ldc.i4.2
IL_0003: shl
IL_0004: ldarg.3
IL_0005: or
IL_0006: stloc.0
IL_0007: ldarg.1
IL_0008: ldfld System.UInt16 NetSegment::m_startNode
IL_000D: ldarg.0
IL_000E: bne.un => Label0
IL_0013: ldarg.2
IL_0014: ldc.i4.8
IL_0015: shr.un
IL_0016: ldc.i4.1
IL_0017: and
IL_0018: brtrue => Label1
IL_001D: ldarg.1
IL_001E: ldarg.1
IL_001F: ldfld System.Byte NetSegment::m_trafficLightState0
IL_0024: ldc.i4 240
IL_0029: and
IL_002A: ldloc.0
IL_002B: or
IL_002C: conv.u1
IL_002D: stfld System.Byte NetSegment::m_trafficLightState0
IL_0032: br => Label2
IL_0037: Label1
IL_0037: ldarg.1
IL_0038: ldarg.1
IL_0039: ldfld System.Byte NetSegment::m_trafficLightState1
IL_003E: ldc.i4 240
IL_0043: and
IL_0044: ldloc.0
IL_0045: or
IL_0046: conv.u1
IL_0047: stfld System.Byte NetSegment::m_trafficLightState1
IL_004C: Label2
IL_004C: ldarg.s 5
IL_004E: brfalse => Label3
IL_0053: ldarg.1
IL_0054: dup
IL_0055: ldfld Flags NetSegment::m_flags
IL_005A: ldc.i4 4096
IL_005F: or
IL_0060: stfld Flags NetSegment::m_flags
IL_0065: br => Label4
IL_006A: Label3
IL_006A: ldarg.1
IL_006B: dup
IL_006C: ldfld Flags NetSegment::m_flags
IL_0071: ldc.i4 -4097
IL_0076: and
IL_0077: stfld Flags NetSegment::m_flags
IL_007C: Label4
IL_007C: ldarg.s 6
IL_007E: brfalse => Label5
IL_0083: ldarg.1
IL_0084: dup
IL_0085: ldfld Flags NetSegment::m_flags
IL_008A: ldc.i4 16384
IL_008F: or
IL_0090: stfld Flags NetSegment::m_flags
IL_0095: br => Label6
IL_009A: Label5
IL_009A: ldarg.1
IL_009B: dup
IL_009C: ldfld Flags NetSegment::m_flags
IL_00A1: ldc.i4 -16385
IL_00A6: and
IL_00A7: stfld Flags NetSegment::m_flags
IL_00AC: Label6
IL_00AC: br => Label7
IL_00B1: Label0
IL_00B1: ldarg.2
IL_00B2: ldc.i4.8
IL_00B3: shr.un
IL_00B4: ldc.i4.1
IL_00B5: and
IL_00B6: brtrue => Label8
IL_00BB: ldarg.1
IL_00BC: ldarg.1
IL_00BD: ldfld System.Byte NetSegment::m_trafficLightState0
IL_00C2: ldc.i4.s 15
IL_00C4: and
IL_00C5: ldloc.0
IL_00C6: ldc.i4.4
IL_00C7: shl
IL_00C8: or
IL_00C9: conv.u1
IL_00CA: stfld System.Byte NetSegment::m_trafficLightState0
IL_00CF: br => Label9
IL_00D4: Label8
IL_00D4: ldarg.1
IL_00D5: ldarg.1
IL_00D6: ldfld System.Byte NetSegment::m_trafficLightState1
IL_00DB: ldc.i4.s 15
IL_00DD: and
IL_00DE: ldloc.0
IL_00DF: ldc.i4.4
IL_00E0: shl
IL_00E1: or
IL_00E2: conv.u1
IL_00E3: stfld System.Byte NetSegment::m_trafficLightState1
IL_00E8: Label9
IL_00E8: ldarg.s 5
IL_00EA: brfalse => Label10
IL_00EF: ldarg.1
IL_00F0: dup
IL_00F1: ldfld Flags NetSegment::m_flags
IL_00F6: ldc.i4 8192
IL_00FB: or
IL_00FC: stfld Flags NetSegment::m_flags
IL_0101: br => Label11
IL_0106: Label10
IL_0106: ldarg.1
IL_0107: dup
IL_0108: ldfld Flags NetSegment::m_flags
IL_010D: ldc.i4 -8193
IL_0112: and
IL_0113: stfld Flags NetSegment::m_flags
IL_0118: Label11
IL_0118: ldarg.s 6
IL_011A: brfalse => Label12
IL_011F: ldarg.1
IL_0120: dup
IL_0121: ldfld Flags NetSegment::m_flags
IL_0126: ldc.i4 32768
IL_012B: or
IL_012C: stfld Flags NetSegment::m_flags
IL_0131: br => Label13
IL_0136: Label12
IL_0136: ldarg.1
IL_0137: dup
IL_0138: ldfld Flags NetSegment::m_flags
IL_013D: ldc.i4 -32769
IL_0142: and
IL_0143: stfld Flags NetSegment::m_flags
IL_0148: // end original
IL_0148: Label7
IL_0148: Label13
IL_0148: ret
DONE

### Patch: virtual System.Void RoadBaseAI::SimulationStep(System.UInt16 segmentID,


NetSegment& data)
### Replacement: static System.Void
RoadBaseAI::RoadBaseAI.SimulationStep_Patch0(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/Problem
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: // start original
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: ldarg.2
IL_0003: call virtual System.Void PlayerNetAI::SimulationStep(System.UInt16
segmentID, NetSegment& data)
IL_0008: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_000D: stloc.0
IL_000E: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0013: stloc.1
IL_0014: ldarg.2
IL_0015: ldfld Problem NetSegment::m_problems
IL_001A: ldc.i4 805306368
IL_001F: conv.i8
IL_0020: call static Problem Notification::RemoveProblems(Problem problems1,
Problem problems2)
IL_0025: stloc.2
IL_0026: ldarg.2
IL_0027: ldfld Flags NetSegment::m_flags
IL_002C: ldc.i4 2048
IL_0031: and
IL_0032: brfalse => Label0
IL_0037: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_003C: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0041: ldc.i4.s 16
IL_0043: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0048: brtrue => Label1
IL_004D: ldarg.2
IL_004E: dup
IL_004F: ldfld Flags NetSegment::m_flags
IL_0054: ldc.i4 -2049
IL_0059: and
IL_005A: stfld Flags NetSegment::m_flags
IL_005F: Label0
IL_005F: Label1
IL_005F: ldc.r4 0
IL_0064: stloc.3
IL_0065: ldarg.2
IL_0066: ldfld System.UInt32 NetSegment::m_lanes
IL_006B: stloc.s 4 (System.UInt32)
IL_006D: ldc.i4.0
IL_006E: stloc.s 5 (System.Int32)
IL_0070: br => Label2
IL_0075: Label6
IL_0075: ldarg.0
IL_0076: ldfld NetInfo NetAI::m_info
IL_007B: ldfld Lane[] NetInfo::m_lanes
IL_0080: ldloc.s 5 (System.Int32)
IL_0082: ldelem.ref
IL_0083: stloc.s 6 (NetInfo+Lane)
IL_0085: ldloc.s 6 (NetInfo+Lane)
IL_0087: ldfld LaneType Lane::m_laneType
IL_008C: ldc.i4.s 33
IL_008E: and
IL_008F: conv.u1
IL_0090: brfalse => Label3
IL_0095: ldloc.s 6 (NetInfo+Lane)
IL_0097: ldfld VehicleType Lane::m_vehicleType
IL_009C: ldc.i4.s -33
IL_009E: and
IL_009F: brfalse => Label4
IL_00A4: ldloc.3
IL_00A5: ldloc.1
IL_00A6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00AB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00B0: ldloc.s 4 (System.UInt32)
IL_00B2: conv.u
IL_00B3: ldelema NetLane
IL_00B8: ldfld System.Single NetLane::m_length
IL_00BD: add
IL_00BE: stloc.3
IL_00BF: Label3
IL_00BF: Label4
IL_00BF: ldloc.1
IL_00C0: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00C5: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00CA: ldloc.s 4 (System.UInt32)
IL_00CC: conv.u
IL_00CD: ldelema NetLane
IL_00D2: ldfld System.UInt32 NetLane::m_nextLane
IL_00D7: stloc.s 4 (System.UInt32)
IL_00D9: ldloc.s 5 (System.Int32)
IL_00DB: ldc.i4.1
IL_00DC: add
IL_00DD: stloc.s 5 (System.Int32)
IL_00DF: Label2
IL_00DF: ldloc.s 5 (System.Int32)
IL_00E1: ldarg.0
IL_00E2: ldfld NetInfo NetAI::m_info
IL_00E7: ldfld Lane[] NetInfo::m_lanes
IL_00EC: ldlen
IL_00ED: conv.i4
IL_00EE: bge => Label5
IL_00F3: ldloc.s 4 (System.UInt32)
IL_00F5: brtrue => Label6
IL_00FA: Label5
IL_00FA: ldc.i4.0
IL_00FB: stloc.s 7 (System.Int32)
IL_00FD: ldc.i4.0
IL_00FE: stloc.s 8 (System.Int32)
IL_0100: ldarg.2
IL_0101: ldfld System.UInt16 NetSegment::m_trafficBuffer
IL_0106: ldc.i4 65535
IL_010B: bne.un => Label7
IL_0110: ldarg.2
IL_0111: ldfld Flags NetSegment::m_flags
IL_0116: ldc.i4 2097152
IL_011B: and
IL_011C: brtrue => Label8
IL_0121: ldarg.2
IL_0122: dup
IL_0123: ldfld Flags NetSegment::m_flags
IL_0128: ldc.i4 2097152
IL_012D: or
IL_012E: stfld Flags NetSegment::m_flags
IL_0133: ldarg.2
IL_0134: ldloc.0
IL_0135: dup
IL_0136: ldfld System.UInt32 SimulationManager::m_currentBuildIndex
IL_013B: dup
IL_013C: stloc.s 9 (System.UInt32)
IL_013E: ldc.i4.1
IL_013F: add
IL_0140: stfld System.UInt32 SimulationManager::m_currentBuildIndex
IL_0145: ldloc.s 9 (System.UInt32)
IL_0147: stfld System.UInt32 NetSegment::m_modifiedIndex
IL_014C: Label8
IL_014C: br => Label9
IL_0151: Label7
IL_0151: ldarg.2
IL_0152: dup
IL_0153: ldfld Flags NetSegment::m_flags
IL_0158: ldc.i4 -2097153
IL_015D: and
IL_015E: stfld Flags NetSegment::m_flags
IL_0163: ldloc.3
IL_0164: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_0169: ldc.i4.4
IL_016A: shl
IL_016B: stloc.s 10 (System.Int32)
IL_016D: ldloc.s 10 (System.Int32)
IL_016F: brfalse => Label10
IL_0174: ldarg.2
IL_0175: ldfld System.UInt16 NetSegment::m_trafficBuffer
IL_017A: ldc.i4.s 100
IL_017C: mul
IL_017D: ldloc.s 10 (System.Int32)
IL_017F: div
IL_0180: ldc.i4.s 100
IL_0182: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0187: conv.u1
IL_0188: stloc.s 7 (System.Int32)
IL_018A: ldarg.2
IL_018B: ldfld System.UInt16 NetSegment::m_noiseBuffer
IL_0190: ldc.i4 250
IL_0195: mul
IL_0196: ldloc.s 10 (System.Int32)
IL_0198: div
IL_0199: ldc.i4.s 100
IL_019B: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01A0: conv.u1
IL_01A1: stloc.s 8 (System.Int32)
IL_01A3: Label9
IL_01A3: Label10
IL_01A3: ldarg.2
IL_01A4: ldc.i4.0
IL_01A5: stfld System.UInt16 NetSegment::m_trafficBuffer
IL_01AA: ldarg.2
IL_01AB: ldc.i4.0
IL_01AC: stfld System.UInt16 NetSegment::m_noiseBuffer
IL_01B1: ldloc.s 7 (System.Int32)
IL_01B3: ldarg.2
IL_01B4: ldfld System.Byte NetSegment::m_trafficDensity
IL_01B9: ble => Label11
IL_01BE: ldarg.2
IL_01BF: ldarg.2
IL_01C0: ldfld System.Byte NetSegment::m_trafficDensity
IL_01C5: ldc.i4.5
IL_01C6: add
IL_01C7: ldloc.s 7 (System.Int32)
IL_01C9: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01CE: conv.u1
IL_01CF: stfld System.Byte NetSegment::m_trafficDensity
IL_01D4: br => Label12
IL_01D9: Label11
IL_01D9: ldloc.s 7 (System.Int32)
IL_01DB: ldarg.2
IL_01DC: ldfld System.Byte NetSegment::m_trafficDensity
IL_01E1: bge => Label13
IL_01E6: ldarg.2
IL_01E7: ldarg.2
IL_01E8: ldfld System.Byte NetSegment::m_trafficDensity
IL_01ED: ldc.i4.5
IL_01EE: sub
IL_01EF: ldloc.s 7 (System.Int32)
IL_01F1: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_01F6: conv.u1
IL_01F7: stfld System.Byte NetSegment::m_trafficDensity
IL_01FC: Label12
IL_01FC: Label13
IL_01FC: ldloc.s 8 (System.Int32)
IL_01FE: ldarg.2
IL_01FF: ldfld System.Byte NetSegment::m_noiseDensity
IL_0204: ble => Label14
IL_0209: ldarg.2
IL_020A: ldarg.2
IL_020B: ldfld System.Byte NetSegment::m_noiseDensity
IL_0210: ldc.i4.2
IL_0211: add
IL_0212: ldloc.s 8 (System.Int32)
IL_0214: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0219: conv.u1
IL_021A: stfld System.Byte NetSegment::m_noiseDensity
IL_021F: br => Label15
IL_0224: Label14
IL_0224: ldloc.s 8 (System.Int32)
IL_0226: ldarg.2
IL_0227: ldfld System.Byte NetSegment::m_noiseDensity
IL_022C: bge => Label16
IL_0231: ldarg.2
IL_0232: ldarg.2
IL_0233: ldfld System.Byte NetSegment::m_noiseDensity
IL_0238: ldc.i4.2
IL_0239: sub
IL_023A: ldloc.s 8 (System.Int32)
IL_023C: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0241: conv.u1
IL_0242: stfld System.Byte NetSegment::m_noiseDensity
IL_0247: Label15
IL_0247: Label16
IL_0247: ldloc.1
IL_0248: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_024D: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0252: ldarg.2
IL_0253: ldfld System.UInt16 NetSegment::m_startNode
IL_0258: ldelema NetNode
IL_025D: ldfld UnityEngine.Vector3 NetNode::m_position
IL_0262: stloc.s 11 (UnityEngine.Vector3)
IL_0264: ldloc.1
IL_0265: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_026A: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_026F: ldarg.2
IL_0270: ldfld System.UInt16 NetSegment::m_endNode
IL_0275: ldelema NetNode
IL_027A: ldfld UnityEngine.Vector3 NetNode::m_position
IL_027F: stloc.s 12 (UnityEngine.Vector3)
IL_0281: ldloc.s 11 (UnityEngine.Vector3)
IL_0283: ldloc.s 12 (UnityEngine.Vector3)
IL_0285: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_028A: ldc.r4 0.5
IL_028F: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_0294: stloc.s 13 (UnityEngine.Vector3)
IL_0296: ldc.i4.0
IL_0297: stloc.s 14 (System.Boolean)
IL_0299: ldarg.0
IL_029A: ldfld NetInfo NetAI::m_info
IL_029F: ldfld Flags NetInfo::m_setVehicleFlags
IL_02A4: ldc.i4 268435456
IL_02A9: and
IL_02AA: brtrue => Label17
IL_02AF: call static TerrainManager
ColossalFramework.Singleton`1<TerrainManager>::get_instance()
IL_02B4: ldloc.s 13 (UnityEngine.Vector3)
IL_02B6: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_02BB: callvirt System.Single TerrainManager::WaterLevel(UnityEngine.Vector2
position)
IL_02C0: stloc.s 15 (System.Single)
IL_02C2: ldloc.s 15 (System.Single)
IL_02C4: ldloca.s 13 (UnityEngine.Vector3)
IL_02C6: ldfld System.Single UnityEngine.Vector3::y
IL_02CB: ldc.r4 1
IL_02D0: add
IL_02D1: ble.un => Label18
IL_02D6: ldloc.s 15 (System.Single)
IL_02D8: ldc.r4 0
IL_02DD: ble.un => Label19
IL_02E2: ldc.i4.1
IL_02E3: stloc.s 14 (System.Boolean)
IL_02E5: ldarg.2
IL_02E6: dup
IL_02E7: ldfld Flags NetSegment::m_flags
IL_02EC: ldc.i4 4194304
IL_02F1: or
IL_02F2: stfld Flags NetSegment::m_flags
IL_02F7: ldloc.2
IL_02F8: ldc.i8 4611686018695823360
IL_0301: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0306: stloc.2
IL_0307: ldarg.2
IL_0308: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_030D: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0312: stloc.s 16 (UnityEngine.Vector3)
IL_0314: ldarg.2
IL_0315: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_031A: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_031F: stloc.s 17 (UnityEngine.Vector3)
IL_0321: ldloca.s 16 (UnityEngine.Vector3)
IL_0323: ldfld System.Single UnityEngine.Vector3::x
IL_0328: ldloca.s 16 (UnityEngine.Vector3)
IL_032A: ldfld System.Single UnityEngine.Vector3::z
IL_032F: ldloca.s 17 (UnityEngine.Vector3)
IL_0331: ldfld System.Single UnityEngine.Vector3::x
IL_0336: ldloca.s 17 (UnityEngine.Vector3)
IL_0338: ldfld System.Single UnityEngine.Vector3::z
IL_033D: call static System.Void RoadBaseAI::FloodParkedCars(System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0342: br => Label20
IL_0347: Label18
IL_0347: Label19
IL_0347: ldarg.2
IL_0348: dup
IL_0349: ldfld Flags NetSegment::m_flags
IL_034E: ldc.i4 -4194305
IL_0353: and
IL_0354: stfld Flags NetSegment::m_flags
IL_0359: ldloc.s 15 (System.Single)
IL_035B: ldloca.s 13 (UnityEngine.Vector3)
IL_035D: ldfld System.Single UnityEngine.Vector3::y
IL_0362: ble.un => Label21
IL_0367: ldloc.s 15 (System.Single)
IL_0369: ldc.r4 0
IL_036E: ble.un => Label22
IL_0373: ldc.i4.1
IL_0374: stloc.s 14 (System.Boolean)
IL_0376: ldloc.2
IL_0377: ldc.i4 268435456
IL_037C: conv.i8
IL_037D: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0382: stloc.2
IL_0383: Label17
IL_0383: Label20
IL_0383: Label21
IL_0383: Label22
IL_0383: call static DistrictManager
ColossalFramework.Singleton`1<DistrictManager>::get_instance()
IL_0388: stloc.s 18 (DistrictManager)
IL_038A: ldloc.s 18 (DistrictManager)
IL_038C: ldloc.s 13 (UnityEngine.Vector3)
IL_038E: callvirt System.Byte DistrictManager::GetDistrict(UnityEngine.Vector3
worldPos)
IL_0393: stloc.s 19 (System.Byte)
IL_0395: ldloc.s 18 (DistrictManager)
IL_0397: ldfld Array8`1<District> DistrictManager::m_districts
IL_039C: ldfld District[] Array8`1<District>::m_buffer
IL_03A1: ldloc.s 19 (System.Byte)
IL_03A3: ldelema District
IL_03A8: ldfld CityPlanning District::m_cityPlanningPolicies
IL_03AD: stloc.s 20 (DistrictPolicies+CityPlanning)
IL_03AF: ldc.i4.s 100
IL_03B1: ldarg.2
IL_03B2: ldfld System.Byte NetSegment::m_noiseDensity
IL_03B7: ldc.i4.s 100
IL_03B9: sub
IL_03BA: ldarg.2
IL_03BB: ldfld System.Byte NetSegment::m_noiseDensity
IL_03C0: ldc.i4.s 100
IL_03C2: sub
IL_03C3: mul
IL_03C4: ldc.i4.s 100
IL_03C6: div
IL_03C7: sub
IL_03C8: stloc.s 21 (System.Int32)
IL_03CA: ldarg.0
IL_03CB: ldfld NetInfo NetAI::m_info
IL_03D0: ldfld VehicleType NetInfo::m_vehicleTypes
IL_03D5: ldc.i4.1
IL_03D6: and
IL_03D7: brfalse => Label23
IL_03DC: ldarg.0
IL_03DD: ldfld NetInfo NetAI::m_info
IL_03E2: ldfld Flags NetInfo::m_setVehicleFlags
IL_03E7: ldc.i4 268435456
IL_03EC: and
IL_03ED: brtrue => Label24
IL_03F2: ldloc.s 14 (System.Boolean)
IL_03F4: brfalse => Label25
IL_03F9: ldarg.2
IL_03FA: ldfld Flags NetSegment::m_flags
IL_03FF: ldc.i4 2099200
IL_0404: and
IL_0405: brtrue => Label26
IL_040A: ldloc.0
IL_040B: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0410: ldc.i4.s 10
IL_0412: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0417: brtrue => Label27
IL_041C: ldloca.s 22 (TransferManager+TransferOffer)
IL_041E: initobj TransferManager+TransferOffer
IL_0424: ldloca.s 22 (TransferManager+TransferOffer)
IL_0426: ldc.i4.4
IL_0427: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_042C: ldloca.s 22 (TransferManager+TransferOffer)
IL_042E: ldarg.1
IL_042F: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_0434: ldloca.s 22 (TransferManager+TransferOffer)
IL_0436: ldloc.s 13 (UnityEngine.Vector3)
IL_0438: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_043D: ldloca.s 22 (TransferManager+TransferOffer)
IL_043F: ldc.i4.1
IL_0440: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_0445: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_044A: ldc.i4.s 73
IL_044C: ldloc.s 22 (TransferManager+TransferOffer)
IL_044E: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason
material, TransferOffer offer)
IL_0453: Label25
IL_0453: Label26
IL_0453: Label27
IL_0453: ldarg.2
IL_0454: ldfld System.Byte NetSegment::m_wetness
IL_0459: stloc.s 23 (System.Int32)
IL_045B: ldloc.1
IL_045C: ldfld System.Boolean NetManager::m_treatWetAsSnow
IL_0461: brtrue => Label28
IL_0466: ldloc.s 14 (System.Boolean)
IL_0468: brfalse => Label29
IL_046D: ldc.i4 255
IL_0472: stloc.s 23 (System.Int32)
IL_0474: br => Label30
IL_0479: Label29
IL_0479: ldloc.s 23 (System.Int32)
IL_047B: ldc.i4.s 63
IL_047D: add
IL_047E: ldc.i4.5
IL_047F: shr
IL_0480: neg
IL_0481: stloc.s 24 (System.Int32)
IL_0483: call static WeatherManager
ColossalFramework.Singleton`1<WeatherManager>::get_instance()
IL_0488: ldloc.s 13 (UnityEngine.Vector3)
IL_048A: ldc.i4.0
IL_048B: callvirt System.Single
WeatherManager::SampleRainIntensity(UnityEngine.Vector3 pos, System.Boolean
ignoreWeather)
IL_0490: stloc.s 25 (System.Single)
IL_0492: ldloc.s 25 (System.Single)
IL_0494: ldc.r4 0
IL_0499: beq => Label31
IL_049E: ldloc.s 25 (System.Single)
IL_04A0: ldc.r4 4000
IL_04A5: mul
IL_04A6: ldc.r4 1000
IL_04AB: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_04B0: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_04B5: stloc.s 26 (System.Int32)
IL_04B7: ldloc.s 24 (System.Int32)
IL_04B9: ldloc.0
IL_04BA: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_04BF: ldloc.s 26 (System.Int32)
IL_04C1: ldloc.s 26 (System.Int32)
IL_04C3: ldc.i4.s 99
IL_04C5: add
IL_04C6: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_04CB: ldc.i4.s 100
IL_04CD: div
IL_04CE: add
IL_04CF: stloc.s 24 (System.Int32)
IL_04D1: Label31
IL_04D1: ldloc.s 23 (System.Int32)
IL_04D3: ldloc.s 24 (System.Int32)
IL_04D5: add
IL_04D6: ldc.i4.0
IL_04D7: ldc.i4 255
IL_04DC: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_04E1: stloc.s 23 (System.Int32)
IL_04E3: Label30
IL_04E3: br => Label32
IL_04E8: Label28
IL_04E8: ldarg.0
IL_04E9: ldfld System.Boolean RoadBaseAI::m_accumulateSnow
IL_04EE: brfalse => Label33
IL_04F3: ldloc.s 14 (System.Boolean)
IL_04F5: brfalse => Label34
IL_04FA: ldc.i4 128
IL_04FF: stloc.s 23 (System.Int32)
IL_0501: br => Label35
IL_0506: Label34
IL_0506: call static WeatherManager
ColossalFramework.Singleton`1<WeatherManager>::get_instance()
IL_050B: ldloc.s 13 (UnityEngine.Vector3)
IL_050D: ldc.i4.0
IL_050E: callvirt System.Single
WeatherManager::SampleRainIntensity(UnityEngine.Vector3 pos, System.Boolean
ignoreWeather)
IL_0513: stloc.s 27 (System.Single)
IL_0515: ldloc.s 27 (System.Single)
IL_0517: ldc.r4 0
IL_051C: beq => Label36
IL_0521: ldloc.s 27 (System.Single)
IL_0523: ldc.r4 400
IL_0528: mul
IL_0529: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_052E: stloc.s 28 (System.Int32)
IL_0530: ldloc.0
IL_0531: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0536: ldloc.s 28 (System.Int32)
IL_0538: ldloc.s 28 (System.Int32)
IL_053A: ldc.i4.s 99
IL_053C: add
IL_053D: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_0542: ldc.i4.s 100
IL_0544: div
IL_0545: stloc.s 29 (System.Int32)
IL_0547: call static UnlockManager
ColossalFramework.Singleton`1<UnlockManager>::get_instance()
IL_054C: ldc.i4.s 24
IL_054E: callvirt System.Boolean UnlockManager::Unlocked(Feature feature)
IL_0553: brfalse => Label37
IL_0558: ldloc.s 23 (System.Int32)
IL_055A: ldloc.s 29 (System.Int32)
IL_055C: add
IL_055D: ldc.i4 255
IL_0562: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0567: stloc.s 23 (System.Int32)
IL_0569: br => Label38
IL_056E: Label37
IL_056E: ldloc.s 23 (System.Int32)
IL_0570: ldloc.s 29 (System.Int32)
IL_0572: add
IL_0573: ldc.i4 128
IL_0578: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_057D: stloc.s 23 (System.Int32)
IL_057F: Label38
IL_057F: br => Label39
IL_0584: Label36
IL_0584: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0589: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_058E: ldc.i4.4
IL_058F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0594: brtrue => Label40
IL_0599: ldloc.s 23 (System.Int32)
IL_059B: ldc.i4.1
IL_059C: sub
IL_059D: ldc.i4.0
IL_059E: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_05A3: stloc.s 23 (System.Int32)
IL_05A5: Label39
IL_05A5: Label40
IL_05A5: ldloc.s 23 (System.Int32)
IL_05A7: ldc.i4.s 64
IL_05A9: blt => Label41
IL_05AE: ldarg.2
IL_05AF: ldfld Flags NetSegment::m_flags
IL_05B4: ldc.i4 6293504
IL_05B9: and
IL_05BA: brtrue => Label42
IL_05BF: ldloc.0
IL_05C0: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_05C5: ldc.i4.s 10
IL_05C7: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_05CC: brtrue => Label43
IL_05D1: ldloca.s 30 (TransferManager+TransferOffer)
IL_05D3: initobj TransferManager+TransferOffer
IL_05D9: ldloca.s 30 (TransferManager+TransferOffer)
IL_05DB: ldloc.s 23 (System.Int32)
IL_05DD: ldc.i4.s 50
IL_05DF: div
IL_05E0: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_05E5: ldloca.s 30 (TransferManager+TransferOffer)
IL_05E7: ldarg.1
IL_05E8: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_05ED: ldloca.s 30 (TransferManager+TransferOffer)
IL_05EF: ldloc.s 13 (UnityEngine.Vector3)
IL_05F1: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_05F6: ldloca.s 30 (TransferManager+TransferOffer)
IL_05F8: ldc.i4.1
IL_05F9: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_05FE: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_0603: ldc.i4.s 64
IL_0605: ldloc.s 30 (TransferManager+TransferOffer)
IL_0607: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason
material, TransferOffer offer)
IL_060C: Label41
IL_060C: Label42
IL_060C: Label43
IL_060C: ldloc.s 23 (System.Int32)
IL_060E: ldc.i4 192
IL_0613: blt => Label44
IL_0618: ldloc.2
IL_0619: ldc.i4 536870912
IL_061E: conv.i8
IL_061F: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0624: stloc.2
IL_0625: Label44
IL_0625: ldloc.s 18 (DistrictManager)
IL_0627: ldfld Array8`1<District> DistrictManager::m_districts
IL_062C: ldfld District[] Array8`1<District>::m_buffer
IL_0631: ldloc.s 19 (System.Byte)
IL_0633: ldelema District
IL_0638: ldflda DistrictProductionData District::m_productionData
IL_063D: dup
IL_063E: ldfld System.UInt32 DistrictProductionData::m_tempSnowCover
IL_0643: ldloc.s 23 (System.Int32)
IL_0645: add
IL_0646: stfld System.UInt32 DistrictProductionData::m_tempSnowCover
IL_064B: Label32
IL_064B: Label33
IL_064B: Label35
IL_064B: ldloc.s 23 (System.Int32)
IL_064D: ldarg.2
IL_064E: ldfld System.Byte NetSegment::m_wetness
IL_0653: beq => Label45
IL_0658: ldarg.2
IL_0659: ldfld System.Byte NetSegment::m_wetness
IL_065E: ldloc.s 23 (System.Int32)
IL_0660: sub
IL_0661: call static System.Int32 UnityEngine.Mathf::Abs(System.Int32 value)
IL_0666: ldc.i4.s 10
IL_0668: ble => Label46
IL_066D: ldarg.2
IL_066E: ldloc.s 23 (System.Int32)
IL_0670: conv.u1
IL_0671: stfld System.Byte NetSegment::m_wetness
IL_0676: ldsfld InstanceID InstanceID::Empty
IL_067B: stloc.s 31 (InstanceID)
IL_067D: ldloca.s 31 (InstanceID)
IL_067F: ldarg.1
IL_0680: call System.Void InstanceID::set_NetSegment(System.UInt16 value)
IL_0685: ldloc.1
IL_0686: ldloc.s 31 (InstanceID)
IL_0688: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_068D: ldloca.s 31 (InstanceID)
IL_068F: ldarg.2
IL_0690: ldfld System.UInt16 NetSegment::m_startNode
IL_0695: call System.Void InstanceID::set_NetNode(System.UInt16 value)
IL_069A: ldloc.1
IL_069B: ldloc.s 31 (InstanceID)
IL_069D: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06A2: ldloca.s 31 (InstanceID)
IL_06A4: ldarg.2
IL_06A5: ldfld System.UInt16 NetSegment::m_endNode
IL_06AA: call System.Void InstanceID::set_NetNode(System.UInt16 value)
IL_06AF: ldloc.1
IL_06B0: ldloc.s 31 (InstanceID)
IL_06B2: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06B7: br => Label47
IL_06BC: Label46
IL_06BC: ldarg.2
IL_06BD: ldloc.s 23 (System.Int32)
IL_06BF: conv.u1
IL_06C0: stfld System.Byte NetSegment::m_wetness
IL_06C5: ldloc.1
IL_06C6: ldc.i4 256
IL_06CB: stfld System.Int32 NetManager::m_wetnessChanged
IL_06D0: Label24
IL_06D0: Label45
IL_06D0: Label47
IL_06D0: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_06D2: ldc.i4 1024
IL_06D7: and
IL_06D8: brfalse => Label48
IL_06DD: ldloc.s 21 (System.Int32)
IL_06DF: ldc.i4.3
IL_06E0: mul
IL_06E1: ldc.i4.1
IL_06E2: add
IL_06E3: ldc.i4.1
IL_06E4: shr
IL_06E5: stloc.s 21 (System.Int32)
IL_06E7: ldc.i4 700
IL_06EC: ldc.i4.s 50
IL_06EE: ldarg.2
IL_06EF: ldfld System.Byte NetSegment::m_trafficDensity
IL_06F4: ldc.i4.6
IL_06F5: mul
IL_06F6: add
IL_06F7: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_06FC: stloc.s 32 (System.Int32)
IL_06FE: br => Label49
IL_0703: Label48
IL_0703: ldc.i4 500
IL_0708: ldc.i4.s 50
IL_070A: ldarg.2
IL_070B: ldfld System.Byte NetSegment::m_trafficDensity
IL_0710: ldc.i4.4
IL_0711: mul
IL_0712: add
IL_0713: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0718: stloc.s 32 (System.Int32)
IL_071A: Label49
IL_071A: ldarg.0
IL_071B: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_0720: brtrue => Label50
IL_0725: ldloc.0
IL_0726: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_072B: ldloc.s 32 (System.Int32)
IL_072D: ldloc.s 32 (System.Int32)
IL_072F: ldc.i4.s 99
IL_0731: add
IL_0732: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_0737: ldc.i4.s 100
IL_0739: div
IL_073A: stloc.s 33 (System.Int32)
IL_073C: ldarg.2
IL_073D: ldarg.2
IL_073E: ldfld System.Byte NetSegment::m_condition
IL_0743: ldloc.s 33 (System.Int32)
IL_0745: sub
IL_0746: ldc.i4.0
IL_0747: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_074C: conv.u1
IL_074D: stfld System.Byte NetSegment::m_condition
IL_0752: ldarg.2
IL_0753: ldfld System.Byte NetSegment::m_condition
IL_0758: ldc.i4 192
IL_075D: bge => Label51
IL_0762: ldarg.2
IL_0763: ldfld Flags NetSegment::m_flags
IL_0768: ldc.i4 6293504
IL_076D: and
IL_076E: brtrue => Label52
IL_0773: ldloc.0
IL_0774: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0779: ldc.i4.s 20
IL_077B: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0780: brtrue => Label53
IL_0785: ldloca.s 34 (TransferManager+TransferOffer)
IL_0787: initobj TransferManager+TransferOffer
IL_078D: ldloca.s 34 (TransferManager+TransferOffer)
IL_078F: ldc.i4 255
IL_0794: ldarg.2
IL_0795: ldfld System.Byte NetSegment::m_condition
IL_079A: sub
IL_079B: ldc.i4.s 50
IL_079D: div
IL_079E: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_07A3: ldloca.s 34 (TransferManager+TransferOffer)
IL_07A5: ldarg.1
IL_07A6: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_07AB: ldloca.s 34 (TransferManager+TransferOffer)
IL_07AD: ldloc.s 13 (UnityEngine.Vector3)
IL_07AF: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_07B4: ldloca.s 34 (TransferManager+TransferOffer)
IL_07B6: ldc.i4.1
IL_07B7: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_07BC: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_07C1: ldc.i4.s 66
IL_07C3: ldloc.s 34 (TransferManager+TransferOffer)
IL_07C5: callvirt System.Void TransferManager::AddIncomingOffer(TransferReason
material, TransferOffer offer)
IL_07CA: Label23
IL_07CA: Label50
IL_07CA: Label51
IL_07CA: Label52
IL_07CA: Label53
IL_07CA: ldarg.0
IL_07CB: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_07D0: brtrue => Label54
IL_07D5: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_07D7: ldc.i4.s 32
IL_07D9: and
IL_07DA: brfalse => Label55
IL_07DF: ldarg.2
IL_07E0: dup
IL_07E1: ldfld Flags NetSegment::m_flags
IL_07E6: ldc.i4 1048576
IL_07EB: or
IL_07EC: stfld Flags NetSegment::m_flags
IL_07F1: br => Label56
IL_07F6: Label55
IL_07F6: ldarg.2
IL_07F7: dup
IL_07F8: ldfld Flags NetSegment::m_flags
IL_07FD: ldc.i4 -1048577
IL_0802: and
IL_0803: stfld Flags NetSegment::m_flags
IL_0808: Label56
IL_0808: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_080A: ldc.i4 128
IL_080F: and
IL_0810: brfalse => Label57
IL_0815: ldarg.2
IL_0816: dup
IL_0817: ldfld Flags NetSegment::m_flags
IL_081C: ldc.i4 8388608
IL_0821: or
IL_0822: stfld Flags NetSegment::m_flags
IL_0827: br => Label58
IL_082C: Label57
IL_082C: ldarg.2
IL_082D: dup
IL_082E: ldfld Flags NetSegment::m_flags
IL_0833: ldc.i4 -8388609
IL_0838: and
IL_0839: stfld Flags NetSegment::m_flags
IL_083E: Label58
IL_083E: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_0840: ldc.i4 512
IL_0845: and
IL_0846: brfalse => Label59
IL_084B: ldarg.2
IL_084C: dup
IL_084D: ldfld Flags NetSegment::m_flags
IL_0852: ldc.i4 16777216
IL_0857: or
IL_0858: stfld Flags NetSegment::m_flags
IL_085D: br => Label60
IL_0862: Label59
IL_0862: ldarg.2
IL_0863: dup
IL_0864: ldfld Flags NetSegment::m_flags
IL_0869: ldc.i4 -16777217
IL_086E: and
IL_086F: stfld Flags NetSegment::m_flags
IL_0874: Label60
IL_0874: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_0876: ldc.i4 65536
IL_087B: and
IL_087C: brfalse => Label61
IL_0881: ldarg.2
IL_0882: dup
IL_0883: ldfld Flags NetSegment::m_flags
IL_0888: ldc.i4 256
IL_088D: or
IL_088E: stfld Flags NetSegment::m_flags
IL_0893: br => Label62
IL_0898: Label61
IL_0898: ldarg.2
IL_0899: dup
IL_089A: ldfld Flags NetSegment::m_flags
IL_089F: ldc.i4 -257
IL_08A4: and
IL_08A5: stfld Flags NetSegment::m_flags
IL_08AA: Label54
IL_08AA: Label62
IL_08AA: ldarg.0
IL_08AB: ldfld System.Int32 RoadBaseAI::m_noiseAccumulation
IL_08B0: ldloc.s 21 (System.Int32)
IL_08B2: mul
IL_08B3: ldc.i4.s 100
IL_08B5: div
IL_08B6: stloc.s 35 (System.Int32)
IL_08B8: ldloc.s 35 (System.Int32)
IL_08BA: brfalse => Label63
IL_08BF: ldloc.s 11 (UnityEngine.Vector3)
IL_08C1: ldloc.s 12 (UnityEngine.Vector3)
IL_08C3: call static System.Single
UnityEngine.Vector3::Distance(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_08C8: stloc.s 36 (System.Single)
IL_08CA: ldloc.s 36 (System.Single)
IL_08CC: ldarg.0
IL_08CD: ldfld System.Single RoadBaseAI::m_noiseRadius
IL_08D2: div
IL_08D3: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single
f)
IL_08D8: stloc.s 37 (System.Int32)
IL_08DA: ldc.i4.0
IL_08DB: stloc.s 38 (System.Int32)
IL_08DD: br => Label64
IL_08E2: Label65
IL_08E2: ldloc.s 11 (UnityEngine.Vector3)
IL_08E4: ldloc.s 12 (UnityEngine.Vector3)
IL_08E6: ldloc.s 38 (System.Int32)
IL_08E8: ldc.i4.1
IL_08E9: add
IL_08EA: conv.r4
IL_08EB: ldloc.s 37 (System.Int32)
IL_08ED: ldc.i4.1
IL_08EE: add
IL_08EF: conv.r4
IL_08F0: div
IL_08F1: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_08F6: stloc.s 39 (UnityEngine.Vector3)
IL_08F8: call static ImmaterialResourceManager
ColossalFramework.Singleton`1<ImmaterialResourceManager>::get_instance()
IL_08FD: ldc.i4.8
IL_08FE: ldloc.s 35 (System.Int32)
IL_0900: ldloc.s 39 (UnityEngine.Vector3)
IL_0902: ldarg.0
IL_0903: ldfld System.Single RoadBaseAI::m_noiseRadius
IL_0908: callvirt System.Int32 ImmaterialResourceManager::AddResource(Resource
resource, System.Int32 rate, UnityEngine.Vector3 position, System.Single radius)
IL_090D: pop
IL_090E: ldloc.s 38 (System.Int32)
IL_0910: ldc.i4.1
IL_0911: add
IL_0912: stloc.s 38 (System.Int32)
IL_0914: Label64
IL_0914: ldloc.s 38 (System.Int32)
IL_0916: ldloc.s 37 (System.Int32)
IL_0918: blt => Label65
IL_091D: Label63
IL_091D: ldarg.2
IL_091E: ldfld System.Byte NetSegment::m_trafficDensity
IL_0923: ldc.i4.s 50
IL_0925: blt => Label66
IL_092A: ldarg.2
IL_092B: ldfld System.Single NetSegment::m_averageLength
IL_0930: ldc.r4 25
IL_0935: bge.un => Label67
IL_093A: ldloc.1
IL_093B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0940: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0945: ldarg.2
IL_0946: ldfld System.UInt16 NetSegment::m_startNode
IL_094B: ldelema NetNode
IL_0950: ldfld Flags NetNode::m_flags
IL_0955: ldc.i4 10485760
IL_095A: and
IL_095B: ldc.i4 8388608
IL_0960: bne.un => Label68
IL_0965: ldloc.1
IL_0966: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_096B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0970: ldarg.2
IL_0971: ldfld System.UInt16 NetSegment::m_endNode
IL_0976: ldelema NetNode
IL_097B: ldfld Flags NetNode::m_flags
IL_0980: ldc.i4 10485760
IL_0985: and
IL_0986: ldc.i4 8388608
IL_098B: bne.un => Label69
IL_0990: call static GuideManager
ColossalFramework.Singleton`1<GuideManager>::get_instance()
IL_0995: ldfld GuideController SimulationManagerBase`2<GuideManager,
GuideController>::m_properties
IL_099A: stloc.s 40 (GuideController)
IL_099C: ldloc.s 40 (GuideController)
IL_099E: brfalse => Label70
IL_09A3: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_09A8: ldfld NetSegmentInstanceGuide NetManager::m_shortRoadTraffic
IL_09AD: ldloc.s 40 (GuideController)
IL_09AF: ldfld GuideInfo GuideController::m_shortRoadTraffic
IL_09B4: ldarg.1
IL_09B5: ldc.i4.0
IL_09B6: callvirt System.Void NetSegmentInstanceGuide::Activate(GuideInfo
guideInfo, System.UInt16 segmentID, System.Boolean ignoreID)
IL_09BB: Label66
IL_09BB: Label67
IL_09BB: Label68
IL_09BB: Label69
IL_09BB: Label70
IL_09BB: ldarg.2
IL_09BC: ldfld Flags NetSegment::m_flags
IL_09C1: ldc.i4.8
IL_09C2: and
IL_09C3: brfalse => Label71
IL_09C8: call static GuideManager
ColossalFramework.Singleton`1<GuideManager>::get_instance()
IL_09CD: ldfld GuideController SimulationManagerBase`2<GuideManager,
GuideController>::m_properties
IL_09D2: stloc.s 41 (GuideController)
IL_09D4: ldloc.s 41 (GuideController)
IL_09D6: brfalse => Label72
IL_09DB: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_09E0: ldfld NetSegmentInstanceGuide NetManager::m_roadDestroyed
IL_09E5: ldloc.s 41 (GuideController)
IL_09E7: ldfld GuideInfo GuideController::m_roadDestroyed
IL_09EC: ldarg.1
IL_09ED: ldc.i4.0
IL_09EE: callvirt System.Void NetSegmentInstanceGuide::Activate(GuideInfo
guideInfo, System.UInt16 segmentID, System.Boolean ignoreID)
IL_09F3: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_09F8: ldfld ServiceTypeGuide NetManager::m_roadDestroyed2
IL_09FD: ldloc.s 41 (GuideController)
IL_09FF: ldfld GuideInfo GuideController::m_roadDestroyed2
IL_0A04: ldarg.0
IL_0A05: ldfld NetInfo NetAI::m_info
IL_0A0A: ldfld ItemClass NetInfo::m_class
IL_0A0F: ldfld Service ItemClass::m_service
IL_0A14: callvirt System.Void ServiceTypeGuide::Activate(GuideInfo guideInfo,
Service service)
IL_0A19: Label72
IL_0A19: ldloc.0
IL_0A1A: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0A1F: ldc.i4.8
IL_0A20: shr.un
IL_0A21: ldc.i4.s 15
IL_0A23: and
IL_0A24: conv.u8
IL_0A25: ldarg.1
IL_0A26: ldc.i4.s 15
IL_0A28: and
IL_0A29: conv.i8
IL_0A2A: bne.un => Label73
IL_0A2F: ldarg.2
IL_0A30: ldfld System.Single NetSegment::m_averageLength
IL_0A35: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_0A3A: stloc.s 42 (System.Int32)
IL_0A3C: call static StatisticsManager
ColossalFramework.Singleton`1<StatisticsManager>::get_instance()
IL_0A41: ldc.i4.s 53
IL_0A43: callvirt StatisticBase StatisticsManager::Acquire(StatisticType type)
IL_0A48: stloc.s 43 (StatisticBase)
IL_0A4A: ldloc.s 43 (StatisticBase)
IL_0A4C: ldloc.s 42 (System.Int32)
IL_0A4E: callvirt abstract virtual System.Void StatisticBase::Add(System.Int32
delta)
IL_0A53: Label71
IL_0A53: Label73
IL_0A53: ldarg.2
IL_0A54: ldloc.2
IL_0A55: stfld Problem NetSegment::m_problems
IL_0A5A: // end original
IL_0A5A: ret
DONE

### Patch: static System.Void


TrainTrackBaseAI::LevelCrossingSimulationStep(System.UInt16 nodeID, NetNode& data)
### Replacement: static System.Void
TrainTrackBaseAI::TrainTrackBaseAI.LevelCrossingSimulationStep_Patch0(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: // start original
IL_0000: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0005: stloc.0
IL_0006: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_000B: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldc.i4.0
IL_0014: stloc.3
IL_0015: ldc.i4.0
IL_0016: stloc.s 4 (System.Int32)
IL_0018: br => Label0
IL_001D: Label12
IL_001D: ldarg.1
IL_001E: ldloc.s 4 (System.Int32)
IL_0020: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0025: stloc.s 5 (System.UInt16)
IL_0027: ldloc.s 5 (System.UInt16)
IL_0029: brfalse => Label1
IL_002E: ldloc.0
IL_002F: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0034: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0039: ldloc.s 5 (System.UInt16)
IL_003B: ldelema NetSegment
IL_0040: call NetInfo NetSegment::get_Info()
IL_0045: stloc.s 6 (NetInfo)
IL_0047: ldloc.s 6 (NetInfo)
IL_0049: ldfld ItemClass NetInfo::m_class
IL_004E: ldfld Service ItemClass::m_service
IL_0053: ldc.i4.s 9
IL_0055: beq => Label2
IL_005A: ldloc.s 6 (NetInfo)
IL_005C: ldfld Lane[] NetInfo::m_lanes
IL_0061: brfalse => Label3
IL_0066: ldloc.0
IL_0067: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_006C: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0071: ldloc.s 5 (System.UInt16)
IL_0073: ldelema NetSegment
IL_0078: ldfld System.UInt16 NetSegment::m_startNode
IL_007D: ldarg.0
IL_007E: ceq
IL_0080: stloc.s 7 (System.Boolean)
IL_0082: ldloc.0
IL_0083: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0088: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_008D: ldloc.s 5 (System.UInt16)
IL_008F: ldelema NetSegment
IL_0094: ldfld System.UInt32 NetSegment::m_lanes
IL_0099: stloc.s 8 (System.UInt32)
IL_009B: ldc.i4.0
IL_009C: stloc.s 9 (System.Int32)
IL_009E: br => Label4
IL_00A3: Label10
IL_00A3: ldloc.s 6 (NetInfo)
IL_00A5: ldfld Lane[] NetInfo::m_lanes
IL_00AA: ldloc.s 9 (System.Int32)
IL_00AC: ldelem.ref
IL_00AD: ldfld LaneType Lane::m_laneType
IL_00B2: ldc.i4.1
IL_00B3: bne.un => Label5
IL_00B8: ldloc.0
IL_00B9: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00BE: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00C3: ldloc.s 8 (System.UInt32)
IL_00C5: conv.u
IL_00C6: ldelema NetLane
IL_00CB: ldloc.s 7 (System.Boolean)
IL_00CD: brfalse => Label6
IL_00D2: ldc.r4 0
IL_00D7: br => Label7
IL_00DC: Label6
IL_00DC: ldc.r4 1
IL_00E1: Label7
IL_00E1: call UnityEngine.Vector3 NetLane::CalculatePosition(System.Single
laneOffset)
IL_00E6: stloc.s 10 (UnityEngine.Vector3)
IL_00E8: ldloc.s 10 (UnityEngine.Vector3)
IL_00EA: call static System.Boolean
TrainTrackBaseAI::CheckOverlap(UnityEngine.Vector3 pos)
IL_00EF: brfalse => Label8
IL_00F4: ldc.i4.1
IL_00F5: stloc.2
IL_00F6: Label5
IL_00F6: Label8
IL_00F6: ldloc.0
IL_00F7: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00FC: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0101: ldloc.s 8 (System.UInt32)
IL_0103: conv.u
IL_0104: ldelema NetLane
IL_0109: ldfld System.UInt32 NetLane::m_nextLane
IL_010E: stloc.s 8 (System.UInt32)
IL_0110: ldloc.s 9 (System.Int32)
IL_0112: ldc.i4.1
IL_0113: add
IL_0114: stloc.s 9 (System.Int32)
IL_0116: Label4
IL_0116: ldloc.s 9 (System.Int32)
IL_0118: ldloc.s 6 (NetInfo)
IL_011A: ldfld Lane[] NetInfo::m_lanes
IL_011F: ldlen
IL_0120: conv.i4
IL_0121: bge => Label9
IL_0126: ldloc.s 8 (System.UInt32)
IL_0128: brtrue => Label10
IL_012D: Label3
IL_012D: Label9
IL_012D: ldarg.0
IL_012E: ldloc.0
IL_012F: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0134: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0139: ldloc.s 5 (System.UInt16)
IL_013B: ldelema NetSegment
IL_0140: ldloc.1
IL_0141: ldc.i4 256
IL_0146: sub
IL_0147: ldloca.s 11 (RoadBaseAI+TrafficLightState)
IL_0149: ldloca.s 12 (RoadBaseAI+TrafficLightState)
IL_014B: ldloca.s 13 (System.Boolean)
IL_014D: ldloca.s 14 (System.Boolean)
IL_014F: 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_0154: ldloc.s 13 (System.Boolean)
IL_0156: brfalse => Label11
IL_015B: ldc.i4.1
IL_015C: stloc.2
IL_015D: Label1
IL_015D: Label2
IL_015D: Label11
IL_015D: ldloc.s 4 (System.Int32)
IL_015F: ldc.i4.1
IL_0160: add
IL_0161: stloc.s 4 (System.Int32)
IL_0163: Label0
IL_0163: ldloc.s 4 (System.Int32)
IL_0165: ldc.i4.8
IL_0166: blt => Label12
IL_016B: ldloc.2
IL_016C: stloc.3
IL_016D: ldc.i4.0
IL_016E: stloc.s 15 (System.Int32)
IL_0170: br => Label13
IL_0175: Label27
IL_0175: ldarg.1
IL_0176: ldloc.s 15 (System.Int32)
IL_0178: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_017D: stloc.s 16 (System.UInt16)
IL_017F: ldloc.s 16 (System.UInt16)
IL_0181: brfalse => Label14
IL_0186: ldloc.0
IL_0187: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_018C: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0191: ldloc.s 16 (System.UInt16)
IL_0193: ldelema NetSegment
IL_0198: call NetInfo NetSegment::get_Info()
IL_019D: stloc.s 17 (NetInfo)
IL_019F: ldarg.0
IL_01A0: ldloc.0
IL_01A1: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01A6: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01AB: ldloc.s 16 (System.UInt16)
IL_01AD: ldelema NetSegment
IL_01B2: ldloc.1
IL_01B3: ldc.i4 256
IL_01B8: sub
IL_01B9: ldloca.s 18 (RoadBaseAI+TrafficLightState)
IL_01BB: ldloca.s 19 (RoadBaseAI+TrafficLightState)
IL_01BD: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_01C2: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01C4: ldc.i4.s -2
IL_01C6: and
IL_01C7: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01C9: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_01CB: ldc.i4.s -2
IL_01CD: and
IL_01CE: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_01D0: ldloc.s 17 (NetInfo)
IL_01D2: ldfld ItemClass NetInfo::m_class
IL_01D7: ldfld Service ItemClass::m_service
IL_01DC: ldc.i4.s 9
IL_01DE: bne.un => Label15
IL_01E3: ldloc.3
IL_01E4: brfalse => Label16
IL_01E9: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01EB: ldc.i4.2
IL_01EC: and
IL_01ED: brtrue => Label17
IL_01F2: ldc.i4.3
IL_01F3: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01F5: Label17
IL_01F5: br => Label18
IL_01FA: Label16
IL_01FA: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01FC: ldc.i4.2
IL_01FD: and
IL_01FE: brfalse => Label19
IL_0203: ldc.i4.1
IL_0204: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0206: Label18
IL_0206: Label19
IL_0206: ldc.i4.0
IL_0207: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0209: br => Label20
IL_020E: Label15
IL_020E: ldloc.3
IL_020F: brfalse => Label21
IL_0214: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0216: ldc.i4.2
IL_0217: and
IL_0218: brfalse => Label22
IL_021D: ldc.i4.1
IL_021E: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0220: Label22
IL_0220: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0222: ldc.i4.2
IL_0223: and
IL_0224: brtrue => Label23
IL_0229: ldc.i4.3
IL_022A: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_022C: Label23
IL_022C: br => Label24
IL_0231: Label21
IL_0231: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0233: ldc.i4.2
IL_0234: and
IL_0235: brtrue => Label25
IL_023A: ldc.i4.3
IL_023B: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_023D: Label25
IL_023D: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_023F: ldc.i4.2
IL_0240: and
IL_0241: brfalse => Label26
IL_0246: ldc.i4.1
IL_0247: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0249: Label20
IL_0249: Label24
IL_0249: Label26
IL_0249: ldarg.0
IL_024A: ldloc.0
IL_024B: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0250: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0255: ldloc.s 16 (System.UInt16)
IL_0257: ldelema NetSegment
IL_025C: ldloc.1
IL_025D: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_025F: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0261: ldc.i4.0
IL_0262: ldc.i4.0
IL_0263: 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_0268: Label14
IL_0268: ldloc.s 15 (System.Int32)
IL_026A: ldc.i4.1
IL_026B: add
IL_026C: stloc.s 15 (System.Int32)
IL_026E: Label13
IL_026E: ldloc.s 15 (System.Int32)
IL_0270: ldc.i4.8
IL_0271: blt => Label27
IL_0276: // end original
IL_0276: ret
DONE

### Patch: virtual System.Void HumanAI::ArriveAtDestination(System.UInt16


instanceID, CitizenInstance& citizenData, System.Boolean success)
### Replacement: static System.Void
HumanAI::HumanAI.ArriveAtDestination_Patch0(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: // start original
IL_0000: ldarg.2
IL_0001: ldfld System.UInt32 CitizenInstance::m_citizen
IL_0006: stloc.0
IL_0007: ldloc.0
IL_0008: brfalse => Label0
IL_000D: call static CitizenManager
ColossalFramework.Singleton`1<CitizenManager>::get_instance()
IL_0012: stloc.1
IL_0013: ldloc.1
IL_0014: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0019: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_001E: ldloc.0
IL_001F: conv.u
IL_0020: ldelema Citizen
IL_0025: ldloc.0
IL_0026: ldc.i4.0
IL_0027: ldc.i4.0
IL_0028: call System.Void Citizen::SetVehicle(System.UInt32 citizenID,
System.UInt16 vehicleID, System.UInt32 unitID)
IL_002D: ldarg.2
IL_002E: ldfld Flags CitizenInstance::m_flags
IL_0033: ldc.i4 134217728
IL_0038: and
IL_0039: brfalse => Label1
IL_003E: ldarg.3
IL_003F: brfalse => Label2
IL_0044: ldarg.2
IL_0045: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_004A: stloc.2
IL_004B: ldloc.2
IL_004C: brfalse => Label3
IL_0051: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0056: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_005B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0060: ldloc.2
IL_0061: ldelema NetNode
IL_0066: ldfld System.UInt16 NetNode::m_transportLine
IL_006B: stloc.3
IL_006C: ldloc.3
IL_006D: brfalse => Label4
IL_0072: call static TransportManager
ColossalFramework.Singleton`1<TransportManager>::get_instance()
IL_0077: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_007C: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_0081: ldloc.3
IL_0082: ldelema TransportLine
IL_0087: call TransportInfo TransportLine::get_Info()
IL_008C: stloc.s 4 (TransportInfo)
IL_008E: ldloc.s 4 (TransportInfo)
IL_0090: ldfld VehicleType TransportInfo::m_vehicleType
IL_0095: brtrue => Label5
IL_009A: ldarg.1
IL_009B: ldc.i4.1
IL_009C: and
IL_009D: brtrue => Label6
IL_00A2: ldloc.2
IL_00A3: call static System.UInt16 TransportLine::GetNextStop(System.UInt16
stop)
IL_00A8: stloc.2
IL_00A9: br => Label7
IL_00AE: Label6
IL_00AE: ldloc.2
IL_00AF: call static System.UInt16 TransportLine::GetPrevStop(System.UInt16
stop)
IL_00B4: stloc.2
IL_00B5: Label7
IL_00B5: ldloc.2
IL_00B6: brfalse => Label8
IL_00BB: ldarg.2
IL_00BC: dup
IL_00BD: ldfld Flags CitizenInstance::m_flags
IL_00C2: ldc.i4 268435456
IL_00C7: or
IL_00C8: stfld Flags CitizenInstance::m_flags
IL_00CD: ldarg.0
IL_00CE: ldarg.1
IL_00CF: ldarg.2
IL_00D0: ldloc.2
IL_00D1: ldc.i4.1
IL_00D2: callvirt virtual System.Void CitizenAI::SetTarget(System.UInt16
instanceID, CitizenInstance& data, System.UInt16 targetIndex, System.Boolean
targetIsNode)
IL_00D7: br => Label16
IL_00DC: Label8
IL_00DC: br => Label9
IL_00E1: Label5
IL_00E1: ldarg.2
IL_00E2: dup
IL_00E3: ldfld Flags CitizenInstance::m_flags
IL_00E8: ldc.i4 268435456
IL_00ED: or
IL_00EE: stfld Flags CitizenInstance::m_flags
IL_00F3: ldarg.0
IL_00F4: ldarg.1
IL_00F5: ldarg.2
IL_00F6: ldloc.2
IL_00F7: call System.Void HumanAI::WaitTouristVehicle(System.UInt16
instanceID, CitizenInstance& citizenData, System.UInt16 stop)
IL_00FC: br => Label17
IL_0101: Label2
IL_0101: Label3
IL_0101: Label4
IL_0101: Label9
IL_0101: br => Label10
IL_0106: Label1
IL_0106: ldarg.3
IL_0107: brfalse => Label11
IL_010C: ldloc.1
IL_010D: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0112: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0117: ldloc.0
IL_0118: conv.u
IL_0119: ldelema Citizen
IL_011E: ldloc.0
IL_011F: ldarg.2
IL_0120: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_0125: call System.Void Citizen::SetLocationByBuilding(System.UInt32
citizenID, System.UInt16 buildingID)
IL_012A: Label11
IL_012A: ldarg.2
IL_012B: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_0130: brfalse => Label12
IL_0135: ldloc.1
IL_0136: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_013B: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0140: ldloc.0
IL_0141: conv.u
IL_0142: ldelema Citizen
IL_0147: call Location Citizen::get_CurrentLocation()
IL_014C: ldc.i4.2
IL_014D: bne.un => Label13
IL_0152: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0157: stloc.s 5 (BuildingManager)
IL_0159: ldloc.s 5 (BuildingManager)
IL_015B: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0160: ldfld Building[] Array16`1<Building>::m_buffer
IL_0165: ldarg.2
IL_0166: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_016B: ldelema Building
IL_0170: call BuildingInfo Building::get_Info()
IL_0175: stloc.s 6 (BuildingInfo)
IL_0177: ldloc.s 6 (BuildingInfo)
IL_0179: ldfld BuildingAI BuildingInfo::m_buildingAI
IL_017E: ldarg.2
IL_017F: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_0184: ldloc.s 5 (BuildingManager)
IL_0186: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_018B: ldfld Building[] Array16`1<Building>::m_buffer
IL_0190: ldarg.2
IL_0191: ldfld System.UInt16 CitizenInstance::m_targetBuilding
IL_0196: ldelema Building
IL_019B: ldloc.0
IL_019C: callvirt virtual System.Void BuildingAI::VisitorEnter(System.UInt16
buildingID, Building& data, System.UInt32 citizen)
IL_01A1: Label0
IL_01A1: Label10
IL_01A1: Label12
IL_01A1: Label13
IL_01A1: ldarg.2
IL_01A2: ldfld Flags CitizenInstance::m_flags
IL_01A7: ldc.i4.s 64
IL_01A9: and
IL_01AA: brfalse => Label14
IL_01AF: ldarg.3
IL_01B0: brtrue => Label15
IL_01B5: Label14
IL_01B5: ldarg.0
IL_01B6: ldarg.1
IL_01B7: ldarg.2
IL_01B8: ldc.i4.0
IL_01B9: callvirt virtual System.Void CitizenAI::SetSource(System.UInt16
instanceID, CitizenInstance& data, System.UInt16 sourceBuilding)
IL_01BE: ldarg.0
IL_01BF: ldarg.1
IL_01C0: ldarg.2
IL_01C1: ldc.i4.0
IL_01C2: call System.Void CitizenAI::SetTarget(System.UInt16 instanceID,
CitizenInstance& data, System.UInt16 targetBuilding)
IL_01C7: ldarg.2
IL_01C8: ldarg.1
IL_01C9: call System.Void CitizenInstance::Unspawn(System.UInt16 instanceID)
IL_01CE: // end original
IL_01CE: Label15
IL_01CE: Label16
IL_01CE: Label17
IL_01CE: ret
DONE

### Patch: virtual System.Void CommonBuildingAI::SimulationStep(System.UInt16


buildingID, Building& data)
### Replacement: static System.Void
CommonBuildingAI::CommonBuildingAI.SimulationStep_Patch0(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: // start original
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: ldarg.2
IL_0003: call virtual System.Void BuildingAI::SimulationStep(System.UInt16
buildingID, Building& data)
IL_0008: ldarg.2
IL_0009: ldfld Flags Building::m_flags
IL_000E: ldc.i4 524288
IL_0013: and
IL_0014: brfalse => Label0
IL_0019: ldarg.1
IL_001A: ldc.i4.8
IL_001B: shl
IL_001C: ldc.i4 49152
IL_0021: div.un
IL_0022: stloc.0
IL_0023: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0028: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_002D: ldloc.0
IL_002E: sub
IL_002F: stloc.1
IL_0030: ldarg.2
IL_0031: ldfld Flags Building::m_flags
IL_0036: ldc.i4 4194304
IL_003B: and
IL_003C: brfalse => Label1
IL_0041: ldarg.2
IL_0042: ldloc.1
IL_0043: ldc.i4 256
IL_0048: sub
IL_0049: call Frame Building::GetFrameData(System.UInt32 simulationFrame)
IL_004E: stloc.2
IL_004F: ldloca.s 2 (Building+Frame)
IL_0051: ldfld System.Byte Frame::m_constructState
IL_0056: brtrue => Label2
IL_005B: Label1
IL_005B: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0060: ldarg.1
IL_0061: callvirt System.Void BuildingManager::ReleaseBuilding(System.UInt16
building)
IL_0066: // end original
IL_0066: Label0
IL_0066: Label2
IL_0066: ret
DONE

### Patch: System.Void RoadWorldInfoPanel::OnAdjustRoadButton()


### Replacement: static System.Void
RoadWorldInfoPanel::RoadWorldInfoPanel.OnAdjustRoadButton_Patch0(RoadWorldInfoPanel
this)
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: ldc.i4.s 30
IL_0007: ldc.i4.2
IL_0008: callvirt System.Void InfoManager::SetCurrentMode(InfoMode mode,
SubInfoMode subMode)
IL_000D: ldarg.0
IL_000E: call System.Void WorldInfoPanel::Hide()
IL_0013: // end original
IL_0013: ret
DONE

### Patch: System.Void NetSegment::CalculateSegment(System.UInt16 segmentID)


### Replacement: static System.Void
NetSegment::NetSegment.CalculateSegment_Patch0(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<NetManager>::get_instance()
IL_0036: stloc.0
IL_0037: ldloc.0
IL_0038: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0074: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16>
NetManager::m_updateNameVisibility
IL_00CF: ldarg.1
IL_00D0: callvirt System.Boolean
System.Collections.Generic.HashSet`1<System.UInt16>::Add(System.UInt16 item)
IL_00D5: pop
IL_00D6: // end original
IL_00D6: Label0
IL_00D6: ret
DONE

### Patch: System.Void LoadAssetPanel::OnLoad()


### Replacement: static System.Void
LoadAssetPanel::LoadAssetPanel.OnLoad_Patch0(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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<CustomAssetMetaData>::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<CustomAssetMetaData>::GetListingMetaData(System.Int32 index)
IL_0037: stloc.0
IL_0038: ldarg.0
IL_0039: ldloc.0
IL_003A: call System.Void
LoadSavePanelBase`1<CustomAssetMetaData>::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<CustomAssetMetaData>::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<SimulationManager>::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<SimulationManager>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_010B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<VehicleInfo>::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<VehicleInfo>::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<VehicleInfo>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_023B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<BuildingInfo>::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<BuildingInfo>::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<BuildingInfo>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_036B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<BuildingInfo>::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<BuildingInfo>::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<BuildingInfo>::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<BuildingManager>::get_instance()
IL_0482: callvirt virtual System.Void SimulationManagerBase`2<BuildingManager,
BuildingProperties>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_04A5: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<NetInfo>::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<BuildingInfo>::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<CitizenInfo>::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<VehicleInfo>::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<PropInfo>::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<TreeInfo>::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<NetInfo>::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: ret
DONE
### Patch: System.Void InfoManager::SetMode(InfoMode mode, SubInfoMode subMode)
### Replacement: static System.Void
InfoManager::InfoManager.SetMode_Patch0(InfoManager this, InfoMode mode,
SubInfoMode subMode)
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: stfld InfoMode InfoManager::m_currentMode
IL_0007: ldarg.0
IL_0008: ldarg.2
IL_0009: stfld SubInfoMode InfoManager::m_currentSubMode
IL_000E: ldarg.1
IL_000F: ldc.i4.1
IL_0010: sub
IL_0011: 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
IL_00AA: br => Label37
IL_00AF: Label0
IL_00AF: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00B4: ldc.i4.0
IL_00B5: ldc.i4.0
IL_00B6: ldc.i4.m1
IL_00B7: ldc.r4 300
IL_00BC: ldc.i4.0
IL_00BD: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_00C2: br => Label38
IL_00C7: Label1
IL_00C7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00CC: ldc.i4.0
IL_00CD: ldc.i4.0
IL_00CE: ldc.i4.m1
IL_00CF: ldc.r4 300
IL_00D4: ldc.i4.0
IL_00D5: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_00DA: br => Label39
IL_00DF: Label2
IL_00DF: ldarg.2
IL_00E0: brtrue => Label40
IL_00E5: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_00EA: ldc.i4.s 15
IL_00EC: ldc.i4.0
IL_00ED: ldc.i4.0
IL_00EE: ldc.r4 500
IL_00F3: ldc.i4.0
IL_00F4: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_00F9: br => Label41
IL_00FE: Label40
IL_00FE: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0103: ldc.i4.0
IL_0104: ldc.i4.0
IL_0105: ldc.i4.m1
IL_0106: ldc.r4 300
IL_010B: ldc.i4.0
IL_010C: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0111: Label41
IL_0111: br => Label42
IL_0116: Label3
IL_0116: ldarg.2
IL_0117: ldc.i4.1
IL_0118: bne.un => Label43
IL_011D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0122: ldc.i4.s 14
IL_0124: ldc.i4.0
IL_0125: ldc.i4.1
IL_0126: ldc.r4 500
IL_012B: ldc.i4.0
IL_012C: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0131: br => Label44
IL_0136: Label43
IL_0136: ldarg.2
IL_0137: ldc.i4.3
IL_0138: bne.un => Label45
IL_013D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0142: ldc.i4.s 14
IL_0144: ldc.i4.0
IL_0145: ldc.i4.4
IL_0146: ldc.r4 500
IL_014B: ldc.i4.0
IL_014C: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0151: br => Label46
IL_0156: Label45
IL_0156: ldarg.2
IL_0157: ldc.i4.2
IL_0158: bne.un => Label47
IL_015D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0162: ldc.i4.s 14
IL_0164: ldc.i4.0
IL_0165: ldc.i4.3
IL_0166: ldc.r4 500
IL_016B: ldc.i4.0
IL_016C: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0171: br => Label48
IL_0176: Label47
IL_0176: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_017B: ldc.i4.s 14
IL_017D: ldc.i4.0
IL_017E: ldc.i4.0
IL_017F: ldc.r4 500
IL_0184: ldc.i4.0
IL_0185: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_018A: Label44
IL_018A: Label46
IL_018A: Label48
IL_018A: br => Label49
IL_018F: Label12
IL_018F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0194: ldc.i4.0
IL_0195: ldc.i4.0
IL_0196: ldc.i4.m1
IL_0197: ldc.r4 300
IL_019C: ldc.i4.0
IL_019D: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01A2: br => Label50
IL_01A7: Label4
IL_01A7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01AC: ldc.i4.0
IL_01AD: ldc.i4.0
IL_01AE: ldc.i4.m1
IL_01AF: ldc.r4 300
IL_01B4: ldc.i4.0
IL_01B5: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01BA: br => Label51
IL_01BF: Label5
IL_01BF: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01C4: ldc.i4.0
IL_01C5: ldc.i4.0
IL_01C6: ldc.i4.m1
IL_01C7: ldc.r4 300
IL_01CC: ldc.i4.0
IL_01CD: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01D2: br => Label52
IL_01D7: Label8
IL_01D7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01DC: ldc.i4.0
IL_01DD: ldc.i4.0
IL_01DE: ldc.i4.m1
IL_01DF: ldc.r4 300
IL_01E4: ldc.i4.0
IL_01E5: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_01EA: br => Label53
IL_01EF: Label6
IL_01EF: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_01F4: ldc.i4.0
IL_01F5: ldc.i4.0
IL_01F6: ldc.i4.m1
IL_01F7: ldc.r4 300
IL_01FC: ldc.i4.0
IL_01FD: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0202: br => Label54
IL_0207: Label7
IL_0207: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_020C: ldc.i4.0
IL_020D: ldc.i4.0
IL_020E: ldc.i4.m1
IL_020F: ldc.r4 300
IL_0214: ldc.i4.0
IL_0215: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_021A: br => Label55
IL_021F: Label9
IL_021F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0224: ldc.i4.0
IL_0225: ldc.i4.0
IL_0226: ldc.i4.m1
IL_0227: ldc.r4 300
IL_022C: ldc.i4.0
IL_022D: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0232: br => Label56
IL_0237: Label10
IL_0237: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_023C: ldc.i4.0
IL_023D: ldc.i4.0
IL_023E: ldc.i4.m1
IL_023F: ldc.r4 300
IL_0244: ldc.i4.0
IL_0245: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_024A: br => Label57
IL_024F: Label11
IL_024F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0254: ldc.i4.0
IL_0255: ldc.i4.0
IL_0256: ldc.i4.m1
IL_0257: ldc.r4 300
IL_025C: ldc.i4.0
IL_025D: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0262: br => Label58
IL_0267: Label14
IL_0267: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_026C: ldc.i4.0
IL_026D: ldc.i4.0
IL_026E: ldc.i4.m1
IL_026F: ldc.r4 300
IL_0274: ldc.i4.0
IL_0275: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_027A: br => Label59
IL_027F: Label17
IL_027F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0284: ldc.i4.s 18
IL_0286: ldc.i4.0
IL_0287: ldc.i4.0
IL_0288: ldc.r4 500
IL_028D: ldc.i4.0
IL_028E: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0293: br => Label60
IL_0298: Label19
IL_0298: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_029D: ldc.i4.0
IL_029E: ldc.i4.0
IL_029F: ldc.i4.m1
IL_02A0: ldc.r4 300
IL_02A5: ldc.i4.1
IL_02A6: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02AB: br => Label61
IL_02B0: Label18
IL_02B0: ldarg.2
IL_02B1: ldc.i4.1
IL_02B2: bne.un => Label62
IL_02B7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02BC: ldc.i4.s 16
IL_02BE: ldc.i4.0
IL_02BF: ldc.i4.1
IL_02C0: ldc.r4 500
IL_02C5: ldc.i4.1
IL_02C6: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02CB: br => Label63
IL_02D0: Label62
IL_02D0: ldarg.2
IL_02D1: ldc.i4.2
IL_02D2: bne.un => Label64
IL_02D7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02DC: ldc.i4.s 16
IL_02DE: ldc.i4.0
IL_02DF: ldc.i4.2
IL_02E0: ldc.r4 500
IL_02E5: ldc.i4.1
IL_02E6: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_02EB: br => Label65
IL_02F0: Label64
IL_02F0: ldarg.2
IL_02F1: brtrue => Label66
IL_02F6: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_02FB: ldc.i4.s 16
IL_02FD: ldc.i4.0
IL_02FE: ldc.i4.0
IL_02FF: ldc.r4 500
IL_0304: ldc.i4.1
IL_0305: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_030A: br => Label67
IL_030F: Label66
IL_030F: ldarg.2
IL_0310: ldc.i4.4
IL_0311: bne.un => Label68
IL_0316: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_031B: ldc.i4.s 16
IL_031D: ldc.i4.0
IL_031E: ldc.i4.3
IL_031F: ldc.r4 500
IL_0324: ldc.i4.1
IL_0325: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_032A: br => Label69
IL_032F: Label68
IL_032F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0334: ldc.i4.s 16
IL_0336: ldc.i4.0
IL_0337: ldc.i4.2
IL_0338: ldc.r4 500
IL_033D: ldc.i4.1
IL_033E: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0343: Label63
IL_0343: Label65
IL_0343: Label67
IL_0343: Label69
IL_0343: br => Label70
IL_0348: Label16
IL_0348: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_034D: ldc.i4.0
IL_034E: ldc.i4.0
IL_034F: ldc.i4.m1
IL_0350: ldc.r4 300
IL_0355: ldc.i4.0
IL_0356: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_035B: br => Label71
IL_0360: Label13
IL_0360: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0365: ldc.i4.0
IL_0366: ldc.i4.0
IL_0367: ldc.i4.m1
IL_0368: ldc.r4 300
IL_036D: ldc.i4.0
IL_036E: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0373: br => Label72
IL_0378: Label15
IL_0378: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_037D: ldc.i4.s 13
IL_037F: ldc.i4.0
IL_0380: ldc.i4.m1
IL_0381: ldc.r4 2000
IL_0386: ldc.i4.0
IL_0387: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_038C: br => Label73
IL_0391: Label20
IL_0391: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0396: ldc.i4.0
IL_0397: ldc.i4.0
IL_0398: ldc.i4.m1
IL_0399: ldc.r4 300
IL_039E: ldc.i4.0
IL_039F: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03A4: br => Label74
IL_03A9: Label21
IL_03A9: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03AE: ldc.i4.0
IL_03AF: ldc.i4.0
IL_03B0: ldc.i4.m1
IL_03B1: ldc.r4 300
IL_03B6: ldc.i4.0
IL_03B7: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03BC: br => Label75
IL_03C1: Label22
IL_03C1: ldarg.2
IL_03C2: brtrue => Label76
IL_03C7: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03CC: ldc.i4.s 9
IL_03CE: ldc.i4.0
IL_03CF: ldc.i4.1
IL_03D0: ldc.r4 2000
IL_03D5: ldc.i4.0
IL_03D6: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03DB: br => Label77
IL_03E0: Label76
IL_03E0: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_03E5: ldc.i4.0
IL_03E6: ldc.i4.0
IL_03E7: ldc.i4.m1
IL_03E8: ldc.r4 300
IL_03ED: ldc.i4.0
IL_03EE: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_03F3: Label77
IL_03F3: br => Label78
IL_03F8: Label23
IL_03F8: ldarg.2
IL_03F9: brtrue => Label79
IL_03FE: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0403: ldc.i4.s 9
IL_0405: ldc.i4.0
IL_0406: ldc.i4.3
IL_0407: ldc.r4 2000
IL_040C: ldc.i4.0
IL_040D: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0412: br => Label80
IL_0417: Label79
IL_0417: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_041C: ldc.i4.0
IL_041D: ldc.i4.0
IL_041E: ldc.i4.m1
IL_041F: ldc.r4 300
IL_0424: ldc.i4.0
IL_0425: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_042A: Label80
IL_042A: br => Label81
IL_042F: Label24
IL_042F: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0434: ldc.i4.s 20
IL_0436: ldc.i4.0
IL_0437: ldc.i4.3
IL_0438: ldc.r4 500
IL_043D: ldc.i4.1
IL_043E: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0443: br => Label82
IL_0448: Label25
IL_0448: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_044D: ldc.i4.0
IL_044E: ldc.i4.0
IL_044F: ldc.i4.m1
IL_0450: ldc.r4 300
IL_0455: ldc.i4.0
IL_0456: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_045B: br => Label83
IL_0460: Label26
IL_0460: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0465: ldc.i4.s 20
IL_0467: ldc.i4.0
IL_0468: ldc.i4.1
IL_0469: ldc.r4 2000
IL_046E: ldc.i4.0
IL_046F: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0474: br => Label84
IL_0479: Label27
IL_0479: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_047E: ldc.i4.0
IL_047F: ldc.i4.0
IL_0480: ldc.i4.m1
IL_0481: ldc.r4 300
IL_0486: ldc.i4.0
IL_0487: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_048C: br => Label85
IL_0491: Label28
IL_0491: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0496: ldc.i4.0
IL_0497: ldc.i4.0
IL_0498: ldc.i4.m1
IL_0499: ldc.r4 300
IL_049E: ldc.i4.0
IL_049F: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04A4: br => Label86
IL_04A9: Label29
IL_04A9: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04AE: ldc.i4.0
IL_04AF: ldc.i4.0
IL_04B0: ldc.i4.m1
IL_04B1: ldc.r4 300
IL_04B6: ldc.i4.0
IL_04B7: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04BC: br => Label87
IL_04C1: Label30
IL_04C1: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04C6: ldc.i4.0
IL_04C7: ldc.i4.0
IL_04C8: ldc.i4.m1
IL_04C9: ldc.r4 300
IL_04CE: ldc.i4.0
IL_04CF: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04D4: br => Label88
IL_04D9: Label31
IL_04D9: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04DE: ldc.i4.0
IL_04DF: ldc.i4.0
IL_04E0: ldc.i4.m1
IL_04E1: ldc.r4 300
IL_04E6: ldc.i4.0
IL_04E7: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_04EC: br => Label89
IL_04F1: Label32
IL_04F1: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_04F6: ldc.i4.s 12
IL_04F8: ldc.i4.s 17
IL_04FA: ldc.i4.1
IL_04FB: ldc.r4 2000
IL_0500: ldc.i4.0
IL_0501: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0506: br => Label90
IL_050B: Label33
IL_050B: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0510: ldc.i4.0
IL_0511: ldc.i4.0
IL_0512: ldc.i4.m1
IL_0513: ldc.r4 300
IL_0518: ldc.i4.0
IL_0519: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_051E: br => Label91
IL_0523: Label34
IL_0523: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0528: ldc.i4.s 19
IL_052A: ldc.i4.s 28
IL_052C: ldc.i4.1
IL_052D: ldc.r4 500
IL_0532: ldc.i4.0
IL_0533: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0538: br => Label92
IL_053D: Label35
IL_053D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0542: ldc.i4.0
IL_0543: ldc.i4.0
IL_0544: ldc.i4.m1
IL_0545: ldc.r4 300
IL_054A: ldc.i4.0
IL_054B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0550: br => Label93
IL_0555: Label36
IL_0555: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_055A: ldc.i4.0
IL_055B: ldc.i4.0
IL_055C: ldc.i4.m1
IL_055D: ldc.r4 300
IL_0562: ldc.i4.0
IL_0563: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0568: br => Label94
IL_056D: Label37
IL_056D: call static CoverageManager
ColossalFramework.Singleton`1<CoverageManager>::get_instance()
IL_0572: ldc.i4.0
IL_0573: ldc.i4.0
IL_0574: ldc.i4.m1
IL_0575: ldc.r4 300
IL_057A: ldc.i4.0
IL_057B: callvirt System.Void CoverageManager::SetMode(Service service,
SubService subService, Level level, System.Single fadeLength, System.Boolean
invertDirection)
IL_0580: br => Label95
IL_0585: // end original
IL_0585: Label38
IL_0585: Label39
IL_0585: Label42
IL_0585: Label49
IL_0585: Label50
IL_0585: Label51
IL_0585: Label52
IL_0585: Label53
IL_0585: Label54
IL_0585: Label55
IL_0585: Label56
IL_0585: Label57
IL_0585: Label58
IL_0585: Label59
IL_0585: Label60
IL_0585: Label61
IL_0585: Label70
IL_0585: Label71
IL_0585: Label72
IL_0585: Label73
IL_0585: Label74
IL_0585: Label75
IL_0585: Label78
IL_0585: Label81
IL_0585: Label82
IL_0585: Label83
IL_0585: Label84
IL_0585: Label85
IL_0585: Label86
IL_0585: Label87
IL_0585: Label88
IL_0585: Label89
IL_0585: Label90
IL_0585: Label91
IL_0585: Label92
IL_0585: Label93
IL_0585: Label94
IL_0585: Label95
IL_0585: ret
DONE

### Patch: virtual System.Void DefaultTool::OnToolGUI(UnityEngine.Event e)


### Replacement: static System.Void
DefaultTool::DefaultTool.OnToolGUI_Patch0(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<SimulationManager>::get_instance()
IL_0046: ldarg.0
IL_0047: ldftn System.Void DefaultTool::<OnToolGUI>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<InstanceManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<BuildingManager>::get_instance()
IL_017E: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0183: ldfld Building[] Array16`1<Building>::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<SimulationManager>::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<SimulationManager>::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::<OnToolGUI>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<SimulationManager>::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::<OnToolGUI>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<LogChannel>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<SimulationManager>::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<BuildingManager>::get_instance()
IL_04D2: stloc.s 13 (BuildingManager)
IL_04D4: ldloc.s 13 (BuildingManager)
IL_04D6: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_04DB: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_04FA: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0555: ldfld Building[] Array16`1<Building>::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<VehicleManager>::get_instance()
IL_0590: stloc.s 16 (VehicleManager)
IL_0592: ldloc.s 16 (VehicleManager)
IL_0594: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0599: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_05B8: ldfld Vehicle[] Array16`1<Vehicle>::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})"
IL_05DD: ldc.i4.2
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: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_0601: stloc.s 12 (System.String)
IL_0603: ldloc.s 17 (VehicleInfo)
IL_0605: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_060A: ldloc.s 8 (System.UInt16)
IL_060C: ldloc.s 16 (VehicleManager)
IL_060E: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0613: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0618: ldloc.s 8 (System.UInt16)
IL_061A: ldelema Vehicle
IL_061F: callvirt virtual System.String VehicleAI::GetDebugString(System.UInt16
vehicleID, Vehicle& data)
IL_0624: stloc.s 18 (System.String)
IL_0626: ldloc.s 18 (System.String)
IL_0628: brfalse => Label68
IL_062D: ldloc.s 12 (System.String)
IL_062F: ldstr "\n"
IL_0634: ldloc.s 18 (System.String)
IL_0636: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_063B: stloc.s 12 (System.String)
IL_063D: Label66
IL_063D: Label67
IL_063D: Label68
IL_063D: br => Label69
IL_0642: Label65
IL_0642: ldloc.s 9 (System.UInt16)
IL_0644: brfalse => Label70
IL_0649: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_064E: stloc.s 19 (VehicleManager)
IL_0650: ldloc.s 19 (VehicleManager)
IL_0652: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_0657: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_065C: ldloc.s 9 (System.UInt16)
IL_065E: ldelema VehicleParked
IL_0663: ldfld System.UInt16 VehicleParked::m_flags
IL_0668: ldc.i4.1
IL_0669: and
IL_066A: brfalse => Label71
IL_066F: ldloc.s 19 (VehicleManager)
IL_0671: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_0676: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_067B: ldloc.s 9 (System.UInt16)
IL_067D: ldelema VehicleParked
IL_0682: call VehicleInfo VehicleParked::get_Info()
IL_0687: stloc.s 20 (VehicleInfo)
IL_0689: ldloc.s 20 (VehicleInfo)
IL_068B: ldnull
IL_068C: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0691: brfalse => Label72
IL_0696: ldstr "{0} ({1})"
IL_069B: ldc.i4.2
IL_069C: newarr System.Object
IL_06A1: dup
IL_06A2: ldc.i4.0
IL_06A3: ldloc.s 20 (VehicleInfo)
IL_06A5: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_06AA: callvirt System.String UnityEngine.Object::get_name()
IL_06AF: stelem.ref
IL_06B0: dup
IL_06B1: ldc.i4.1
IL_06B2: ldloc.s 9 (System.UInt16)
IL_06B4: box System.UInt16
IL_06B9: stelem.ref
IL_06BA: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_06BF: stloc.s 12 (System.String)
IL_06C1: ldloc.s 20 (VehicleInfo)
IL_06C3: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_06C8: ldloc.s 9 (System.UInt16)
IL_06CA: ldloc.s 19 (VehicleManager)
IL_06CC: ldfld Array16`1<VehicleParked> VehicleManager::m_parkedVehicles
IL_06D1: ldfld VehicleParked[] Array16`1<VehicleParked>::m_buffer
IL_06D6: ldloc.s 9 (System.UInt16)
IL_06D8: ldelema VehicleParked
IL_06DD: callvirt virtual System.String VehicleAI::GetDebugString(System.UInt16
parkedVehicleID, VehicleParked& data)
IL_06E2: stloc.s 21 (System.String)
IL_06E4: ldloc.s 21 (System.String)
IL_06E6: brfalse => Label73
IL_06EB: ldloc.s 12 (System.String)
IL_06ED: ldstr "\n"
IL_06F2: ldloc.s 21 (System.String)
IL_06F4: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_06F9: stloc.s 12 (System.String)
IL_06FB: Label71
IL_06FB: Label72
IL_06FB: Label73
IL_06FB: br => Label74
IL_0700: Label70
IL_0700: ldloc.s 10 (System.UInt16)
IL_0702: brfalse => Label75
IL_0707: call static CitizenManager
ColossalFramework.Singleton`1<CitizenManager>::get_instance()
IL_070C: stloc.s 22 (CitizenManager)
IL_070E: ldloc.s 22 (CitizenManager)
IL_0710: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0715: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_071A: ldloc.s 10 (System.UInt16)
IL_071C: ldelema CitizenInstance
IL_0721: ldfld Flags CitizenInstance::m_flags
IL_0726: ldc.i4.1
IL_0727: and
IL_0728: brfalse => Label76
IL_072D: ldloc.s 22 (CitizenManager)
IL_072F: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0734: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0739: ldloc.s 10 (System.UInt16)
IL_073B: ldelema CitizenInstance
IL_0740: call CitizenInfo CitizenInstance::get_Info()
IL_0745: stloc.s 23 (CitizenInfo)
IL_0747: ldloc.s 23 (CitizenInfo)
IL_0749: ldnull
IL_074A: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_074F: brfalse => Label77
IL_0754: ldstr "{0} ({1})"
IL_0759: ldc.i4.2
IL_075A: newarr System.Object
IL_075F: dup
IL_0760: ldc.i4.0
IL_0761: ldloc.s 23 (CitizenInfo)
IL_0763: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_0768: callvirt System.String UnityEngine.Object::get_name()
IL_076D: stelem.ref
IL_076E: dup
IL_076F: ldc.i4.1
IL_0770: ldloc.s 10 (System.UInt16)
IL_0772: box System.UInt16
IL_0777: stelem.ref
IL_0778: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_077D: stloc.s 12 (System.String)
IL_077F: ldloc.s 23 (CitizenInfo)
IL_0781: ldfld CitizenAI CitizenInfo::m_citizenAI
IL_0786: ldloc.s 10 (System.UInt16)
IL_0788: ldloc.s 22 (CitizenManager)
IL_078A: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_078F: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0794: ldloc.s 10 (System.UInt16)
IL_0796: ldelema CitizenInstance
IL_079B: callvirt virtual System.String CitizenAI::GetDebugString(System.UInt16
instanceID, CitizenInstance& data)
IL_07A0: stloc.s 24 (System.String)
IL_07A2: ldloc.s 24 (System.String)
IL_07A4: brfalse => Label78
IL_07A9: ldloc.s 12 (System.String)
IL_07AB: ldstr "\n"
IL_07B0: ldloc.s 24 (System.String)
IL_07B2: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_07B7: stloc.s 12 (System.String)
IL_07B9: Label76
IL_07B9: Label77
IL_07B9: Label78
IL_07B9: br => Label79
IL_07BE: Label75
IL_07BE: ldloc.s 11 (System.UInt16)
IL_07C0: brfalse => Label80
IL_07C5: call static TransportManager
ColossalFramework.Singleton`1<TransportManager>::get_instance()
IL_07CA: stloc.s 25 (TransportManager)
IL_07CC: ldloc.s 25 (TransportManager)
IL_07CE: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_07D3: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_07D8: ldloc.s 11 (System.UInt16)
IL_07DA: ldelema TransportLine
IL_07DF: ldfld Flags TransportLine::m_flags
IL_07E4: ldc.i4.1
IL_07E5: and
IL_07E6: brfalse => Label81
IL_07EB: ldloc.s 25 (TransportManager)
IL_07ED: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_07F2: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_07F7: ldloc.s 11 (System.UInt16)
IL_07F9: ldelema TransportLine
IL_07FE: call TransportInfo TransportLine::get_Info()
IL_0803: stloc.s 26 (TransportInfo)
IL_0805: ldloc.s 26 (TransportInfo)
IL_0807: ldnull
IL_0808: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_080D: brfalse => Label82
IL_0812: ldstr "{0} ({1})"
IL_0817: ldc.i4.2
IL_0818: newarr System.Object
IL_081D: dup
IL_081E: ldc.i4.0
IL_081F: ldloc.s 26 (TransportInfo)
IL_0821: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_0826: callvirt System.String UnityEngine.Object::get_name()
IL_082B: stelem.ref
IL_082C: dup
IL_082D: ldc.i4.1
IL_082E: ldloc.s 11 (System.UInt16)
IL_0830: box System.UInt16
IL_0835: stelem.ref
IL_0836: call static System.String StringUtils::SafeFormat(System.String
format, System.Object[] args)
IL_083B: stloc.s 12 (System.String)
IL_083D: ldloc.s 25 (TransportManager)
IL_083F: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_0844: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_0849: ldloc.s 11 (System.UInt16)
IL_084B: ldelema TransportLine
IL_0850: ldloc.s 11 (System.UInt16)
IL_0852: call System.String TransportLine::GetDebugString(System.UInt16
lineID)
IL_0857: stloc.s 27 (System.String)
IL_0859: ldloc.s 27 (System.String)
IL_085B: brfalse => Label83
IL_0860: ldloc.s 12 (System.String)
IL_0862: ldstr "\n"
IL_0867: ldloc.s 27 (System.String)
IL_0869: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2)
IL_086E: stloc.s 12 (System.String)
IL_0870: Label64
IL_0870: Label69
IL_0870: Label74
IL_0870: Label79
IL_0870: Label80
IL_0870: Label81
IL_0870: Label82
IL_0870: Label83
IL_0870: ldloc.s 12 (System.String)
IL_0872: brfalse => Label84
IL_0877: ldloc.s 6 (InstanceID)
IL_0879: ldloca.s 28 (UnityEngine.Vector3)
IL_087B: ldloca.s 29 (UnityEngine.Quaternion)
IL_087D: ldloca.s 30 (UnityEngine.Vector3)
IL_087F: call static System.Boolean InstanceManager::GetPosition(InstanceID
id, UnityEngine.Vector3& position, UnityEngine.Quaternion& rotation,
UnityEngine.Vector3& size)
IL_0884: brtrue => Label85
IL_0889: ldarg.0
IL_088A: ldfld UnityEngine.Vector3 DefaultTool::m_mousePosition
IL_088F: stloc.s 28 (UnityEngine.Vector3)
IL_0891: Label85
IL_0891: call static UnityEngine.Camera UnityEngine.Camera::get_main()
IL_0896: ldloc.s 28 (UnityEngine.Vector3)
IL_0898: callvirt UnityEngine.Vector3
UnityEngine.Camera::WorldToScreenPoint(UnityEngine.Vector3 position)
IL_089D: stloc.s 31 (UnityEngine.Vector3)
IL_089F: ldloca.s 31 (UnityEngine.Vector3)
IL_08A1: call static System.Int32 UnityEngine.Screen::get_height()
IL_08A6: conv.r4
IL_08A7: ldloca.s 31 (UnityEngine.Vector3)
IL_08A9: ldfld System.Single UnityEngine.Vector3::y
IL_08AE: sub
IL_08AF: stfld System.Single UnityEngine.Vector3::y
IL_08B4: call static UnityEngine.Color UnityEngine.GUI::get_color()
IL_08B9: stloc.s 32 (UnityEngine.Color)
IL_08BB: call static UnityEngine.Color UnityEngine.Color::get_cyan()
IL_08C0: call static System.Void UnityEngine.GUI::set_color(UnityEngine.Color
value)
IL_08C5: ldloca.s 31 (UnityEngine.Vector3)
IL_08C7: ldfld System.Single UnityEngine.Vector3::x
IL_08CC: ldloca.s 31 (UnityEngine.Vector3)
IL_08CE: ldfld System.Single UnityEngine.Vector3::y
IL_08D3: ldc.r4 500
IL_08D8: ldc.r4 500
IL_08DD: newobj System.Void UnityEngine.Rect::.ctor(System.Single x,
System.Single y, System.Single width, System.Single height)
IL_08E2: ldloc.s 12 (System.String)
IL_08E4: call static UnityEngine.Color UnityEngine.Color::get_black()
IL_08E9: call static UnityEngine.Color UnityEngine.Color::get_cyan()
IL_08EE: call static UnityEngine.GUISkin UnityEngine.GUI::get_skin()
IL_08F3: callvirt UnityEngine.GUIStyle UnityEngine.GUISkin::get_label()
IL_08F8: ldc.r4 2
IL_08FD: 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_0902: ldloc.s 32 (UnityEngine.Color)
IL_0904: call static System.Void UnityEngine.GUI::set_color(UnityEngine.Color
value)
IL_0909: // end original
IL_0909: Label57
IL_0909: Label58
IL_0909: Label59
IL_0909: Label84
IL_0909: ret
DONE

### Patch: virtual System.Void DefaultTool::RenderOverlay(CameraInfo cameraInfo)


### Replacement: static System.Void
DefaultTool::DefaultTool.RenderOverlay_Patch0(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<PropManager>::get_instance()
IL_0079: ldfld Array16`1<PropInstance> PropManager::m_props
IL_007E: ldfld PropInstance[] Array16`1<PropInstance>::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<TreeManager>::get_instance()
IL_012C: ldfld Array32`1<TreeInstance> TreeManager::m_trees
IL_0131: ldfld TreeInstance[] Array32`1<TreeInstance>::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<BuildingManager>::get_instance()
IL_01E6: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01EB: ldfld Building[] Array16`1<Building>::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<DisasterManager>::get_instance()
IL_03A3: ldfld FastList`1<DisasterData> DisasterManager::m_disasters
IL_03A8: ldfld DisasterData[] FastList`1<DisasterData>::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<NetManager>::get_instance()
IL_04A6: stloc.s 24 (NetManager)
IL_04A8: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_04AD: stloc.s 25 (BuildingManager)
IL_04AF: ldloc.s 25 (BuildingManager)
IL_04B1: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_04B6: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_04F6: ldfld Building[] Array16`1<Building>::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<NetNode> NetManager::m_nodes
IL_0520: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_0543: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0562: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0582: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_05AA: ldfld NetNode[] Array16`1<NetNode>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_05F6: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0618: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0637: ldfld Building[] Array16`1<Building>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_0693: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06AD: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06C7: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_06F2: ldfld Building[] Array16`1<Building>::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<NetNode> NetManager::m_nodes
IL_071C: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_073F: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_075E: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_077F: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_07A9: ldfld NetNode[] Array16`1<NetNode>::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<LogChannel>::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<Building> BuildingManager::m_buildings
IL_07F5: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0817: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0831: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_084B: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0865: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_0890: ldfld Building[] Array16`1<Building>::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<LogChannel>::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<NetManager>::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<RenderManager>::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<NetSegment> NetManager::m_segments
IL_09A8: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_09CC: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_09D1: ldloc.s 45 (NetManager)
IL_09D3: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_09D8: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_0A01: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A06: ldloc.s 45 (NetManager)
IL_0A08: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0A0D: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0A73: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0A92: ldfld NetSegment[] Array16`1<NetSegment>::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<ToolManager>::get_instance()
IL_0C1C: ldflda DrawCallData SimulationManagerBase`2<ToolManager,
ToolController>::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<RenderManager>::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<NetSegment> NetManager::m_segments
IL_0C75: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0C96: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0CF4: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0D18: ldfld NetSegment[] Array16`1<NetSegment>::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<TreeManager>::get_instance()
IL_0D40: stloc.s 67 (TreeManager)
IL_0D42: ldloc.s 67 (TreeManager)
IL_0D44: ldfld Array32`1<TreeInstance> TreeManager::m_trees
IL_0D49: ldfld TreeInstance[] Array32`1<TreeInstance>::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<TreeInstance> TreeManager::m_trees
IL_0D64: ldfld TreeInstance[] Array32`1<TreeInstance>::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<PropManager>::get_instance()
IL_0E07: stloc.s 75 (PropManager)
IL_0E09: ldloc.s 75 (PropManager)
IL_0E0B: ldfld Array16`1<PropInstance> PropManager::m_props
IL_0E10: ldfld PropInstance[] Array16`1<PropInstance>::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<PropInstance> PropManager::m_props
IL_0E2A: ldfld PropInstance[] Array16`1<PropInstance>::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<PropInstance> PropManager::m_props
IL_0E44: ldfld PropInstance[] Array16`1<PropInstance>::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<VehicleManager>::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<Vehicle> VehicleManager::m_vehicles
IL_0F0E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0F38: ldfld Vehicle[] Array16`1<Vehicle>::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<VehicleManager>::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<VehicleParked> VehicleManager::m_parkedVehicles
IL_0F87: ldfld VehicleParked[] Array16`1<VehicleParked>::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<VehicleParked> VehicleManager::m_parkedVehicles
IL_0FB1: ldfld VehicleParked[] Array16`1<VehicleParked>::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<CitizenManager>::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<CitizenInstance> CitizenManager::m_instances
IL_1000: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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<CitizenInstance> CitizenManager::m_instances
IL_102A: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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<InfoManager>::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<DistrictManager>::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<InfoManager>::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<DistrictManager>::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<DisasterManager>::get_instance()
IL_1129: stloc.s 104 (DisasterManager)
IL_112B: ldloc.s 104 (DisasterManager)
IL_112D: ldfld FastList`1<DisasterData> DisasterManager::m_disasters
IL_1132: ldfld DisasterData[] FastList`1<DisasterData>::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<DisasterData> DisasterManager::m_disasters
IL_114C: ldfld DisasterData[] FastList`1<DisasterData>::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<DisasterData> DisasterManager::m_disasters
IL_1166: ldfld DisasterData[] FastList`1<DisasterData>::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: ret
DONE

### Patch: System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen)


### Replacement: static System.Void
CitizenManager::CitizenManager.ReleaseCitizen_Patch0(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<Citizen> CitizenManager::m_citizens
IL_0008: ldfld Citizen[] Array32`1<Citizen>::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: ret
DONE

### Patch: System.Void CitizenManager::ReleaseCitizenInstance(System.UInt16


instance)
### Replacement: static System.Void
CitizenManager::CitizenManager.ReleaseCitizenInstance_Patch0(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<CitizenInstance> CitizenManager::m_instances
IL_0008: ldfld CitizenInstance[] Array16`1<CitizenInstance>::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: ret
DONE

### 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<NetManager>::get_instance()
IL_0010: stloc.0
IL_0011: ldloc.0
IL_0012: ldfld FastList`1<System.UInt16> NetManager::m_tempNodeBuffer
IL_0017: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_001C: ldloc.0
IL_001D: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_0022: callvirt System.Void FastList`1<System.UInt16>::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<System.UInt16> 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<System.UInt16> 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<System.UInt16> 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<System.UInt16>::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<NodePosition> 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<NodePosition> 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<System.UInt16> NetManager::m_tempNodeBuffer
IL_022C: ldloc.s 9 (System.UInt16)
IL_022E: callvirt System.Void FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_0268: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_02AC: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16> 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<System.UInt16> 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<NodePosition> 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<NodePosition> 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<System.UInt16> NetManager::m_tempNodeBuffer
IL_056B: ldloc.s 20 (System.UInt16)
IL_056D: callvirt System.Void FastList`1<System.UInt16>::Add(System.UInt16 item)
IL_0572: ldloc.0
IL_0573: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_0578: ldloc.s 21 (System.UInt16)
IL_057A: callvirt System.Void FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_05B6: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_05FC: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_0646: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_067B: ldfld NetSegment[] Array16`1<NetSegment>::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<System.UInt16> NetManager::m_tempNodeBuffer
IL_06D4: ldfld System.UInt16[] FastList`1<System.UInt16>::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<NetNode> NetManager::m_nodes
IL_06E4: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_071D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_073E: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_075D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0788: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16> NetManager::m_tempNodeBuffer
IL_07C2: ldfld System.Int32 FastList`1<System.UInt16>::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<System.UInt16> NetManager::m_tempSegmentBuffer
IL_07DA: ldfld System.UInt16[] FastList`1<System.UInt16>::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<NetSegment> NetManager::m_segments
IL_07EA: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_080F: ldfld NetSegment[] Array16`1<NetSegment>::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<ToolManager>::get_instance()
IL_083B: ldfld ToolController SimulationManagerBase`2<ToolManager,
ToolController>::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<NetSegment> NetManager::m_segments
IL_0852: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0879: ldfld NetSegment[] Array16`1<NetSegment>::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<System.UInt16> NetManager::m_tempSegmentBuffer
IL_08A9: ldfld System.Int32 FastList`1<System.UInt16>::m_size
IL_08AE: blt => Label60
IL_08B3: ldloc.0
IL_08B4: ldfld FastList`1<System.UInt16> NetManager::m_tempNodeBuffer
IL_08B9: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_08BE: ldloc.0
IL_08BF: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_08C4: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_08C9: // end original
IL_08C9: Label0
IL_08C9: ret
DONE

### Harmony id=de.viathinksoft.tmpe, version=2.0.1.0, location=E:\Games\data-


000000001627CE20, env/clr=2.0.50727.1433, platform=Win32NT,
ptrsize:runtime/env=8/Bits64, Windows
AccessTools.Method: Could not find method for type System.Exception and name
PrepForRemoting and parameters
### Started from System.Void TrafficManager.Patcher::Install(), location E:\Games\
data-0000000016E91040
### At 2022-11-05 01.51.04
### 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<Vehicle> VehicleManager::m_vehicles
IL_0042: ldloca.s 0 (System.UInt16)
IL_0044: ldarg.2
IL_0045: callvirt System.Boolean Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0066: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_007E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_009D: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_00C4: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_00E4: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_00FC: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0114: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_012C: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0144: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_015C: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0178: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0194: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_01B0: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_01CC: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_01E4: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_01FC: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0216: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_022E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0246: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_025E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0276: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_028E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_02A6: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_02BE: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_02D6: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_02EE: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0306: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_031E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0336: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_034E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0366: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_037E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0396: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_03AE: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_03C6: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_03DE: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_03F6: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_040E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_042E: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_044D: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0452: ldarg.1
IL_0453: ldind.u2
IL_0454: ldelema Vehicle
IL_0459: ldarg.0
IL_045A: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_045F: ldfld Vehicle[] Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_047C: callvirt System.UInt32 Array16`1<Vehicle>::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<Vehicle> VehicleManager::m_vehicles
IL_0012: ldfld Vehicle[] Array16`1<Vehicle>::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<NetSegment> NetManager::m_segments
IL_0030: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_0047: ldfld NetSegment[] Array16`1<NetSegment>::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<NetNode> NetManager::m_nodes
IL_0006: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0021: ldfld NetNode[] Array16`1<NetNode>::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<NetSegment> NetManager::m_segments
IL_00CD: ldfld NetSegment[] Array16`1<NetSegment>::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<NetSegment> NetManager::m_segments
IL_00F3: ldfld NetSegment[] Array16`1<NetSegment>::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<LogChannel>::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 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.Int32
IL_0000: Local var 38: System.UInt16
IL_0000: Local var 39: RoadBaseAI/TrafficLightState
IL_0000: Local var 40: RoadBaseAI/TrafficLightState
IL_0000: Local var 41: UnityEngine.Vector3
IL_0000: Local var 42: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 42 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 42 (System.Boolean)
IL_000E: ldloc 42 (System.Boolean)
IL_0012: brfalse => Label1
IL_0017: ldnull
IL_0018: ldarg 0
IL_001C: ldarg 1
IL_0020: call static System.Boolean
TrafficManager.Patch._TrainTrackBase.LevelCrossingSimulationStepPatch::Prefix(Train
TrackBaseAI __instance, System.UInt16 nodeID, NetNode& data)
IL_0025: stloc 42 (System.Boolean)
IL_0029: Label1
IL_0029: nop
IL_002A: ldloc 42 (System.Boolean)
IL_002E: brfalse => Label0
IL_0033: // start original
IL_0033: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0038: stloc.0
IL_0039: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_003E: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0043: stloc.1
IL_0044: ldarg.1
IL_0045: ldfld System.Byte NetNode::m_maxWaitTime
IL_004A: ldc.i4.3
IL_004B: and
IL_004C: stloc.2
IL_004D: ldarg.1
IL_004E: ldfld System.Byte NetNode::m_maxWaitTime
IL_0053: ldc.i4.2
IL_0054: shr
IL_0055: ldc.i4.7
IL_0056: and
IL_0057: stloc.3
IL_0058: ldarg.1
IL_0059: ldfld System.Byte NetNode::m_maxWaitTime
IL_005E: ldc.i4.5
IL_005F: shr
IL_0060: stloc.s 4 (System.Int32)
IL_0062: ldc.i4.m1
IL_0063: stloc.s 5 (System.Int32)
IL_0065: ldc.i4.m1
IL_0066: stloc.s 6 (System.Int32)
IL_0068: ldc.i4.m1
IL_0069: stloc.s 7 (System.Int32)
IL_006B: ldc.i4.m1
IL_006C: stloc.s 8 (System.Int32)
IL_006E: ldc.i4.m1
IL_006F: stloc.s 9 (System.Int32)
IL_0071: ldc.i4.m1
IL_0072: stloc.s 10 (System.Int32)
IL_0074: ldc.i4.0
IL_0075: stloc.s 11 (System.Int32)
IL_0077: ldc.i4.0
IL_0078: stloc.s 12 (System.Int32)
IL_007A: ldc.i4.0
IL_007B: stloc.s 13 (System.Int32)
IL_007D: ldc.i4.0
IL_007E: stloc.s 14 (System.Int32)
IL_0080: ldc.i4.0
IL_0081: stloc.s 15 (System.Int32)
IL_0083: ldc.i4.0
IL_0084: stloc.s 16 (System.Int32)
IL_0086: br => Label2
IL_008B: Label24
IL_008B: ldarg.1
IL_008C: ldloc.s 16 (System.Int32)
IL_008E: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0093: stloc.s 17 (System.UInt16)
IL_0095: ldloc.s 17 (System.UInt16)
IL_0097: brfalse => Label3
IL_009C: ldc.i4.0
IL_009D: stloc.s 18 (System.Int32)
IL_009F: ldc.i4.0
IL_00A0: stloc.s 19 (System.Int32)
IL_00A2: ldloc.0
IL_00A3: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_00A8: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00AD: ldloc.s 17 (System.UInt16)
IL_00AF: ldelema NetSegment
IL_00B4: ldloc.s 17 (System.UInt16)
IL_00B6: ldc.i4.s 33
IL_00B8: ldc.i4 65601
IL_00BD: ldloca.s 18 (System.Int32)
IL_00BF: ldloca.s 19 (System.Int32)
IL_00C1: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_00C6: ldloc.0
IL_00C7: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_00CC: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00D1: ldloc.s 17 (System.UInt16)
IL_00D3: ldelema NetSegment
IL_00D8: ldfld System.UInt16 NetSegment::m_startNode
IL_00DD: ldarg.0
IL_00DE: ceq
IL_00E0: stloc.s 20 (System.Boolean)
IL_00E2: ldloc.s 20 (System.Boolean)
IL_00E4: brfalse => Label4
IL_00E9: ldloc.s 19 (System.Int32)
IL_00EB: ldc.i4.0
IL_00EC: ceq
IL_00EE: ldc.i4.0
IL_00EF: ceq
IL_00F1: br => Label5
IL_00F6: Label4
IL_00F6: ldloc.s 18 (System.Int32)
IL_00F8: ldc.i4.0
IL_00F9: ceq
IL_00FB: ldc.i4.0
IL_00FC: ceq
IL_00FE: Label5
IL_00FE: stloc.s 21 (System.Boolean)
IL_0100: ldloc.s 20 (System.Boolean)
IL_0102: brfalse => Label6
IL_0107: ldloc.s 18 (System.Int32)
IL_0109: ldc.i4.0
IL_010A: ceq
IL_010C: ldc.i4.0
IL_010D: ceq
IL_010F: br => Label7
IL_0114: Label6
IL_0114: ldloc.s 19 (System.Int32)
IL_0116: ldc.i4.0
IL_0117: ceq
IL_0119: ldc.i4.0
IL_011A: ceq
IL_011C: Label7
IL_011C: stloc.s 22 (System.Boolean)
IL_011E: ldloc.s 21 (System.Boolean)
IL_0120: brfalse => Label8
IL_0125: ldloc.s 11 (System.Int32)
IL_0127: ldc.i4.1
IL_0128: ldloc.s 16 (System.Int32)
IL_012A: ldc.i4.s 31
IL_012C: and
IL_012D: shl
IL_012E: or
IL_012F: stloc.s 11 (System.Int32)
IL_0131: Label8
IL_0131: ldloc.s 22 (System.Boolean)
IL_0133: brfalse => Label9
IL_0138: ldloc.s 12 (System.Int32)
IL_013A: ldc.i4.1
IL_013B: ldloc.s 16 (System.Int32)
IL_013D: ldc.i4.s 31
IL_013F: and
IL_0140: shl
IL_0141: or
IL_0142: stloc.s 12 (System.Int32)
IL_0144: ldloc.s 14 (System.Int32)
IL_0146: ldc.i4.1
IL_0147: add
IL_0148: stloc.s 14 (System.Int32)
IL_014A: Label9
IL_014A: ldarg.0
IL_014B: ldloc.0
IL_014C: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0151: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0156: ldloc.s 17 (System.UInt16)
IL_0158: ldelema NetSegment
IL_015D: ldloc.1
IL_015E: ldc.i4 256
IL_0163: sub
IL_0164: ldloca.s 23 (RoadBaseAI+TrafficLightState)
IL_0166: ldloca.s 24 (RoadBaseAI+TrafficLightState)
IL_0168: ldloca.s 25 (System.Boolean)
IL_016A: ldloca.s 26 (System.Boolean)
IL_016C: 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_0171: ldloc.s 24 (RoadBaseAI+TrafficLightState)
IL_0173: ldc.i4.2
IL_0174: and
IL_0175: brfalse => Label10
IL_017A: ldloc.s 26 (System.Boolean)
IL_017C: brfalse => Label11
IL_0181: ldloc.s 8 (System.Int32)
IL_0183: ldc.i4.m1
IL_0184: bne.un => Label12
IL_0189: ldloc.s 16 (System.Int32)
IL_018B: stloc.s 8 (System.Int32)
IL_018D: Label12
IL_018D: ldloc.s 10 (System.Int32)
IL_018F: ldc.i4.m1
IL_0190: bne.un => Label13
IL_0195: ldloc.s 15 (System.Int32)
IL_0197: ldloc.s 4 (System.Int32)
IL_0199: blt => Label14
IL_019E: ldloc.s 16 (System.Int32)
IL_01A0: stloc.s 10 (System.Int32)
IL_01A2: Label10
IL_01A2: Label11
IL_01A2: Label13
IL_01A2: Label14
IL_01A2: ldloc.s 15 (System.Int32)
IL_01A4: ldc.i4.1
IL_01A5: add
IL_01A6: stloc.s 15 (System.Int32)
IL_01A8: ldloc.s 21 (System.Boolean)
IL_01AA: brtrue => Label15
IL_01AF: ldloc.s 25 (System.Boolean)
IL_01B1: brfalse => Label16
IL_01B6: Label15
IL_01B6: ldloc.s 23 (RoadBaseAI+TrafficLightState)
IL_01B8: ldc.i4.2
IL_01B9: and
IL_01BA: brtrue => Label17
IL_01BF: ldloc.s 16 (System.Int32)
IL_01C1: stloc.s 6 (System.Int32)
IL_01C3: ldloc.s 25 (System.Boolean)
IL_01C5: brfalse => Label18
IL_01CA: ldloc.s 16 (System.Int32)
IL_01CC: stloc.s 5 (System.Int32)
IL_01CE: Label18
IL_01CE: br => Label19
IL_01D3: Label17
IL_01D3: ldloc.s 25 (System.Boolean)
IL_01D5: brfalse => Label20
IL_01DA: ldloc.s 7 (System.Int32)
IL_01DC: ldc.i4.m1
IL_01DD: bne.un => Label21
IL_01E2: ldloc.s 16 (System.Int32)
IL_01E4: stloc.s 7 (System.Int32)
IL_01E6: Label21
IL_01E6: ldloc.s 9 (System.Int32)
IL_01E8: ldc.i4.m1
IL_01E9: bne.un => Label22
IL_01EE: ldloc.s 13 (System.Int32)
IL_01F0: ldloc.3
IL_01F1: blt => Label23
IL_01F6: ldloc.s 16 (System.Int32)
IL_01F8: stloc.s 9 (System.Int32)
IL_01FA: Label19
IL_01FA: Label20
IL_01FA: Label22
IL_01FA: Label23
IL_01FA: ldloc.s 13 (System.Int32)
IL_01FC: ldc.i4.1
IL_01FD: add
IL_01FE: stloc.s 13 (System.Int32)
IL_0200: Label3
IL_0200: Label16
IL_0200: ldloc.s 16 (System.Int32)
IL_0202: ldc.i4.1
IL_0203: add
IL_0204: stloc.s 16 (System.Int32)
IL_0206: Label2
IL_0206: ldloc.s 16 (System.Int32)
IL_0208: ldc.i4.8
IL_0209: blt => Label24
IL_020E: ldloc.s 9 (System.Int32)
IL_0210: ldc.i4.m1
IL_0211: bne.un => Label25
IL_0216: ldloc.s 7 (System.Int32)
IL_0218: stloc.s 9 (System.Int32)
IL_021A: Label25
IL_021A: ldloc.s 10 (System.Int32)
IL_021C: ldc.i4.m1
IL_021D: bne.un => Label26
IL_0222: ldloc.s 8 (System.Int32)
IL_0224: stloc.s 10 (System.Int32)
IL_0226: Label26
IL_0226: ldloc.s 6 (System.Int32)
IL_0228: ldc.i4.m1
IL_0229: beq => Label27
IL_022E: ldloc.s 5 (System.Int32)
IL_0230: ldc.i4.m1
IL_0231: beq => Label28
IL_0236: ldloc.2
IL_0237: ldc.i4.1
IL_0238: bgt => Label29
IL_023D: ldc.i4.m1
IL_023E: stloc.s 9 (System.Int32)
IL_0240: ldc.i4.m1
IL_0241: stloc.s 10 (System.Int32)
IL_0243: ldloc.2
IL_0244: ldc.i4.1
IL_0245: add
IL_0246: stloc.2
IL_0247: Label27
IL_0247: Label28
IL_0247: Label29
IL_0247: ldloc.s 10 (System.Int32)
IL_0249: ldc.i4.m1
IL_024A: beq => Label30
IL_024F: ldloc.s 9 (System.Int32)
IL_0251: ldc.i4.m1
IL_0252: beq => Label31
IL_0257: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_025C: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0261: ldc.i4.3
IL_0262: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0267: brfalse => Label32
IL_026C: ldc.i4.m1
IL_026D: stloc.s 10 (System.Int32)
IL_026F: Label30
IL_026F: Label31
IL_026F: Label32
IL_026F: ldloc.s 9 (System.Int32)
IL_0271: ldc.i4.m1
IL_0272: beq => Label33
IL_0277: ldloc.s 9 (System.Int32)
IL_0279: stloc.s 6 (System.Int32)
IL_027B: Label33
IL_027B: ldloc.s 10 (System.Int32)
IL_027D: ldloc.s 6 (System.Int32)
IL_027F: bne.un => Label34
IL_0284: ldc.i4.m1
IL_0285: stloc.s 6 (System.Int32)
IL_0287: Label34
IL_0287: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_028C: stloc.s 27 (UnityEngine.Vector3)
IL_028E: ldloc.s 10 (System.Int32)
IL_0290: ldc.i4.m1
IL_0291: beq => Label35
IL_0296: ldarg.1
IL_0297: ldloc.s 10 (System.Int32)
IL_0299: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_029E: stloc.s 28 (System.UInt16)
IL_02A0: ldloc.0
IL_02A1: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02A6: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02AB: ldloc.s 28 (System.UInt16)
IL_02AD: ldelema NetSegment
IL_02B2: ldarg.0
IL_02B3: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_02B8: stloc.s 27 (UnityEngine.Vector3)
IL_02BA: ldloc.s 6 (System.Int32)
IL_02BC: ldc.i4.m1
IL_02BD: beq => Label36
IL_02C2: ldarg.1
IL_02C3: ldloc.s 6 (System.Int32)
IL_02C5: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_02CA: stloc.s 28 (System.UInt16)
IL_02CC: ldloc.0
IL_02CD: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02D2: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02D7: ldloc.s 28 (System.UInt16)
IL_02D9: ldelema NetSegment
IL_02DE: ldarg.0
IL_02DF: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_02E4: stloc.s 29 (UnityEngine.Vector3)
IL_02E6: ldloca.s 29 (UnityEngine.Vector3)
IL_02E8: ldfld System.Single UnityEngine.Vector3::x
IL_02ED: ldloca.s 27 (UnityEngine.Vector3)
IL_02EF: ldfld System.Single UnityEngine.Vector3::x
IL_02F4: mul
IL_02F5: ldloca.s 29 (UnityEngine.Vector3)
IL_02F7: ldfld System.Single UnityEngine.Vector3::z
IL_02FC: ldloca.s 27 (UnityEngine.Vector3)
IL_02FE: ldfld System.Single UnityEngine.Vector3::z
IL_0303: mul
IL_0304: add
IL_0305: ldc.r4 -0.5
IL_030A: bge.un => Label37
IL_030F: ldc.i4.m1
IL_0310: stloc.s 6 (System.Int32)
IL_0312: Label36
IL_0312: Label37
IL_0312: ldloc.s 6 (System.Int32)
IL_0314: ldc.i4.m1
IL_0315: bne.un => Label38
IL_031A: ldc.i4.0
IL_031B: stloc.s 30 (System.Int32)
IL_031D: br => Label39
IL_0322: Label45
IL_0322: ldloc.s 30 (System.Int32)
IL_0324: ldloc.s 10 (System.Int32)
IL_0326: beq => Label40
IL_032B: ldloc.s 11 (System.Int32)
IL_032D: ldc.i4.1
IL_032E: ldloc.s 30 (System.Int32)
IL_0330: ldc.i4.s 31
IL_0332: and
IL_0333: shl
IL_0334: and
IL_0335: brfalse => Label41
IL_033A: ldarg.1
IL_033B: ldloc.s 30 (System.Int32)
IL_033D: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0342: stloc.s 28 (System.UInt16)
IL_0344: ldloc.s 28 (System.UInt16)
IL_0346: brfalse => Label42
IL_034B: ldloc.0
IL_034C: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0351: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0356: ldloc.s 28 (System.UInt16)
IL_0358: ldelema NetSegment
IL_035D: ldarg.0
IL_035E: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0363: stloc.s 31 (UnityEngine.Vector3)
IL_0365: ldloca.s 31 (UnityEngine.Vector3)
IL_0367: ldfld System.Single UnityEngine.Vector3::x
IL_036C: ldloca.s 27 (UnityEngine.Vector3)
IL_036E: ldfld System.Single UnityEngine.Vector3::x
IL_0373: mul
IL_0374: ldloca.s 31 (UnityEngine.Vector3)
IL_0376: ldfld System.Single UnityEngine.Vector3::z
IL_037B: ldloca.s 27 (UnityEngine.Vector3)
IL_037D: ldfld System.Single UnityEngine.Vector3::z
IL_0382: mul
IL_0383: add
IL_0384: ldc.r4 -0.5
IL_0389: blt.un => Label43
IL_038E: ldloc.s 30 (System.Int32)
IL_0390: stloc.s 6 (System.Int32)
IL_0392: br => Label44
IL_0397: Label40
IL_0397: Label41
IL_0397: Label42
IL_0397: Label43
IL_0397: ldloc.s 30 (System.Int32)
IL_0399: ldc.i4.1
IL_039A: add
IL_039B: stloc.s 30 (System.Int32)
IL_039D: Label39
IL_039D: ldloc.s 30 (System.Int32)
IL_039F: ldc.i4.8
IL_03A0: blt => Label45
IL_03A5: Label35
IL_03A5: Label38
IL_03A5: Label44
IL_03A5: ldc.i4.m1
IL_03A6: stloc.s 32 (System.Int32)
IL_03A8: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_03AD: stloc.s 33 (UnityEngine.Vector3)
IL_03AF: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_03B4: stloc.s 34 (UnityEngine.Vector3)
IL_03B6: ldloc.s 6 (System.Int32)
IL_03B8: ldc.i4.m1
IL_03B9: beq => Label46
IL_03BE: ldarg.1
IL_03BF: ldloc.s 6 (System.Int32)
IL_03C1: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_03C6: stloc.s 35 (System.UInt16)
IL_03C8: ldloc.0
IL_03C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_03CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_03D3: ldloc.s 35 (System.UInt16)
IL_03D5: ldelema NetSegment
IL_03DA: ldarg.0
IL_03DB: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_03E0: stloc.s 33 (UnityEngine.Vector3)
IL_03E2: ldloc.s 11 (System.Int32)
IL_03E4: ldloc.s 12 (System.Int32)
IL_03E6: and
IL_03E7: ldc.i4.1
IL_03E8: ldloc.s 6 (System.Int32)
IL_03EA: ldc.i4.s 31
IL_03EC: and
IL_03ED: shl
IL_03EE: and
IL_03EF: brfalse => Label47
IL_03F4: ldc.i4.0
IL_03F5: stloc.s 36 (System.Int32)
IL_03F7: br => Label48
IL_03FC: Label59
IL_03FC: ldloc.s 36 (System.Int32)
IL_03FE: ldloc.s 6 (System.Int32)
IL_0400: beq => Label49
IL_0405: ldloc.s 36 (System.Int32)
IL_0407: ldloc.s 10 (System.Int32)
IL_0409: beq => Label50
IL_040E: ldloc.s 11 (System.Int32)
IL_0410: ldloc.s 12 (System.Int32)
IL_0412: and
IL_0413: ldc.i4.1
IL_0414: ldloc.s 36 (System.Int32)
IL_0416: ldc.i4.s 31
IL_0418: and
IL_0419: shl
IL_041A: and
IL_041B: brfalse => Label51
IL_0420: ldarg.1
IL_0421: ldloc.s 36 (System.Int32)
IL_0423: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0428: stloc.s 35 (System.UInt16)
IL_042A: ldloc.s 35 (System.UInt16)
IL_042C: brfalse => Label52
IL_0431: ldloc.0
IL_0432: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0437: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_043C: ldloc.s 35 (System.UInt16)
IL_043E: ldelema NetSegment
IL_0443: ldarg.0
IL_0444: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_0449: stloc.s 34 (UnityEngine.Vector3)
IL_044B: ldloc.s 10 (System.Int32)
IL_044D: ldc.i4.m1
IL_044E: beq => Label53
IL_0453: ldloca.s 34 (UnityEngine.Vector3)
IL_0455: ldfld System.Single UnityEngine.Vector3::x
IL_045A: ldloca.s 27 (UnityEngine.Vector3)
IL_045C: ldfld System.Single UnityEngine.Vector3::x
IL_0461: mul
IL_0462: ldloca.s 34 (UnityEngine.Vector3)
IL_0464: ldfld System.Single UnityEngine.Vector3::z
IL_0469: ldloca.s 27 (UnityEngine.Vector3)
IL_046B: ldfld System.Single UnityEngine.Vector3::z
IL_0470: mul
IL_0471: add
IL_0472: ldc.r4 -0.5
IL_0477: blt.un => Label54
IL_047C: Label53
IL_047C: ldloc.s 14 (System.Int32)
IL_047E: ldc.i4.2
IL_047F: bne.un => Label55
IL_0484: ldloc.s 36 (System.Int32)
IL_0486: stloc.s 32 (System.Int32)
IL_0488: br => Label56
IL_048D: Label55
IL_048D: ldloca.s 34 (UnityEngine.Vector3)
IL_048F: ldfld System.Single UnityEngine.Vector3::x
IL_0494: ldloca.s 33 (UnityEngine.Vector3)
IL_0496: ldfld System.Single UnityEngine.Vector3::x
IL_049B: mul
IL_049C: ldloca.s 34 (UnityEngine.Vector3)
IL_049E: ldfld System.Single UnityEngine.Vector3::z
IL_04A3: ldloca.s 33 (UnityEngine.Vector3)
IL_04A5: ldfld System.Single UnityEngine.Vector3::z
IL_04AA: mul
IL_04AB: add
IL_04AC: ldc.r4 -0.9396926
IL_04B1: bge.un => Label57
IL_04B6: ldloc.s 36 (System.Int32)
IL_04B8: stloc.s 32 (System.Int32)
IL_04BA: br => Label58
IL_04BF: Label49
IL_04BF: Label50
IL_04BF: Label51
IL_04BF: Label52
IL_04BF: Label54
IL_04BF: Label57
IL_04BF: ldloc.s 36 (System.Int32)
IL_04C1: ldc.i4.1
IL_04C2: add
IL_04C3: stloc.s 36 (System.Int32)
IL_04C5: Label48
IL_04C5: ldloc.s 36 (System.Int32)
IL_04C7: ldc.i4.8
IL_04C8: blt => Label59
IL_04CD: Label46
IL_04CD: Label47
IL_04CD: Label56
IL_04CD: Label58
IL_04CD: ldc.i4.0
IL_04CE: stloc.s 37 (System.Int32)
IL_04D0: br => Label60
IL_04D5: Label79
IL_04D5: ldarg.1
IL_04D6: ldloc.s 37 (System.Int32)
IL_04D8: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_04DD: stloc.s 38 (System.UInt16)
IL_04DF: ldloc.s 38 (System.UInt16)
IL_04E1: brfalse => Label61
IL_04E6: ldarg.0
IL_04E7: ldloc.0
IL_04E8: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_04ED: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_04F2: ldloc.s 38 (System.UInt16)
IL_04F4: ldelema NetSegment
IL_04F9: ldloc.1
IL_04FA: ldc.i4 256
IL_04FF: sub
IL_0500: ldloca.s 39 (RoadBaseAI+TrafficLightState)
IL_0502: ldloca.s 40 (RoadBaseAI+TrafficLightState)
IL_0504: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_0509: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_050B: ldc.i4.s -2
IL_050D: and
IL_050E: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0510: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0512: ldc.i4.s -2
IL_0514: and
IL_0515: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0517: ldloc.s 6 (System.Int32)
IL_0519: ldloc.s 37 (System.Int32)
IL_051B: beq => Label62
IL_0520: ldloc.s 32 (System.Int32)
IL_0522: ldloc.s 37 (System.Int32)
IL_0524: bne.un => Label63
IL_0529: Label62
IL_0529: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_052B: ldc.i4.2
IL_052C: and
IL_052D: brfalse => Label64
IL_0532: ldc.i4.1
IL_0533: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0535: ldc.i4.0
IL_0536: stloc.2
IL_0537: ldloc.3
IL_0538: ldc.i4.1
IL_0539: add
IL_053A: dup
IL_053B: stloc.3
IL_053C: ldloc.s 13 (System.Int32)
IL_053E: blt => Label65
IL_0543: ldc.i4.0
IL_0544: stloc.3
IL_0545: Label64
IL_0545: Label65
IL_0545: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0547: ldc.i4.2
IL_0548: and
IL_0549: brtrue => Label66
IL_054E: ldc.i4.3
IL_054F: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0551: Label66
IL_0551: br => Label67
IL_0556: Label63
IL_0556: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0558: ldc.i4.2
IL_0559: and
IL_055A: brtrue => Label68
IL_055F: ldc.i4.3
IL_0560: stloc.s 39 (RoadBaseAI+TrafficLightState)
IL_0562: Label68
IL_0562: ldloc.0
IL_0563: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0568: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_056D: ldloc.s 38 (System.UInt16)
IL_056F: ldelema NetSegment
IL_0574: ldarg.0
IL_0575: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16
nodeID)
IL_057A: stloc.s 41 (UnityEngine.Vector3)
IL_057C: ldloc.s 12 (System.Int32)
IL_057E: ldc.i4.1
IL_057F: ldloc.s 37 (System.Int32)
IL_0581: ldc.i4.s 31
IL_0583: and
IL_0584: shl
IL_0585: and
IL_0586: brfalse => Label69
IL_058B: ldloc.s 10 (System.Int32)
IL_058D: ldloc.s 37 (System.Int32)
IL_058F: beq => Label70
IL_0594: ldloc.s 6 (System.Int32)
IL_0596: ldc.i4.m1
IL_0597: beq => Label71
IL_059C: ldloca.s 41 (UnityEngine.Vector3)
IL_059E: ldfld System.Single UnityEngine.Vector3::x
IL_05A3: ldloca.s 33 (UnityEngine.Vector3)
IL_05A5: ldfld System.Single UnityEngine.Vector3::x
IL_05AA: mul
IL_05AB: ldloca.s 41 (UnityEngine.Vector3)
IL_05AD: ldfld System.Single UnityEngine.Vector3::z
IL_05B2: ldloca.s 33 (UnityEngine.Vector3)
IL_05B4: ldfld System.Single UnityEngine.Vector3::z
IL_05B9: mul
IL_05BA: add
IL_05BB: ldc.r4 -0.5
IL_05C0: blt => Label72
IL_05C5: Label71
IL_05C5: ldloc.s 32 (System.Int32)
IL_05C7: ldc.i4.m1
IL_05C8: beq => Label73
IL_05CD: ldloca.s 41 (UnityEngine.Vector3)
IL_05CF: ldfld System.Single UnityEngine.Vector3::x
IL_05D4: ldloca.s 34 (UnityEngine.Vector3)
IL_05D6: ldfld System.Single UnityEngine.Vector3::x
IL_05DB: mul
IL_05DC: ldloca.s 41 (UnityEngine.Vector3)
IL_05DE: ldfld System.Single UnityEngine.Vector3::z
IL_05E3: ldloca.s 34 (UnityEngine.Vector3)
IL_05E5: ldfld System.Single UnityEngine.Vector3::z
IL_05EA: mul
IL_05EB: add
IL_05EC: ldc.r4 -0.5
IL_05F1: bge.un => Label74
IL_05F6: Label72
IL_05F6: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_05F8: ldc.i4.2
IL_05F9: and
IL_05FA: brtrue => Label75
IL_05FF: ldc.i4.3
IL_0600: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0602: Label75
IL_0602: br => Label76
IL_0607: Label69
IL_0607: Label70
IL_0607: Label73
IL_0607: Label74
IL_0607: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0609: ldc.i4.2
IL_060A: and
IL_060B: brfalse => Label77
IL_0610: ldc.i4.1
IL_0611: stloc.s 40 (RoadBaseAI+TrafficLightState)
IL_0613: ldloc.s 4 (System.Int32)
IL_0615: ldc.i4.1
IL_0616: add
IL_0617: dup
IL_0618: stloc.s 4 (System.Int32)
IL_061A: ldloc.s 15 (System.Int32)
IL_061C: blt => Label78
IL_0621: ldc.i4.0
IL_0622: stloc.s 4 (System.Int32)
IL_0624: Label67
IL_0624: Label76
IL_0624: Label77
IL_0624: Label78
IL_0624: ldarg.0
IL_0625: ldloc.0
IL_0626: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_062B: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0630: ldloc.s 38 (System.UInt16)
IL_0632: ldelema NetSegment
IL_0637: ldloc.1
IL_0638: ldloc.s 39 (RoadBaseAI+TrafficLightState)
IL_063A: ldloc.s 40 (RoadBaseAI+TrafficLightState)
IL_063C: ldc.i4.0
IL_063D: ldc.i4.0
IL_063E: 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_0643: Label61
IL_0643: ldloc.s 37 (System.Int32)
IL_0645: ldc.i4.1
IL_0646: add
IL_0647: stloc.s 37 (System.Int32)
IL_0649: Label60
IL_0649: ldloc.s 37 (System.Int32)
IL_064B: ldc.i4.8
IL_064C: blt => Label79
IL_0651: ldarg.1
IL_0652: ldloc.s 4 (System.Int32)
IL_0654: ldc.i4.5
IL_0655: shl
IL_0656: ldloc.3
IL_0657: ldc.i4.2
IL_0658: shl
IL_0659: or
IL_065A: ldloc.2
IL_065B: or
IL_065C: conv.u1
IL_065D: stfld System.Byte NetNode::m_maxWaitTime
IL_0662: // end original
IL_0662: Label0
IL_0662: ret
DONE

### Patch: static System.Void RoadBaseAI::GetTrafficLightNodeState(System.UInt16


nodeID, NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData, Flags&
flags, UnityEngine.Color& color)
### Replacement: static System.Void
RoadBaseAI::RoadBaseAI.GetTrafficLightNodeState_Patch1(System.UInt16 nodeID,
NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData, Flags& 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.UInt1
6 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<SimulationManager>::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/Problem
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 Problem NetNode::m_problems
IL_000E: ldc.i8 72057602627866624
IL_0017: call static Problem Notification::RemoveProblems(Problem problems1,
Problem problems2)
IL_001C: stloc.0
IL_001D: ldc.i4.0
IL_001E: stloc.1
IL_001F: ldc.i4.0
IL_0020: stloc.2
IL_0021: ldarg.2
IL_0022: ldarg.1
IL_0023: ldc.i4.0
IL_0024: ldc.i4.s 33
IL_0026: ldc.i4.1
IL_0027: ldc.i4.1
IL_0028: ldloca.s 1 (System.Int32)
IL_002A: ldloca.s 2 (System.Int32)
IL_002C: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, LaneType laneTypes, VehicleType vehicleTypes,
System.Boolean onePerSegment, System.Int32& forward, System.Int32& backward)
IL_0031: ldarg.2
IL_0032: ldfld Flags NetNode::m_flags
IL_0037: ldc.i4 1024
IL_003C: and
IL_003D: brfalse => Label0
IL_0042: ldarg.2
IL_0043: ldfld System.UInt16 NetNode::m_building
IL_0048: brfalse => Label1
IL_004D: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0052: stloc.3
IL_0053: ldloc.1
IL_0054: brfalse => Label2
IL_0059: ldloc.3
IL_005A: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_005F: ldfld Building[] Array16`1<Building>::m_buffer
IL_0064: ldarg.2
IL_0065: ldfld System.UInt16 NetNode::m_building
IL_006A: ldelema Building
IL_006F: dup
IL_0070: ldfld Flags Building::m_flags
IL_0075: ldc.i4 128
IL_007A: or
IL_007B: stfld Flags Building::m_flags
IL_0080: br => Label3
IL_0085: Label2
IL_0085: ldloc.3
IL_0086: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008B: ldfld Building[] Array16`1<Building>::m_buffer
IL_0090: ldarg.2
IL_0091: ldfld System.UInt16 NetNode::m_building
IL_0096: ldelema Building
IL_009B: dup
IL_009C: ldfld Flags Building::m_flags
IL_00A1: ldc.i4 -129
IL_00A6: and
IL_00A7: stfld Flags Building::m_flags
IL_00AC: Label3
IL_00AC: ldloc.2
IL_00AD: brfalse => Label4
IL_00B2: ldloc.3
IL_00B3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00B8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00BD: ldarg.2
IL_00BE: ldfld System.UInt16 NetNode::m_building
IL_00C3: ldelema Building
IL_00C8: dup
IL_00C9: ldfld Flags Building::m_flags
IL_00CE: ldc.i4.s 64
IL_00D0: or
IL_00D1: stfld Flags Building::m_flags
IL_00D6: br => Label5
IL_00DB: Label4
IL_00DB: ldloc.3
IL_00DC: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00E1: ldfld Building[] Array16`1<Building>::m_buffer
IL_00E6: ldarg.2
IL_00E7: ldfld System.UInt16 NetNode::m_building
IL_00EC: ldelema Building
IL_00F1: dup
IL_00F2: ldfld Flags Building::m_flags
IL_00F7: ldc.i4.s -65
IL_00F9: and
IL_00FA: stfld Flags Building::m_flags
IL_00FF: Label5
IL_00FF: br => Label6
IL_0104: Label0
IL_0104: Label1
IL_0104: ldloc.1
IL_0105: brfalse => Label7
IL_010A: ldloc.2
IL_010B: brfalse => Label8
IL_0110: Label7
IL_0110: ldloc.1
IL_0111: brtrue => Label9
IL_0116: ldloc.2
IL_0117: brfalse => Label10
IL_011C: Label8
IL_011C: ldloc.0
IL_011D: ldc.i4 4096
IL_0122: conv.i8
IL_0123: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0128: stloc.0
IL_0129: Label6
IL_0129: Label9
IL_0129: Label10
IL_0129: ldloc.1
IL_012A: ldc.i4.1
IL_012B: bne.un => Label11
IL_0130: ldarg.2
IL_0131: dup
IL_0132: ldfld Flags NetNode::m_flags
IL_0137: ldc.i4 4194304
IL_013C: or
IL_013D: stfld Flags NetNode::m_flags
IL_0142: br => Label12
IL_0147: Label11
IL_0147: ldarg.2
IL_0148: dup
IL_0149: ldfld Flags NetNode::m_flags
IL_014E: ldc.i4 -4194305
IL_0153: and
IL_0154: stfld Flags NetNode::m_flags
IL_0159: Label12
IL_0159: ldloc.2
IL_015A: ldc.i4.1
IL_015B: bne.un => Label13
IL_0160: ldarg.2
IL_0161: dup
IL_0162: ldfld Flags NetNode::m_flags
IL_0167: ldc.i4 16777216
IL_016C: or
IL_016D: stfld Flags NetNode::m_flags
IL_0172: br => Label14
IL_0177: Label13
IL_0177: ldarg.2
IL_0178: dup
IL_0179: ldfld Flags NetNode::m_flags
IL_017E: ldc.i4 -16777217
IL_0183: and
IL_0184: stfld Flags NetNode::m_flags
IL_0189: Label14
IL_0189: ldarg.2
IL_018A: ldfld Flags NetNode::m_flags
IL_018F: ldc.i4 262144
IL_0194: and
IL_0195: brtrue => Label15
IL_019A: ldc.i4.0
IL_019B: stloc.s 4 (System.Int32)
IL_019D: ldc.i4.0
IL_019E: stloc.1
IL_019F: ldc.i4.0
IL_01A0: stloc.2
IL_01A1: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_01A6: stloc.s 5 (NetManager)
IL_01A8: ldc.i4.0
IL_01A9: stloc.s 6 (System.Int32)
IL_01AB: br => Label16
IL_01B0: Label24
IL_01B0: ldarg.2
IL_01B1: ldloc.s 6 (System.Int32)
IL_01B3: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_01B8: stloc.s 7 (System.UInt16)
IL_01BA: ldloc.s 7 (System.UInt16)
IL_01BC: brfalse => Label17
IL_01C1: ldc.i4.0
IL_01C2: stloc.s 8 (System.Int32)
IL_01C4: ldc.i4.0
IL_01C5: stloc.s 9 (System.Int32)
IL_01C7: ldloc.s 5 (NetManager)
IL_01C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01D3: ldloc.s 7 (System.UInt16)
IL_01D5: ldelema NetSegment
IL_01DA: ldloc.s 7 (System.UInt16)
IL_01DC: ldc.i4.s 33
IL_01DE: ldc.i4.s 64
IL_01E0: ldloca.s 8 (System.Int32)
IL_01E2: ldloca.s 9 (System.Int32)
IL_01E4: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_01E9: ldloc.s 8 (System.Int32)
IL_01EB: brtrue => Label18
IL_01F0: ldloc.s 9 (System.Int32)
IL_01F2: brfalse => Label19
IL_01F7: Label18
IL_01F7: ldloc.s 4 (System.Int32)
IL_01F9: ldc.i4.1
IL_01FA: add
IL_01FB: stloc.s 4 (System.Int32)
IL_01FD: ldloc.s 8 (System.Int32)
IL_01FF: brfalse => Label20
IL_0204: ldc.i4.1
IL_0205: stloc.s 8 (System.Int32)
IL_0207: Label20
IL_0207: ldloc.s 9 (System.Int32)
IL_0209: brfalse => Label21
IL_020E: ldc.i4.1
IL_020F: stloc.s 9 (System.Int32)
IL_0211: Label21
IL_0211: ldloc.s 5 (NetManager)
IL_0213: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0218: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_021D: ldloc.s 7 (System.UInt16)
IL_021F: ldelema NetSegment
IL_0224: ldfld System.UInt16 NetSegment::m_endNode
IL_0229: ldarg.1
IL_022A: bne.un => Label22
IL_022F: ldloc.1
IL_0230: ldloc.s 9 (System.Int32)
IL_0232: add
IL_0233: stloc.1
IL_0234: ldloc.2
IL_0235: ldloc.s 8 (System.Int32)
IL_0237: add
IL_0238: stloc.2
IL_0239: br => Label23
IL_023E: Label22
IL_023E: ldloc.1
IL_023F: ldloc.s 8 (System.Int32)
IL_0241: add
IL_0242: stloc.1
IL_0243: ldloc.2
IL_0244: ldloc.s 9 (System.Int32)
IL_0246: add
IL_0247: stloc.2
IL_0248: Label17
IL_0248: Label19
IL_0248: Label23
IL_0248: ldloc.s 6 (System.Int32)
IL_024A: ldc.i4.1
IL_024B: add
IL_024C: stloc.s 6 (System.Int32)
IL_024E: Label16
IL_024E: ldloc.s 6 (System.Int32)
IL_0250: ldc.i4.8
IL_0251: blt => Label24
IL_0256: ldloc.1
IL_0257: brfalse => Label25
IL_025C: ldloc.2
IL_025D: brfalse => Label26
IL_0262: Label25
IL_0262: ldloc.1
IL_0263: brtrue => Label27
IL_0268: ldloc.2
IL_0269: brtrue => Label28
IL_026E: Label27
IL_026E: ldloc.s 4 (System.Int32)
IL_0270: ldc.i4.1
IL_0271: bne.un => Label29
IL_0276: Label26
IL_0276: Label28
IL_0276: ldloc.0
IL_0277: ldc.i8 8589934592
IL_0280: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0285: stloc.0
IL_0286: Label29
IL_0286: ldc.i4.0
IL_0287: stloc.s 4 (System.Int32)
IL_0289: ldc.i4.0
IL_028A: stloc.1
IL_028B: ldc.i4.0
IL_028C: stloc.2
IL_028D: ldc.i4.0
IL_028E: stloc.s 10 (System.Int32)
IL_0290: br => Label30
IL_0295: Label38
IL_0295: ldarg.2
IL_0296: ldloc.s 10 (System.Int32)
IL_0298: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_029D: stloc.s 11 (System.UInt16)
IL_029F: ldloc.s 11 (System.UInt16)
IL_02A1: brfalse => Label31
IL_02A6: ldc.i4.0
IL_02A7: stloc.s 12 (System.Int32)
IL_02A9: ldc.i4.0
IL_02AA: stloc.s 13 (System.Int32)
IL_02AC: ldloc.s 5 (NetManager)
IL_02AE: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02B3: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02B8: ldloc.s 11 (System.UInt16)
IL_02BA: ldelema NetSegment
IL_02BF: ldloc.s 11 (System.UInt16)
IL_02C1: ldc.i4.s 33
IL_02C3: ldc.i4 65536
IL_02C8: ldloca.s 12 (System.Int32)
IL_02CA: ldloca.s 13 (System.Int32)
IL_02CC: call System.Void NetSegment::CountLanes(System.UInt16 segmentID,
LaneType laneTypes, VehicleType vehicleTypes, System.Int32& forward, System.Int32&
backward)
IL_02D1: ldloc.s 12 (System.Int32)
IL_02D3: brtrue => Label32
IL_02D8: ldloc.s 13 (System.Int32)
IL_02DA: brfalse => Label33
IL_02DF: Label32
IL_02DF: ldloc.s 4 (System.Int32)
IL_02E1: ldc.i4.1
IL_02E2: add
IL_02E3: stloc.s 4 (System.Int32)
IL_02E5: ldloc.s 12 (System.Int32)
IL_02E7: brfalse => Label34
IL_02EC: ldc.i4.1
IL_02ED: stloc.s 12 (System.Int32)
IL_02EF: Label34
IL_02EF: ldloc.s 13 (System.Int32)
IL_02F1: brfalse => Label35
IL_02F6: ldc.i4.1
IL_02F7: stloc.s 13 (System.Int32)
IL_02F9: Label35
IL_02F9: ldloc.s 5 (NetManager)
IL_02FB: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0300: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0305: ldloc.s 11 (System.UInt16)
IL_0307: ldelema NetSegment
IL_030C: ldfld System.UInt16 NetSegment::m_endNode
IL_0311: ldarg.1
IL_0312: bne.un => Label36
IL_0317: ldloc.1
IL_0318: ldloc.s 13 (System.Int32)
IL_031A: add
IL_031B: stloc.1
IL_031C: ldloc.2
IL_031D: ldloc.s 12 (System.Int32)
IL_031F: add
IL_0320: stloc.2
IL_0321: br => Label37
IL_0326: Label36
IL_0326: ldloc.1
IL_0327: ldloc.s 12 (System.Int32)
IL_0329: add
IL_032A: stloc.1
IL_032B: ldloc.2
IL_032C: ldloc.s 13 (System.Int32)
IL_032E: add
IL_032F: stloc.2
IL_0330: Label31
IL_0330: Label33
IL_0330: Label37
IL_0330: ldloc.s 10 (System.Int32)
IL_0332: ldc.i4.1
IL_0333: add
IL_0334: stloc.s 10 (System.Int32)
IL_0336: Label30
IL_0336: ldloc.s 10 (System.Int32)
IL_0338: ldc.i4.8
IL_0339: blt => Label38
IL_033E: ldloc.1
IL_033F: brfalse => Label39
IL_0344: ldloc.2
IL_0345: brfalse => Label40
IL_034A: Label39
IL_034A: ldloc.1
IL_034B: brtrue => Label41
IL_0350: ldloc.2
IL_0351: brtrue => Label42
IL_0356: Label41
IL_0356: ldloc.s 4 (System.Int32)
IL_0358: ldc.i4.1
IL_0359: bne.un => Label43
IL_035E: Label40
IL_035E: Label42
IL_035E: ldloc.0
IL_035F: ldc.i8 72057594037927936
IL_0368: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_036D: stloc.0
IL_036E: Label15
IL_036E: Label43
IL_036E: ldarg.2
IL_036F: ldloc.0
IL_0370: stfld Problem NetNode::m_problems
IL_0375: // end original
IL_0375: ldarg 1
IL_0379: ldarg 2
IL_037D: call static System.Void
TrafficManager.Patch._RoadBaseAI.UpdateNodePatch::Postfix(System.UInt16 nodeID,
NetNode& data)
IL_0382: 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<NetManager>::get_instance()
IL_0005: stloc.0
IL_0006: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::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<NetNode> NetManager::m_nodes
IL_0176: ldfld NetNode[] Array16`1<NetNode>::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: ldarg.2
IL_0192: ldfld UnityEngine.Vector3 NetSegment::m_endDirection
IL_0197: call static UnityEngine.Vector3
UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a)
IL_019C: ldloca.s 12 (System.Int32)
IL_019E: ldloca.s 13 (System.Int32)
IL_01A0: ldloca.s 14 (System.Int32)
IL_01A2: ldloca.s 15 (System.Int32)
IL_01A4: ldloca.s 16 (System.Int32)
IL_01A6: ldloca.s 17 (System.Int32)
IL_01A8: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, Direction directions, LaneType laneTypes, VehicleType
vehicleTypes, UnityEngine.Vector3 direction, System.Int32& left, System.Int32&
forward, System.Int32& right, System.Int32& left2, System.Int32& forward2,
System.Int32& right2)
IL_01AD: ldloc.0
IL_01AE: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_01B3: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_01B8: ldarg.2
IL_01B9: ldfld System.UInt16 NetSegment::m_endNode
IL_01BE: ldelema NetNode
IL_01C3: ldfld Flags NetNode::m_flags
IL_01C8: ldc.i4 1136
IL_01CD: and
IL_01CE: brfalse => Label2
IL_01D3: ldloc.s 12 (System.Int32)
IL_01D5: ldloc.s 13 (System.Int32)
IL_01D7: add
IL_01D8: ldloc.s 14 (System.Int32)
IL_01DA: add
IL_01DB: brtrue => Label3
IL_01E0: ldc.i4.1
IL_01E1: stloc.s 19 (System.Boolean)
IL_01E3: br => Label4
IL_01E8: Label3
IL_01E8: ldc.i4.1
IL_01E9: stloc.s 18 (System.Boolean)
IL_01EB: Label2
IL_01EB: Label4
IL_01EB: ldc.i4.0
IL_01EC: stloc.s 20 (System.Int32)
IL_01EE: ldc.i4.0
IL_01EF: stloc.s 21 (System.Int32)
IL_01F1: ldc.i4.0
IL_01F2: stloc.s 22 (System.Int32)
IL_01F4: ldc.i4.0
IL_01F5: stloc.s 23 (System.Int32)
IL_01F7: ldc.i4.0
IL_01F8: stloc.s 24 (System.Int32)
IL_01FA: ldc.i4.0
IL_01FB: stloc.s 25 (System.Int32)
IL_01FD: ldc.i4.0
IL_01FE: stloc.s 26 (System.Boolean)
IL_0200: ldc.i4.0
IL_0201: stloc.s 27 (System.Boolean)
IL_0203: ldloc.0
IL_0204: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0209: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_020E: ldarg.2
IL_020F: ldfld System.UInt16 NetSegment::m_startNode
IL_0214: ldelema NetNode
IL_0219: ldarg.2
IL_021A: ldfld System.UInt16 NetSegment::m_startNode
IL_021F: ldarg.1
IL_0220: ldc.i4.1
IL_0221: ldc.i4.s 33
IL_0223: ldc.i4.1
IL_0224: ldarg.2
IL_0225: ldfld UnityEngine.Vector3 NetSegment::m_startDirection
IL_022A: call static UnityEngine.Vector3
UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a)
IL_022F: ldloca.s 20 (System.Int32)
IL_0231: ldloca.s 21 (System.Int32)
IL_0233: ldloca.s 22 (System.Int32)
IL_0235: ldloca.s 23 (System.Int32)
IL_0237: ldloca.s 24 (System.Int32)
IL_0239: ldloca.s 25 (System.Int32)
IL_023B: call System.Void NetNode::CountLanes(System.UInt16 nodeID,
System.UInt16 ignoreSegment, Direction directions, LaneType laneTypes, VehicleType
vehicleTypes, UnityEngine.Vector3 direction, System.Int32& left, System.Int32&
forward, System.Int32& right, System.Int32& left2, System.Int32& forward2,
System.Int32& right2)
IL_0240: ldloc.0
IL_0241: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0246: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_024B: ldarg.2
IL_024C: ldfld System.UInt16 NetSegment::m_startNode
IL_0251: ldelema NetNode
IL_0256: ldfld Flags NetNode::m_flags
IL_025B: ldc.i4 1136
IL_0260: and
IL_0261: brfalse => Label5
IL_0266: ldloc.s 20 (System.Int32)
IL_0268: ldloc.s 21 (System.Int32)
IL_026A: add
IL_026B: ldloc.s 22 (System.Int32)
IL_026D: add
IL_026E: brtrue => Label6
IL_0273: ldc.i4.1
IL_0274: stloc.s 27 (System.Boolean)
IL_0276: br => Label7
IL_027B: Label6
IL_027B: ldc.i4.1
IL_027C: stloc.s 26 (System.Boolean)
IL_027E: Label5
IL_027E: Label7
IL_027E: ldc.i4.0
IL_027F: stloc.s 28 (NetLane+Flags)
IL_0281: ldloc.s 15 (System.Int32)
IL_0283: brfalse => Label8
IL_0288: ldloc.s 12 (System.Int32)
IL_028A: brtrue => Label9
IL_028F: ldloc.s 28 (NetLane+Flags)
IL_0291: ldarg.2
IL_0292: ldfld Flags NetSegment::m_flags
IL_0297: ldc.i4.s 16
IL_0299: and
IL_029A: brfalse => Label10
IL_029F: ldc.i4 4096
IL_02A4: br => Label11
IL_02A9: Label10
IL_02A9: ldc.i4 16384
IL_02AE: Label11
IL_02AE: or
IL_02AF: stloc.s 28 (NetLane+Flags)
IL_02B1: Label8
IL_02B1: Label9
IL_02B1: ldloc.s 17 (System.Int32)
IL_02B3: brfalse => Label12
IL_02B8: ldloc.s 14 (System.Int32)
IL_02BA: brtrue => Label13
IL_02BF: ldloc.s 28 (NetLane+Flags)
IL_02C1: ldarg.2
IL_02C2: ldfld Flags NetSegment::m_flags
IL_02C7: ldc.i4.s 16
IL_02C9: and
IL_02CA: brfalse => Label14
IL_02CF: ldc.i4 8192
IL_02D4: br => Label15
IL_02D9: Label14
IL_02D9: ldc.i4 32768
IL_02DE: Label15
IL_02DE: or
IL_02DF: stloc.s 28 (NetLane+Flags)
IL_02E1: Label12
IL_02E1: Label13
IL_02E1: ldloc.s 23 (System.Int32)
IL_02E3: brfalse => Label16
IL_02E8: ldloc.s 20 (System.Int32)
IL_02EA: brtrue => Label17
IL_02EF: ldloc.s 28 (NetLane+Flags)
IL_02F1: ldarg.2
IL_02F2: ldfld Flags NetSegment::m_flags
IL_02F7: ldc.i4.s 16
IL_02F9: and
IL_02FA: brfalse => Label18
IL_02FF: ldc.i4 16384
IL_0304: br => Label19
IL_0309: Label18
IL_0309: ldc.i4 4096
IL_030E: Label19
IL_030E: or
IL_030F: stloc.s 28 (NetLane+Flags)
IL_0311: Label16
IL_0311: Label17
IL_0311: ldloc.s 25 (System.Int32)
IL_0313: brfalse => Label20
IL_0318: ldloc.s 22 (System.Int32)
IL_031A: brtrue => Label21
IL_031F: ldloc.s 28 (NetLane+Flags)
IL_0321: ldarg.2
IL_0322: ldfld Flags NetSegment::m_flags
IL_0327: ldc.i4.s 16
IL_0329: and
IL_032A: brfalse => Label22
IL_032F: ldc.i4 32768
IL_0334: br => Label23
IL_0339: Label22
IL_0339: ldc.i4 8192
IL_033E: Label23
IL_033E: or
IL_033F: stloc.s 28 (NetLane+Flags)
IL_0341: Label20
IL_0341: Label21
IL_0341: ldarg.2
IL_0342: ldfld Flags NetSegment::m_flags
IL_0347: ldc.i4 1073741824
IL_034C: and
IL_034D: brfalse => Label24
IL_0352: ldloc.s 28 (NetLane+Flags)
IL_0354: ldarg.2
IL_0355: ldfld Flags NetSegment::m_flags
IL_035A: ldc.i4.s 16
IL_035C: and
IL_035D: brfalse => Label25
IL_0362: ldc.i4 2048
IL_0367: br => Label26
IL_036C: Label25
IL_036C: ldc.i4 1024
IL_0371: Label26
IL_0371: or
IL_0372: stloc.s 28 (NetLane+Flags)
IL_0374: Label24
IL_0374: ldarg.2
IL_0375: ldfld Flags NetSegment::m_flags
IL_037A: ldc.i4 -2147483648
IL_037F: and
IL_0380: brfalse => Label27
IL_0385: ldloc.s 28 (NetLane+Flags)
IL_0387: ldarg.2
IL_0388: ldfld Flags NetSegment::m_flags
IL_038D: ldc.i4.s 16
IL_038F: and
IL_0390: brfalse => Label28
IL_0395: ldc.i4 1024
IL_039A: br => Label29
IL_039F: Label28
IL_039F: ldc.i4 2048
IL_03A4: Label29
IL_03A4: or
IL_03A5: stloc.s 28 (NetLane+Flags)
IL_03A7: Label27
IL_03A7: ldc.r4 0
IL_03AC: stloc.s 29 (System.Single)
IL_03AE: ldc.r4 0
IL_03B3: stloc.s 30 (System.Single)
IL_03B5: ldc.i4.0
IL_03B6: stloc.s 31 (System.UInt32)
IL_03B8: ldarg.2
IL_03B9: ldfld System.UInt32 NetSegment::m_lanes
IL_03BE: stloc.s 32 (System.UInt32)
IL_03C0: ldc.i4.0
IL_03C1: stloc.s 33 (System.Int32)
IL_03C3: br => Label30
IL_03C8: Label89
IL_03C8: ldloc.s 32 (System.UInt32)
IL_03CA: brtrue => Label31
IL_03CF: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_03D4: ldloca.s 32 (System.UInt32)
IL_03D6: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_03DB: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_03E0: ldarg.1
IL_03E1: ldc.i4.1
IL_03E2: callvirt System.Boolean NetManager::CreateLanes(System.UInt32&
firstLane, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segment,
System.Int32 count)
IL_03E7: brfalse => Label32
IL_03EC: ldloc.s 31 (System.UInt32)
IL_03EE: brfalse => Label33
IL_03F3: ldloc.0
IL_03F4: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_03F9: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_03FE: ldloc.s 31 (System.UInt32)
IL_0400: conv.u
IL_0401: ldelema NetLane
IL_0406: ldloc.s 32 (System.UInt32)
IL_0408: stfld System.UInt32 NetLane::m_nextLane
IL_040D: br => Label34
IL_0412: Label33
IL_0412: ldarg.2
IL_0413: ldloc.s 32 (System.UInt32)
IL_0415: stfld System.UInt32 NetSegment::m_lanes
IL_041A: Label34
IL_041A: br => Label35
IL_041F: Label32
IL_041F: br => Label36
IL_0424: Label31
IL_0424: Label35
IL_0424: ldarg.0
IL_0425: ldfld NetInfo NetAI::m_info
IL_042A: ldfld Lane[] NetInfo::m_lanes
IL_042F: ldloc.s 33 (System.Int32)
IL_0431: ldelem.ref
IL_0432: stloc.s 34 (NetInfo+Lane)
IL_0434: ldloc.s 34 (NetInfo+Lane)
IL_0436: ldfld System.Single Lane::m_position
IL_043B: ldarg.0
IL_043C: ldfld NetInfo NetAI::m_info
IL_0441: ldfld System.Single NetInfo::m_halfWidth
IL_0446: ldc.r4 2
IL_044B: mul
IL_044C: div
IL_044D: ldc.r4 0.5
IL_0452: add
IL_0453: stloc.s 35 (System.Single)
IL_0455: ldarg.2
IL_0456: ldfld Flags NetSegment::m_flags
IL_045B: ldc.i4.s 16
IL_045D: and
IL_045E: brfalse => Label37
IL_0463: ldc.r4 1
IL_0468: ldloc.s 35 (System.Single)
IL_046A: sub
IL_046B: stloc.s 35 (System.Single)
IL_046D: Label37
IL_046D: ldloc.2
IL_046E: ldloc.3
IL_046F: ldloc.2
IL_0470: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0475: ldloc.s 35 (System.Single)
IL_0477: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_047C: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0481: stloc.s 36 (UnityEngine.Vector3)
IL_0483: ldloc.s 6 (UnityEngine.Vector3)
IL_0485: ldloc.s 7 (UnityEngine.Vector3)
IL_0487: ldloc.s 35 (System.Single)
IL_0489: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_048E: stloc.s 37 (UnityEngine.Vector3)
IL_0490: ldloc.s 4 (UnityEngine.Vector3)
IL_0492: ldloc.s 5 (UnityEngine.Vector3)
IL_0494: ldloc.s 4 (UnityEngine.Vector3)
IL_0496: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_049B: ldloc.s 35 (System.Single)
IL_049D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_04A2: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_04A7: stloc.s 38 (UnityEngine.Vector3)
IL_04A9: ldloc.s 8 (UnityEngine.Vector3)
IL_04AB: ldloc.s 9 (UnityEngine.Vector3)
IL_04AD: ldloc.s 35 (System.Single)
IL_04AF: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_04B4: stloc.s 39 (UnityEngine.Vector3)
IL_04B6: ldloca.s 36 (UnityEngine.Vector3)
IL_04B8: dup
IL_04B9: ldfld System.Single UnityEngine.Vector3::y
IL_04BE: ldloc.s 34 (NetInfo+Lane)
IL_04C0: ldfld System.Single Lane::m_verticalOffset
IL_04C5: add
IL_04C6: stfld System.Single UnityEngine.Vector3::y
IL_04CB: ldloca.s 38 (UnityEngine.Vector3)
IL_04CD: dup
IL_04CE: ldfld System.Single UnityEngine.Vector3::y
IL_04D3: ldloc.s 34 (NetInfo+Lane)
IL_04D5: ldfld System.Single Lane::m_verticalOffset
IL_04DA: add
IL_04DB: stfld System.Single UnityEngine.Vector3::y
IL_04E0: ldloc.s 36 (UnityEngine.Vector3)
IL_04E2: ldloc.s 37 (UnityEngine.Vector3)
IL_04E4: ldloc.s 38 (UnityEngine.Vector3)
IL_04E6: ldloc.s 39 (UnityEngine.Vector3)
IL_04E8: ldloc.s 10 (System.Boolean)
IL_04EA: ldloc.s 11 (System.Boolean)
IL_04EC: ldloca.s 40 (UnityEngine.Vector3)
IL_04EE: ldloca.s 41 (UnityEngine.Vector3)
IL_04F0: 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_04F5: ldloc.0
IL_04F6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_04FB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0500: ldloc.s 32 (System.UInt32)
IL_0502: conv.u
IL_0503: ldelema NetLane
IL_0508: ldfld System.UInt16 NetLane::m_flags
IL_050D: stloc.s 42 (NetLane+Flags)
IL_050F: ldloc.s 28 (NetLane+Flags)
IL_0511: stloc.s 43 (NetLane+Flags)
IL_0513: ldloc.s 42 (NetLane+Flags)
IL_0515: ldc.i4 -64753
IL_051A: and
IL_051B: stloc.s 42 (NetLane+Flags)
IL_051D: ldloc.s 34 (NetInfo+Lane)
IL_051F: ldfld Direction Lane::m_finalDirection
IL_0524: ldc.i4.3
IL_0525: and
IL_0526: conv.u1
IL_0527: ldc.i4.2
IL_0528: bne.un => Label38
IL_052D: ldloc.s 43 (NetLane+Flags)
IL_052F: ldc.i4 -2049
IL_0534: and
IL_0535: stloc.s 43 (NetLane+Flags)
IL_0537: Label38
IL_0537: ldloc.s 34 (NetInfo+Lane)
IL_0539: ldfld Direction Lane::m_finalDirection
IL_053E: ldc.i4.3
IL_053F: and
IL_0540: conv.u1
IL_0541: ldc.i4.1
IL_0542: bne.un => Label39
IL_0547: ldloc.s 43 (NetLane+Flags)
IL_0549: ldc.i4 -1025
IL_054E: and
IL_054F: stloc.s 43 (NetLane+Flags)
IL_0551: Label39
IL_0551: ldloc.s 34 (NetInfo+Lane)
IL_0553: ldfld VehicleType Lane::m_vehicleType
IL_0558: ldc.i4 2048
IL_055D: and
IL_055E: brfalse => Label40
IL_0563: ldloc.s 43 (NetLane+Flags)
IL_0565: ldc.i4 -3073
IL_056A: and
IL_056B: stloc.s 43 (NetLane+Flags)
IL_056D: Label40
IL_056D: ldloc.s 42 (NetLane+Flags)
IL_056F: ldloc.s 43 (NetLane+Flags)
IL_0571: or
IL_0572: stloc.s 42 (NetLane+Flags)
IL_0574: ldloc.1
IL_0575: brfalse => Label41
IL_057A: ldloc.s 42 (NetLane+Flags)
IL_057C: ldc.i4.4
IL_057D: or
IL_057E: stloc.s 42 (NetLane+Flags)
IL_0580: br => Label42
IL_0585: Label41
IL_0585: ldloc.s 42 (NetLane+Flags)
IL_0587: ldc.i4.s -5
IL_0589: and
IL_058A: stloc.s 42 (NetLane+Flags)
IL_058C: Label42
IL_058C: ldc.i4.0
IL_058D: stloc.s 44 (System.Int32)
IL_058F: ldc.i4 255
IL_0594: stloc.s 45 (System.Int32)
IL_0596: ldloc.s 34 (NetInfo+Lane)
IL_0598: ldfld LaneType Lane::m_laneType
IL_059D: ldc.i4.s 33
IL_059F: and
IL_05A0: conv.u1
IL_05A1: brfalse => Label43
IL_05A6: ldloc.s 34 (NetInfo+Lane)
IL_05A8: ldfld Direction Lane::m_finalDirection
IL_05AD: ldc.i4.1
IL_05AE: and
IL_05AF: conv.u1
IL_05B0: ldc.i4.0
IL_05B1: ceq
IL_05B3: ldc.i4.0
IL_05B4: ceq
IL_05B6: ldarg.2
IL_05B7: ldfld Flags NetSegment::m_flags
IL_05BC: ldc.i4.s 16
IL_05BE: and
IL_05BF: ldc.i4.0
IL_05C0: ceq
IL_05C2: ceq
IL_05C4: stloc.s 46 (System.Boolean)
IL_05C6: ldloc.s 46 (System.Boolean)
IL_05C8: brfalse => Label44
IL_05CD: ldloc.s 12 (System.Int32)
IL_05CF: stloc.s 47 (System.Int32)
IL_05D1: ldloc.s 13 (System.Int32)
IL_05D3: stloc.s 48 (System.Int32)
IL_05D5: ldloc.s 14 (System.Int32)
IL_05D7: stloc.s 49 (System.Int32)
IL_05D9: br => Label45
IL_05DE: Label44
IL_05DE: ldloc.s 20 (System.Int32)
IL_05E0: stloc.s 47 (System.Int32)
IL_05E2: ldloc.s 21 (System.Int32)
IL_05E4: stloc.s 48 (System.Int32)
IL_05E6: ldloc.s 22 (System.Int32)
IL_05E8: stloc.s 49 (System.Int32)
IL_05EA: Label45
IL_05EA: ldloc.s 34 (NetInfo+Lane)
IL_05EC: ldfld Direction Lane::m_finalDirection
IL_05F1: ldc.i4.1
IL_05F2: and
IL_05F3: conv.u1
IL_05F4: brfalse => Label46
IL_05F9: ldloc.s 34 (NetInfo+Lane)
IL_05FB: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0600: stloc.s 50 (System.Int32)
IL_0602: ldloc.s 34 (NetInfo+Lane)
IL_0604: ldfld System.Int32 Lane::m_similarLaneCount
IL_0609: ldloc.s 34 (NetInfo+Lane)
IL_060B: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0610: sub
IL_0611: ldc.i4.1
IL_0612: sub
IL_0613: stloc.s 51 (System.Int32)
IL_0615: br => Label47
IL_061A: Label46
IL_061A: ldloc.s 34 (NetInfo+Lane)
IL_061C: ldfld System.Int32 Lane::m_similarLaneCount
IL_0621: ldloc.s 34 (NetInfo+Lane)
IL_0623: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0628: sub
IL_0629: ldc.i4.1
IL_062A: sub
IL_062B: stloc.s 50 (System.Int32)
IL_062D: ldloc.s 34 (NetInfo+Lane)
IL_062F: ldfld System.Int32 Lane::m_similarLaneIndex
IL_0634: stloc.s 51 (System.Int32)
IL_0636: Label47
IL_0636: ldloc.s 47 (System.Int32)
IL_0638: ldloc.s 48 (System.Int32)
IL_063A: add
IL_063B: ldloc.s 49 (System.Int32)
IL_063D: add
IL_063E: stloc.s 52 (System.Int32)
IL_0640: ldc.i4 255
IL_0645: stloc.s 44 (System.Int32)
IL_0647: ldc.i4.0
IL_0648: stloc.s 45 (System.Int32)
IL_064A: ldloc.s 52 (System.Int32)
IL_064C: brfalse => Label48
IL_0651: ldloc.s 34 (NetInfo+Lane)
IL_0653: ldfld System.Int32 Lane::m_similarLaneCount
IL_0658: ldloc.s 52 (System.Int32)
IL_065A: ble => Label49
IL_065F: ldloc.s 52 (System.Int32)
IL_0661: ldc.i4.0
IL_0662: ble => Label50
IL_0667: ldloc.s 52 (System.Int32)
IL_0669: ldloc.s 50 (System.Int32)
IL_066B: mul
IL_066C: ldloc.s 34 (NetInfo+Lane)
IL_066E: ldfld System.Int32 Lane::m_similarLaneCount
IL_0673: div
IL_0674: stloc.s 44 (System.Int32)
IL_0676: ldloc.s 52 (System.Int32)
IL_0678: ldloc.s 52 (System.Int32)
IL_067A: ldloc.s 51 (System.Int32)
IL_067C: mul
IL_067D: ldloc.s 34 (NetInfo+Lane)
IL_067F: ldfld System.Int32 Lane::m_similarLaneCount
IL_0684: div
IL_0685: sub
IL_0686: stloc.s 45 (System.Int32)
IL_0688: ldloc.s 42 (NetLane+Flags)
IL_068A: ldc.i4 128
IL_068F: or
IL_0690: stloc.s 42 (NetLane+Flags)
IL_0692: ldloc.s 44 (System.Int32)
IL_0694: ldloc.s 47 (System.Int32)
IL_0696: bge => Label51
IL_069B: ldloc.s 42 (NetLane+Flags)
IL_069D: ldc.i4.s 32
IL_069F: or
IL_06A0: stloc.s 42 (NetLane+Flags)
IL_06A2: Label51
IL_06A2: ldloc.s 52 (System.Int32)
IL_06A4: ldloc.s 45 (System.Int32)
IL_06A6: sub
IL_06A7: ldloc.s 49 (System.Int32)
IL_06A9: bge => Label52
IL_06AE: ldloc.s 42 (NetLane+Flags)
IL_06B0: ldc.i4.s 64
IL_06B2: or
IL_06B3: stloc.s 42 (NetLane+Flags)
IL_06B5: Label52
IL_06B5: ldloc.s 48 (System.Int32)
IL_06B7: brfalse => Label53
IL_06BC: ldloc.s 44 (System.Int32)
IL_06BE: ldloc.s 47 (System.Int32)
IL_06C0: ldloc.s 48 (System.Int32)
IL_06C2: add
IL_06C3: bge => Label54
IL_06C8: ldloc.s 45 (System.Int32)
IL_06CA: ldloc.s 47 (System.Int32)
IL_06CC: ble => Label55
IL_06D1: ldloc.s 42 (NetLane+Flags)
IL_06D3: ldc.i4.s 16
IL_06D5: or
IL_06D6: stloc.s 42 (NetLane+Flags)
IL_06D8: Label53
IL_06D8: Label54
IL_06D8: Label55
IL_06D8: br => Label56
IL_06DD: Label49
IL_06DD: Label50
IL_06DD: ldloc.s 34 (NetInfo+Lane)
IL_06DF: ldfld System.Int32 Lane::m_similarLaneCount
IL_06E4: ldloc.s 52 (System.Int32)
IL_06E6: blt => Label57
IL_06EB: ldloc.s 47 (System.Int32)
IL_06ED: stloc.s 53 (System.Int32)
IL_06EF: ldloc.s 49 (System.Int32)
IL_06F1: stloc.s 54 (System.Int32)
IL_06F3: br => Label58
IL_06F8: Label57
IL_06F8: ldloc.s 47 (System.Int32)
IL_06FA: ldloc.s 34 (NetInfo+Lane)
IL_06FC: ldfld System.Int32 Lane::m_similarLaneCount
IL_0701: mul
IL_0702: ldloc.s 52 (System.Int32)
IL_0704: ldloc.s 48 (System.Int32)
IL_0706: ldc.i4.1
IL_0707: shr
IL_0708: add
IL_0709: div
IL_070A: stloc.s 53 (System.Int32)
IL_070C: ldloc.s 49 (System.Int32)
IL_070E: ldloc.s 34 (NetInfo+Lane)
IL_0710: ldfld System.Int32 Lane::m_similarLaneCount
IL_0715: mul
IL_0716: ldloc.s 52 (System.Int32)
IL_0718: ldloc.s 48 (System.Int32)
IL_071A: ldc.i4.1
IL_071B: shr
IL_071C: add
IL_071D: div
IL_071E: stloc.s 54 (System.Int32)
IL_0720: Label58
IL_0720: ldloc.s 53 (System.Int32)
IL_0722: stloc.s 55 (System.Int32)
IL_0724: ldloc.s 34 (NetInfo+Lane)
IL_0726: ldfld System.Int32 Lane::m_similarLaneCount
IL_072B: ldloc.s 53 (System.Int32)
IL_072D: sub
IL_072E: ldloc.s 54 (System.Int32)
IL_0730: sub
IL_0731: stloc.s 56 (System.Int32)
IL_0733: ldloc.s 54 (System.Int32)
IL_0735: stloc.s 57 (System.Int32)
IL_0737: ldloc.s 56 (System.Int32)
IL_0739: ldc.i4.0
IL_073A: ble => Label59
IL_073F: ldloc.s 47 (System.Int32)
IL_0741: ldloc.s 53 (System.Int32)
IL_0743: ble => Label60
IL_0748: ldloc.s 55 (System.Int32)
IL_074A: ldc.i4.1
IL_074B: add
IL_074C: stloc.s 55 (System.Int32)
IL_074E: Label60
IL_074E: ldloc.s 49 (System.Int32)
IL_0750: ldloc.s 54 (System.Int32)
IL_0752: ble => Label61
IL_0757: ldloc.s 57 (System.Int32)
IL_0759: ldc.i4.1
IL_075A: add
IL_075B: stloc.s 57 (System.Int32)
IL_075D: Label59
IL_075D: Label61
IL_075D: ldloc.s 50 (System.Int32)
IL_075F: ldloc.s 55 (System.Int32)
IL_0761: bge => Label62
IL_0766: ldloc.s 50 (System.Int32)
IL_0768: ldloc.s 47 (System.Int32)
IL_076A: mul
IL_076B: ldloc.s 55 (System.Int32)
IL_076D: add
IL_076E: ldc.i4.1
IL_076F: sub
IL_0770: ldloc.s 55 (System.Int32)
IL_0772: div
IL_0773: stloc.s 58 (System.Int32)
IL_0775: ldloc.s 50 (System.Int32)
IL_0777: ldc.i4.1
IL_0778: add
IL_0779: ldloc.s 47 (System.Int32)
IL_077B: mul
IL_077C: ldloc.s 55 (System.Int32)
IL_077E: add
IL_077F: ldc.i4.1
IL_0780: sub
IL_0781: ldloc.s 55 (System.Int32)
IL_0783: div
IL_0784: stloc.s 59 (System.Int32)
IL_0786: ldloc.s 59 (System.Int32)
IL_0788: ldloc.s 58 (System.Int32)
IL_078A: ble => Label63
IL_078F: ldloc.s 42 (NetLane+Flags)
IL_0791: ldc.i4.s 32
IL_0793: or
IL_0794: stloc.s 42 (NetLane+Flags)
IL_0796: ldloc.s 44 (System.Int32)
IL_0798: ldloc.s 58 (System.Int32)
IL_079A: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_079F: stloc.s 44 (System.Int32)
IL_07A1: ldloc.s 45 (System.Int32)
IL_07A3: ldloc.s 59 (System.Int32)
IL_07A5: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_07AA: stloc.s 45 (System.Int32)
IL_07AC: Label62
IL_07AC: Label63
IL_07AC: ldloc.s 50 (System.Int32)
IL_07AE: ldloc.s 53 (System.Int32)
IL_07B0: blt => Label64
IL_07B5: ldloc.s 51 (System.Int32)
IL_07B7: ldloc.s 54 (System.Int32)
IL_07B9: blt => Label65
IL_07BE: ldloc.s 48 (System.Int32)
IL_07C0: brfalse => Label66
IL_07C5: ldloc.s 34 (NetInfo+Lane)
IL_07C7: ldfld System.Int32 Lane::m_similarLaneCount
IL_07CC: ldloc.s 52 (System.Int32)
IL_07CE: ble => Label67
IL_07D3: ldloc.s 53 (System.Int32)
IL_07D5: ldc.i4.1
IL_07D6: add
IL_07D7: stloc.s 53 (System.Int32)
IL_07D9: Label67
IL_07D9: ldloc.s 47 (System.Int32)
IL_07DB: ldloc.s 50 (System.Int32)
IL_07DD: ldloc.s 53 (System.Int32)
IL_07DF: sub
IL_07E0: ldloc.s 48 (System.Int32)
IL_07E2: mul
IL_07E3: ldloc.s 56 (System.Int32)
IL_07E5: add
IL_07E6: ldc.i4.1
IL_07E7: sub
IL_07E8: ldloc.s 56 (System.Int32)
IL_07EA: div
IL_07EB: add
IL_07EC: stloc.s 60 (System.Int32)
IL_07EE: ldloc.s 47 (System.Int32)
IL_07F0: ldloc.s 50 (System.Int32)
IL_07F2: ldc.i4.1
IL_07F3: add
IL_07F4: ldloc.s 53 (System.Int32)
IL_07F6: sub
IL_07F7: ldloc.s 48 (System.Int32)
IL_07F9: mul
IL_07FA: ldloc.s 56 (System.Int32)
IL_07FC: add
IL_07FD: ldc.i4.1
IL_07FE: sub
IL_07FF: ldloc.s 56 (System.Int32)
IL_0801: div
IL_0802: add
IL_0803: stloc.s 61 (System.Int32)
IL_0805: ldloc.s 61 (System.Int32)
IL_0807: ldloc.s 60 (System.Int32)
IL_0809: ble => Label68
IL_080E: ldloc.s 42 (NetLane+Flags)
IL_0810: ldc.i4.s 16
IL_0812: or
IL_0813: stloc.s 42 (NetLane+Flags)
IL_0815: ldloc.s 44 (System.Int32)
IL_0817: ldloc.s 60 (System.Int32)
IL_0819: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_081E: stloc.s 44 (System.Int32)
IL_0820: ldloc.s 45 (System.Int32)
IL_0822: ldloc.s 61 (System.Int32)
IL_0824: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0829: stloc.s 45 (System.Int32)
IL_082B: Label64
IL_082B: Label65
IL_082B: Label66
IL_082B: Label68
IL_082B: ldloc.s 51 (System.Int32)
IL_082D: ldloc.s 57 (System.Int32)
IL_082F: bge => Label69
IL_0834: ldloc.s 52 (System.Int32)
IL_0836: ldloc.s 51 (System.Int32)
IL_0838: ldc.i4.1
IL_0839: add
IL_083A: ldloc.s 49 (System.Int32)
IL_083C: mul
IL_083D: ldloc.s 57 (System.Int32)
IL_083F: add
IL_0840: ldc.i4.1
IL_0841: sub
IL_0842: ldloc.s 57 (System.Int32)
IL_0844: div
IL_0845: sub
IL_0846: stloc.s 62 (System.Int32)
IL_0848: ldloc.s 52 (System.Int32)
IL_084A: ldloc.s 51 (System.Int32)
IL_084C: ldloc.s 49 (System.Int32)
IL_084E: mul
IL_084F: ldloc.s 57 (System.Int32)
IL_0851: add
IL_0852: ldc.i4.1
IL_0853: sub
IL_0854: ldloc.s 57 (System.Int32)
IL_0856: div
IL_0857: sub
IL_0858: stloc.s 63 (System.Int32)
IL_085A: ldloc.s 63 (System.Int32)
IL_085C: ldloc.s 62 (System.Int32)
IL_085E: ble => Label70
IL_0863: ldloc.s 42 (NetLane+Flags)
IL_0865: ldc.i4.s 64
IL_0867: or
IL_0868: stloc.s 42 (NetLane+Flags)
IL_086A: ldloc.s 44 (System.Int32)
IL_086C: ldloc.s 62 (System.Int32)
IL_086E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0873: stloc.s 44 (System.Int32)
IL_0875: ldloc.s 45 (System.Int32)
IL_0877: ldloc.s 63 (System.Int32)
IL_0879: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_087E: stloc.s 45 (System.Int32)
IL_0880: Label69
IL_0880: Label70
IL_0880: ldarg.0
IL_0881: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_0886: brfalse => Label71
IL_088B: ldloc.s 42 (NetLane+Flags)
IL_088D: ldc.i4.s 96
IL_088F: and
IL_0890: ldc.i4.s 32
IL_0892: bne.un => Label72
IL_0897: ldloc.s 42 (NetLane+Flags)
IL_0899: ldc.i4.s 16
IL_089B: and
IL_089C: brfalse => Label73
IL_08A1: ldloc.s 48 (System.Int32)
IL_08A3: ldc.i4.2
IL_08A4: blt => Label74
IL_08A9: ldloc.s 47 (System.Int32)
IL_08AB: ldc.i4.1
IL_08AC: bne.un => Label75
IL_08B1: Label73
IL_08B1: ldloc.s 45 (System.Int32)
IL_08B3: ldloc.s 44 (System.Int32)
IL_08B5: ldc.i4.1
IL_08B6: add
IL_08B7: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_08BC: stloc.s 45 (System.Int32)
IL_08BE: Label74
IL_08BE: Label75
IL_08BE: br => Label76
IL_08C3: Label72
IL_08C3: ldloc.s 42 (NetLane+Flags)
IL_08C5: ldc.i4.s 96
IL_08C7: and
IL_08C8: ldc.i4.s 64
IL_08CA: bne.un => Label77
IL_08CF: ldloc.s 42 (NetLane+Flags)
IL_08D1: ldc.i4.s 16
IL_08D3: and
IL_08D4: brfalse => Label78
IL_08D9: ldloc.s 48 (System.Int32)
IL_08DB: ldc.i4.2
IL_08DC: blt => Label79
IL_08E1: ldloc.s 49 (System.Int32)
IL_08E3: ldc.i4.1
IL_08E4: bne.un => Label80
IL_08E9: Label78
IL_08E9: ldloc.s 44 (System.Int32)
IL_08EB: ldloc.s 45 (System.Int32)
IL_08ED: ldc.i4.1
IL_08EE: sub
IL_08EF: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_08F4: stloc.s 44 (System.Int32)
IL_08F6: Label48
IL_08F6: Label56
IL_08F6: Label71
IL_08F6: Label76
IL_08F6: Label77
IL_08F6: Label79
IL_08F6: Label80
IL_08F6: ldloc.s 46 (System.Boolean)
IL_08F8: brfalse => Label81
IL_08FD: ldloc.s 18 (System.Boolean)
IL_08FF: brfalse => Label82
IL_0904: ldloc.s 42 (NetLane+Flags)
IL_0906: ldc.i4.s -113
IL_0908: and
IL_0909: stloc.s 42 (NetLane+Flags)
IL_090B: br => Label83
IL_0910: Label82
IL_0910: ldloc.s 19 (System.Boolean)
IL_0912: brfalse => Label84
IL_0917: ldloc.s 42 (NetLane+Flags)
IL_0919: ldc.i4.s 16
IL_091B: or
IL_091C: stloc.s 42 (NetLane+Flags)
IL_091E: Label83
IL_091E: Label84
IL_091E: br => Label85
IL_0923: Label81
IL_0923: ldloc.s 26 (System.Boolean)
IL_0925: brfalse => Label86
IL_092A: ldloc.s 42 (NetLane+Flags)
IL_092C: ldc.i4.s -113
IL_092E: and
IL_092F: stloc.s 42 (NetLane+Flags)
IL_0931: br => Label87
IL_0936: Label86
IL_0936: ldloc.s 27 (System.Boolean)
IL_0938: brfalse => Label88
IL_093D: ldloc.s 42 (NetLane+Flags)
IL_093F: ldc.i4.s 16
IL_0941: or
IL_0942: stloc.s 42 (NetLane+Flags)
IL_0944: Label43
IL_0944: Label85
IL_0944: Label87
IL_0944: Label88
IL_0944: ldloc.0
IL_0945: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_094A: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_094F: ldloc.s 32 (System.UInt32)
IL_0951: conv.u
IL_0952: ldelema NetLane
IL_0957: ldloc.s 36 (UnityEngine.Vector3)
IL_0959: ldloc.s 40 (UnityEngine.Vector3)
IL_095B: ldloc.s 41 (UnityEngine.Vector3)
IL_095D: ldloc.s 38 (UnityEngine.Vector3)
IL_095F: newobj System.Void
ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3
_b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d)
IL_0964: stfld ColossalFramework.Math.Bezier3 NetLane::m_bezier
IL_0969: ldloc.0
IL_096A: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_096F: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0974: ldloc.s 32 (System.UInt32)
IL_0976: conv.u
IL_0977: ldelema NetLane
IL_097C: ldarg.1
IL_097D: stfld System.UInt16 NetLane::m_segment
IL_0982: ldloc.0
IL_0983: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0988: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_098D: ldloc.s 32 (System.UInt32)
IL_098F: conv.u
IL_0990: ldelema NetLane
IL_0995: ldloc.s 42 (NetLane+Flags)
IL_0997: conv.u2
IL_0998: stfld System.UInt16 NetLane::m_flags
IL_099D: ldloc.0
IL_099E: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09A3: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09A8: ldloc.s 32 (System.UInt32)
IL_09AA: conv.u
IL_09AB: ldelema NetLane
IL_09B0: ldloc.s 44 (System.Int32)
IL_09B2: conv.u1
IL_09B3: stfld System.Byte NetLane::m_firstTarget
IL_09B8: ldloc.0
IL_09B9: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09BE: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09C3: ldloc.s 32 (System.UInt32)
IL_09C5: conv.u
IL_09C6: ldelema NetLane
IL_09CB: ldloc.s 45 (System.Int32)
IL_09CD: conv.u1
IL_09CE: stfld System.Byte NetLane::m_lastTarget
IL_09D3: ldloc.s 29 (System.Single)
IL_09D5: ldloc.0
IL_09D6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_09DB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_09E0: ldloc.s 32 (System.UInt32)
IL_09E2: conv.u
IL_09E3: ldelema NetLane
IL_09E8: call System.Single NetLane::UpdateLength()
IL_09ED: add
IL_09EE: stloc.s 29 (System.Single)
IL_09F0: ldloc.s 30 (System.Single)
IL_09F2: ldc.r4 1
IL_09F7: add
IL_09F8: stloc.s 30 (System.Single)
IL_09FA: ldloc.s 32 (System.UInt32)
IL_09FC: stloc.s 31 (System.UInt32)
IL_09FE: ldloc.0
IL_09FF: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0A04: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0A09: ldloc.s 32 (System.UInt32)
IL_0A0B: conv.u
IL_0A0C: ldelema NetLane
IL_0A11: ldfld System.UInt32 NetLane::m_nextLane
IL_0A16: stloc.s 32 (System.UInt32)
IL_0A18: ldloc.s 33 (System.Int32)
IL_0A1A: ldc.i4.1
IL_0A1B: add
IL_0A1C: stloc.s 33 (System.Int32)
IL_0A1E: Label30
IL_0A1E: ldloc.s 33 (System.Int32)
IL_0A20: ldarg.0
IL_0A21: ldfld NetInfo NetAI::m_info
IL_0A26: ldfld Lane[] NetInfo::m_lanes
IL_0A2B: ldlen
IL_0A2C: conv.i4
IL_0A2D: blt => Label89
IL_0A32: Label36
IL_0A32: ldloc.s 30 (System.Single)
IL_0A34: ldc.r4 0
IL_0A39: beq => Label90
IL_0A3E: ldarg.2
IL_0A3F: ldloc.s 29 (System.Single)
IL_0A41: ldloc.s 30 (System.Single)
IL_0A43: div
IL_0A44: stfld System.Single NetSegment::m_averageLength
IL_0A49: br => Label91
IL_0A4E: Label90
IL_0A4E: ldarg.2
IL_0A4F: ldc.r4 0
IL_0A54: stfld System.Single NetSegment::m_averageLength
IL_0A59: Label91
IL_0A59: ldc.i4.0
IL_0A5A: stloc.s 64 (System.Boolean)
IL_0A5C: ldarg.2
IL_0A5D: ldfld System.Single NetSegment::m_averageLength
IL_0A62: ldc.r4 11
IL_0A67: bge.un => Label92
IL_0A6C: ldloc.0
IL_0A6D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0A72: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A77: ldarg.2
IL_0A78: ldfld System.UInt16 NetSegment::m_startNode
IL_0A7D: ldelema NetNode
IL_0A82: ldfld Flags NetNode::m_flags
IL_0A87: ldc.i4 128
IL_0A8C: and
IL_0A8D: brfalse => Label93
IL_0A92: ldloc.0
IL_0A93: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0A98: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A9D: ldarg.2
IL_0A9E: ldfld System.UInt16 NetSegment::m_endNode
IL_0AA3: ldelema NetNode
IL_0AA8: ldfld Flags NetNode::m_flags
IL_0AAD: ldc.i4 128
IL_0AB2: and
IL_0AB3: brfalse => Label94
IL_0AB8: ldc.i4.1
IL_0AB9: stloc.s 64 (System.Boolean)
IL_0ABB: Label92
IL_0ABB: Label93
IL_0ABB: Label94
IL_0ABB: ldarg.2
IL_0ABC: ldfld System.UInt32 NetSegment::m_lanes
IL_0AC1: stloc.s 32 (System.UInt32)
IL_0AC3: ldc.i4.0
IL_0AC4: stloc.s 65 (System.Int32)
IL_0AC6: br => Label95
IL_0ACB: Label98
IL_0ACB: ldloc.0
IL_0ACC: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0AD1: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0AD6: ldloc.s 32 (System.UInt32)
IL_0AD8: conv.u
IL_0AD9: ldelema NetLane
IL_0ADE: ldfld System.UInt16 NetLane::m_flags
IL_0AE3: ldc.i4.s -9
IL_0AE5: and
IL_0AE6: stloc.s 66 (NetLane+Flags)
IL_0AE8: ldloc.s 64 (System.Boolean)
IL_0AEA: brfalse => Label96
IL_0AEF: ldloc.s 66 (NetLane+Flags)
IL_0AF1: ldc.i4.8
IL_0AF2: or
IL_0AF3: stloc.s 66 (NetLane+Flags)
IL_0AF5: Label96
IL_0AF5: ldloc.0
IL_0AF6: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0AFB: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0B00: ldloc.s 32 (System.UInt32)
IL_0B02: conv.u
IL_0B03: ldelema NetLane
IL_0B08: ldloc.s 66 (NetLane+Flags)
IL_0B0A: conv.u2
IL_0B0B: stfld System.UInt16 NetLane::m_flags
IL_0B10: ldloc.0
IL_0B11: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0B16: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0B1B: ldloc.s 32 (System.UInt32)
IL_0B1D: conv.u
IL_0B1E: ldelema NetLane
IL_0B23: ldfld System.UInt32 NetLane::m_nextLane
IL_0B28: stloc.s 32 (System.UInt32)
IL_0B2A: ldloc.s 65 (System.Int32)
IL_0B2C: ldc.i4.1
IL_0B2D: add
IL_0B2E: stloc.s 65 (System.Int32)
IL_0B30: Label95
IL_0B30: ldloc.s 65 (System.Int32)
IL_0B32: ldarg.0
IL_0B33: ldfld NetInfo NetAI::m_info
IL_0B38: ldfld Lane[] NetInfo::m_lanes
IL_0B3D: ldlen
IL_0B3E: conv.i4
IL_0B3F: bge => Label97
IL_0B44: ldloc.s 32 (System.UInt32)
IL_0B46: brtrue => Label98
IL_0B4B: Label97
IL_0B4B: ldarg.3
IL_0B4C: brtrue => Label99
IL_0B51: ldarg.2
IL_0B52: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0B57: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0B5C: stloc.s 68 (UnityEngine.Vector3)
IL_0B5E: ldloca.s 68 (UnityEngine.Vector3)
IL_0B60: ldfld System.Single UnityEngine.Vector3::x
IL_0B65: ldc.r4 16
IL_0B6A: sub
IL_0B6B: ldc.r4 64
IL_0B70: div
IL_0B71: ldc.r4 135
IL_0B76: add
IL_0B77: conv.i4
IL_0B78: ldc.i4.0
IL_0B79: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0B7E: stloc.s 67 (System.Int32)
IL_0B80: ldarg.2
IL_0B81: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0B86: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0B8B: stloc.s 70 (UnityEngine.Vector3)
IL_0B8D: ldloca.s 70 (UnityEngine.Vector3)
IL_0B8F: ldfld System.Single UnityEngine.Vector3::z
IL_0B94: ldc.r4 16
IL_0B99: sub
IL_0B9A: ldc.r4 64
IL_0B9F: div
IL_0BA0: ldc.r4 135
IL_0BA5: add
IL_0BA6: conv.i4
IL_0BA7: ldc.i4.0
IL_0BA8: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0BAD: stloc.s 69 (System.Int32)
IL_0BAF: ldarg.2
IL_0BB0: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0BB5: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0BBA: stloc.s 72 (UnityEngine.Vector3)
IL_0BBC: ldloca.s 72 (UnityEngine.Vector3)
IL_0BBE: ldfld System.Single UnityEngine.Vector3::x
IL_0BC3: ldc.r4 16
IL_0BC8: add
IL_0BC9: ldc.r4 64
IL_0BCE: div
IL_0BCF: ldc.r4 135
IL_0BD4: add
IL_0BD5: conv.i4
IL_0BD6: ldc.i4 269
IL_0BDB: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0BE0: stloc.s 71 (System.Int32)
IL_0BE2: ldarg.2
IL_0BE3: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0BE8: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0BED: stloc.s 74 (UnityEngine.Vector3)
IL_0BEF: ldloca.s 74 (UnityEngine.Vector3)
IL_0BF1: ldfld System.Single UnityEngine.Vector3::z
IL_0BF6: ldc.r4 16
IL_0BFB: add
IL_0BFC: ldc.r4 64
IL_0C01: div
IL_0C02: ldc.r4 135
IL_0C07: add
IL_0C08: conv.i4
IL_0C09: ldc.i4 269
IL_0C0E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0C13: stloc.s 73 (System.Int32)
IL_0C15: ldloc.s 69 (System.Int32)
IL_0C17: stloc.s 75 (System.Int32)
IL_0C19: br => Label100
IL_0C1E: Label108
IL_0C1E: ldloc.s 67 (System.Int32)
IL_0C20: stloc.s 76 (System.Int32)
IL_0C22: br => Label101
IL_0C27: Label107
IL_0C27: ldloc.0
IL_0C28: ldfld System.UInt16[] NetManager::m_nodeGrid
IL_0C2D: ldloc.s 75 (System.Int32)
IL_0C2F: ldc.i4 270
IL_0C34: mul
IL_0C35: ldloc.s 76 (System.Int32)
IL_0C37: add
IL_0C38: ldelem.u2
IL_0C39: stloc.s 77 (System.UInt16)
IL_0C3B: ldc.i4.0
IL_0C3C: stloc.s 78 (System.Int32)
IL_0C3E: br => Label102
IL_0C43: Label106
IL_0C43: ldloc.0
IL_0C44: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0C49: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0C4E: ldloc.s 77 (System.UInt16)
IL_0C50: ldelema NetNode
IL_0C55: call NetInfo NetNode::get_Info()
IL_0C5A: stloc.s 79 (NetInfo)
IL_0C5C: ldloc.0
IL_0C5D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0C62: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0C67: ldloc.s 77 (System.UInt16)
IL_0C69: ldelema NetNode
IL_0C6E: ldfld UnityEngine.Vector3 NetNode::m_position
IL_0C73: stloc.s 80 (UnityEngine.Vector3)
IL_0C75: ldarg.2
IL_0C76: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0C7B: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0C80: stloc.s 82 (UnityEngine.Vector3)
IL_0C82: ldloca.s 82 (UnityEngine.Vector3)
IL_0C84: ldfld System.Single UnityEngine.Vector3::x
IL_0C89: ldc.r4 16
IL_0C8E: sub
IL_0C8F: ldloca.s 80 (UnityEngine.Vector3)
IL_0C91: ldfld System.Single UnityEngine.Vector3::x
IL_0C96: sub
IL_0C97: ldarg.2
IL_0C98: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0C9D: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0CA2: stloc.s 83 (UnityEngine.Vector3)
IL_0CA4: ldloca.s 83 (UnityEngine.Vector3)
IL_0CA6: ldfld System.Single UnityEngine.Vector3::z
IL_0CAB: ldc.r4 16
IL_0CB0: sub
IL_0CB1: ldloca.s 80 (UnityEngine.Vector3)
IL_0CB3: ldfld System.Single UnityEngine.Vector3::z
IL_0CB8: sub
IL_0CB9: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0CBE: ldloca.s 80 (UnityEngine.Vector3)
IL_0CC0: ldfld System.Single UnityEngine.Vector3::x
IL_0CC5: ldarg.2
IL_0CC6: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0CCB: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0CD0: stloc.s 84 (UnityEngine.Vector3)
IL_0CD2: ldloca.s 84 (UnityEngine.Vector3)
IL_0CD4: ldfld System.Single UnityEngine.Vector3::x
IL_0CD9: sub
IL_0CDA: ldc.r4 16
IL_0CDF: sub
IL_0CE0: ldloca.s 80 (UnityEngine.Vector3)
IL_0CE2: ldfld System.Single UnityEngine.Vector3::z
IL_0CE7: ldarg.2
IL_0CE8: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0CED: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_0CF2: stloc.s 85 (UnityEngine.Vector3)
IL_0CF4: ldloca.s 85 (UnityEngine.Vector3)
IL_0CF6: ldfld System.Single UnityEngine.Vector3::z
IL_0CFB: sub
IL_0CFC: ldc.r4 16
IL_0D01: sub
IL_0D02: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0D07: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0D0C: stloc.s 81 (System.Single)
IL_0D0E: ldloc.s 81 (System.Single)
IL_0D10: ldc.r4 0
IL_0D15: bge.un => Label103
IL_0D1A: ldloc.s 79 (NetInfo)
IL_0D1C: ldfld NetAI NetInfo::m_netAI
IL_0D21: ldloc.s 77 (System.UInt16)
IL_0D23: ldloc.0
IL_0D24: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0D29: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0D2E: ldloc.s 77 (System.UInt16)
IL_0D30: ldelema NetNode
IL_0D35: callvirt virtual System.Void NetAI::NearbyLanesUpdated(System.UInt16
nodeID, NetNode& data)
IL_0D3A: Label103
IL_0D3A: ldloc.0
IL_0D3B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0D40: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0D45: ldloc.s 77 (System.UInt16)
IL_0D47: ldelema NetNode
IL_0D4C: ldfld System.UInt16 NetNode::m_nextGridNode
IL_0D51: stloc.s 77 (System.UInt16)
IL_0D53: ldloc.s 78 (System.Int32)
IL_0D55: ldc.i4.1
IL_0D56: add
IL_0D57: dup
IL_0D58: stloc.s 78 (System.Int32)
IL_0D5A: ldc.i4 32768
IL_0D5F: blt => Label104
IL_0D64: ldc.i4.1
IL_0D65: ldstr "Invalid list detected!\n"
IL_0D6A: call static System.String System.Environment::get_StackTrace()
IL_0D6F: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_0D74: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Error(LogChannel ll, System.String
msg)
IL_0D79: br => Label105
IL_0D7E: Label102
IL_0D7E: Label104
IL_0D7E: ldloc.s 77 (System.UInt16)
IL_0D80: brtrue => Label106
IL_0D85: Label105
IL_0D85: ldloc.s 76 (System.Int32)
IL_0D87: ldc.i4.1
IL_0D88: add
IL_0D89: stloc.s 76 (System.Int32)
IL_0D8B: Label101
IL_0D8B: ldloc.s 76 (System.Int32)
IL_0D8D: ldloc.s 71 (System.Int32)
IL_0D8F: ble => Label107
IL_0D94: ldloc.s 75 (System.Int32)
IL_0D96: ldc.i4.1
IL_0D97: add
IL_0D98: stloc.s 75 (System.Int32)
IL_0D9A: Label100
IL_0D9A: ldloc.s 75 (System.Int32)
IL_0D9C: ldloc.s 73 (System.Int32)
IL_0D9E: ble => Label108
IL_0DA3: ldarg.0
IL_0DA4: ldfld NetInfo NetAI::m_info
IL_0DA9: ldfld System.Boolean NetInfo::m_hasPedestrianLanes
IL_0DAE: brfalse => Label109
IL_0DB3: ldarg.0
IL_0DB4: ldfld NetInfo NetAI::m_info
IL_0DB9: ldfld System.Boolean NetInfo::m_hasForwardVehicleLanes
IL_0DBE: brtrue => Label110
IL_0DC3: ldarg.0
IL_0DC4: ldfld NetInfo NetAI::m_info
IL_0DC9: ldfld System.Boolean NetInfo::m_hasBackwardVehicleLanes
IL_0DCE: brfalse => Label111
IL_0DD3: Label110
IL_0DD3: ldarg.1
IL_0DD4: ldarg.2
IL_0DD5: call static System.Void RoadBaseAI::CheckBuildings(System.UInt16
segmentID, NetSegment& data)
IL_0DDA: // end original
IL_0DDA: Label99
IL_0DDA: Label109
IL_0DDA: Label111
IL_0DDA: ldarg 1
IL_0DDE: ldarg 2
IL_0DE2: ldarg 3
IL_0DE6: call static System.Void
TrafficManager.Patch._RoadBaseAI.UpdateLanesPatch::Postfix(System.UInt16 segmentID,
NetSegment& data, System.Boolean loading)
IL_0DEB: 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.Byte NetSegment::m_trafficLightState0
IL_006A: ldc.i4 240
IL_006F: and
IL_0070: ldloc.0
IL_0071: or
IL_0072: conv.u1
IL_0073: stfld System.Byte NetSegment::m_trafficLightState0
IL_0078: br => Label4
IL_007D: Label3
IL_007D: ldarg.1
IL_007E: ldarg.1
IL_007F: ldfld System.Byte NetSegment::m_trafficLightState1
IL_0084: ldc.i4 240
IL_0089: and
IL_008A: ldloc.0
IL_008B: or
IL_008C: conv.u1
IL_008D: stfld System.Byte NetSegment::m_trafficLightState1
IL_0092: Label4
IL_0092: ldarg.s 5
IL_0094: brfalse => Label5
IL_0099: ldarg.1
IL_009A: dup
IL_009B: ldfld Flags NetSegment::m_flags
IL_00A0: ldc.i4 4096
IL_00A5: or
IL_00A6: stfld Flags NetSegment::m_flags
IL_00AB: br => Label6
IL_00B0: Label5
IL_00B0: ldarg.1
IL_00B1: dup
IL_00B2: ldfld Flags NetSegment::m_flags
IL_00B7: ldc.i4 -4097
IL_00BC: and
IL_00BD: stfld Flags NetSegment::m_flags
IL_00C2: Label6
IL_00C2: ldarg.s 6
IL_00C4: brfalse => Label7
IL_00C9: ldarg.1
IL_00CA: dup
IL_00CB: ldfld Flags NetSegment::m_flags
IL_00D0: ldc.i4 16384
IL_00D5: or
IL_00D6: stfld Flags NetSegment::m_flags
IL_00DB: br => Label8
IL_00E0: Label7
IL_00E0: ldarg.1
IL_00E1: dup
IL_00E2: ldfld Flags NetSegment::m_flags
IL_00E7: ldc.i4 -16385
IL_00EC: and
IL_00ED: stfld Flags NetSegment::m_flags
IL_00F2: Label8
IL_00F2: br => Label9
IL_00F7: Label2
IL_00F7: ldarg.2
IL_00F8: ldc.i4.8
IL_00F9: shr.un
IL_00FA: ldc.i4.1
IL_00FB: and
IL_00FC: brtrue => Label10
IL_0101: ldarg.1
IL_0102: ldarg.1
IL_0103: ldfld System.Byte NetSegment::m_trafficLightState0
IL_0108: ldc.i4.s 15
IL_010A: and
IL_010B: ldloc.0
IL_010C: ldc.i4.4
IL_010D: shl
IL_010E: or
IL_010F: conv.u1
IL_0110: stfld System.Byte NetSegment::m_trafficLightState0
IL_0115: br => Label11
IL_011A: Label10
IL_011A: ldarg.1
IL_011B: ldarg.1
IL_011C: ldfld System.Byte NetSegment::m_trafficLightState1
IL_0121: ldc.i4.s 15
IL_0123: and
IL_0124: ldloc.0
IL_0125: ldc.i4.4
IL_0126: shl
IL_0127: or
IL_0128: conv.u1
IL_0129: stfld System.Byte NetSegment::m_trafficLightState1
IL_012E: Label11
IL_012E: ldarg.s 5
IL_0130: brfalse => Label12
IL_0135: ldarg.1
IL_0136: dup
IL_0137: ldfld Flags NetSegment::m_flags
IL_013C: ldc.i4 8192
IL_0141: or
IL_0142: stfld Flags NetSegment::m_flags
IL_0147: br => Label13
IL_014C: Label12
IL_014C: ldarg.1
IL_014D: dup
IL_014E: ldfld Flags NetSegment::m_flags
IL_0153: ldc.i4 -8193
IL_0158: and
IL_0159: stfld Flags NetSegment::m_flags
IL_015E: Label13
IL_015E: ldarg.s 6
IL_0160: brfalse => Label14
IL_0165: ldarg.1
IL_0166: dup
IL_0167: ldfld Flags NetSegment::m_flags
IL_016C: ldc.i4 32768
IL_0171: or
IL_0172: stfld Flags NetSegment::m_flags
IL_0177: br => Label15
IL_017C: Label14
IL_017C: ldarg.1
IL_017D: dup
IL_017E: ldfld Flags NetSegment::m_flags
IL_0183: ldc.i4 -32769
IL_0188: and
IL_0189: stfld Flags NetSegment::m_flags
IL_018E: // end original
IL_018E: Label9
IL_018E: Label15
IL_018E: Label0
IL_018E: 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/Problem
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<SimulationManager>::get_instance()
IL_003C: stloc.0
IL_003D: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0042: stloc.1
IL_0043: ldarg.2
IL_0044: ldfld Problem NetSegment::m_problems
IL_0049: ldc.i4 805306368
IL_004E: conv.i8
IL_004F: call static Problem Notification::RemoveProblems(Problem problems1,
Problem problems2)
IL_0054: stloc.2
IL_0055: ldarg.2
IL_0056: ldfld Flags NetSegment::m_flags
IL_005B: ldc.i4 2048
IL_0060: and
IL_0061: brfalse => Label2
IL_0066: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_006B: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0070: ldc.i4.s 16
IL_0072: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0077: brtrue => Label3
IL_007C: ldarg.2
IL_007D: dup
IL_007E: ldfld Flags NetSegment::m_flags
IL_0083: ldc.i4 -2049
IL_0088: and
IL_0089: stfld Flags NetSegment::m_flags
IL_008E: Label2
IL_008E: Label3
IL_008E: ldc.r4 0
IL_0093: stloc.3
IL_0094: ldarg.2
IL_0095: ldfld System.UInt32 NetSegment::m_lanes
IL_009A: stloc.s 4 (System.UInt32)
IL_009C: ldc.i4.0
IL_009D: stloc.s 5 (System.Int32)
IL_009F: br => Label4
IL_00A4: Label8
IL_00A4: ldarg.0
IL_00A5: ldfld NetInfo NetAI::m_info
IL_00AA: ldfld Lane[] NetInfo::m_lanes
IL_00AF: ldloc.s 5 (System.Int32)
IL_00B1: ldelem.ref
IL_00B2: stloc.s 6 (NetInfo+Lane)
IL_00B4: ldloc.s 6 (NetInfo+Lane)
IL_00B6: ldfld LaneType Lane::m_laneType
IL_00BB: ldc.i4.s 33
IL_00BD: and
IL_00BE: conv.u1
IL_00BF: brfalse => Label5
IL_00C4: ldloc.s 6 (NetInfo+Lane)
IL_00C6: ldfld VehicleType Lane::m_vehicleType
IL_00CB: ldc.i4.s -33
IL_00CD: and
IL_00CE: brfalse => Label6
IL_00D3: ldloc.3
IL_00D4: ldloc.1
IL_00D5: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00DA: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00DF: ldloc.s 4 (System.UInt32)
IL_00E1: conv.u
IL_00E2: ldelema NetLane
IL_00E7: ldfld System.Single NetLane::m_length
IL_00EC: add
IL_00ED: stloc.3
IL_00EE: Label5
IL_00EE: Label6
IL_00EE: ldloc.1
IL_00EF: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00F4: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00F9: ldloc.s 4 (System.UInt32)
IL_00FB: conv.u
IL_00FC: ldelema NetLane
IL_0101: ldfld System.UInt32 NetLane::m_nextLane
IL_0106: stloc.s 4 (System.UInt32)
IL_0108: ldloc.s 5 (System.Int32)
IL_010A: ldc.i4.1
IL_010B: add
IL_010C: stloc.s 5 (System.Int32)
IL_010E: Label4
IL_010E: ldloc.s 5 (System.Int32)
IL_0110: ldarg.0
IL_0111: ldfld NetInfo NetAI::m_info
IL_0116: ldfld Lane[] NetInfo::m_lanes
IL_011B: ldlen
IL_011C: conv.i4
IL_011D: bge => Label7
IL_0122: ldloc.s 4 (System.UInt32)
IL_0124: brtrue => Label8
IL_0129: Label7
IL_0129: ldc.i4.0
IL_012A: stloc.s 7 (System.Int32)
IL_012C: ldc.i4.0
IL_012D: stloc.s 8 (System.Int32)
IL_012F: ldarg.2
IL_0130: ldfld System.UInt16 NetSegment::m_trafficBuffer
IL_0135: ldc.i4 65535
IL_013A: bne.un => Label9
IL_013F: ldarg.2
IL_0140: ldfld Flags NetSegment::m_flags
IL_0145: ldc.i4 2097152
IL_014A: and
IL_014B: brtrue => Label10
IL_0150: ldarg.2
IL_0151: dup
IL_0152: ldfld Flags NetSegment::m_flags
IL_0157: ldc.i4 2097152
IL_015C: or
IL_015D: stfld Flags NetSegment::m_flags
IL_0162: ldarg.2
IL_0163: ldloc.0
IL_0164: dup
IL_0165: ldfld System.UInt32 SimulationManager::m_currentBuildIndex
IL_016A: dup
IL_016B: stloc.s 9 (System.UInt32)
IL_016D: ldc.i4.1
IL_016E: add
IL_016F: stfld System.UInt32 SimulationManager::m_currentBuildIndex
IL_0174: ldloc.s 9 (System.UInt32)
IL_0176: stfld System.UInt32 NetSegment::m_modifiedIndex
IL_017B: Label10
IL_017B: br => Label11
IL_0180: Label9
IL_0180: ldarg.2
IL_0181: dup
IL_0182: ldfld Flags NetSegment::m_flags
IL_0187: ldc.i4 -2097153
IL_018C: and
IL_018D: stfld Flags NetSegment::m_flags
IL_0192: ldloc.3
IL_0193: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_0198: ldc.i4.4
IL_0199: shl
IL_019A: stloc.s 10 (System.Int32)
IL_019C: ldloc.s 10 (System.Int32)
IL_019E: brfalse => Label12
IL_01A3: ldarg.2
IL_01A4: ldfld System.UInt16 NetSegment::m_trafficBuffer
IL_01A9: ldc.i4.s 100
IL_01AB: mul
IL_01AC: ldloc.s 10 (System.Int32)
IL_01AE: div
IL_01AF: ldc.i4.s 100
IL_01B1: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01B6: conv.u1
IL_01B7: stloc.s 7 (System.Int32)
IL_01B9: ldarg.2
IL_01BA: ldfld System.UInt16 NetSegment::m_noiseBuffer
IL_01BF: ldc.i4 250
IL_01C4: mul
IL_01C5: ldloc.s 10 (System.Int32)
IL_01C7: div
IL_01C8: ldc.i4.s 100
IL_01CA: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01CF: conv.u1
IL_01D0: stloc.s 8 (System.Int32)
IL_01D2: Label11
IL_01D2: Label12
IL_01D2: ldarg.2
IL_01D3: ldc.i4.0
IL_01D4: stfld System.UInt16 NetSegment::m_trafficBuffer
IL_01D9: ldarg.2
IL_01DA: ldc.i4.0
IL_01DB: stfld System.UInt16 NetSegment::m_noiseBuffer
IL_01E0: ldloc.s 7 (System.Int32)
IL_01E2: ldarg.2
IL_01E3: ldfld System.Byte NetSegment::m_trafficDensity
IL_01E8: ble => Label13
IL_01ED: ldarg.2
IL_01EE: ldarg.2
IL_01EF: ldfld System.Byte NetSegment::m_trafficDensity
IL_01F4: ldc.i4.5
IL_01F5: add
IL_01F6: ldloc.s 7 (System.Int32)
IL_01F8: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_01FD: conv.u1
IL_01FE: stfld System.Byte NetSegment::m_trafficDensity
IL_0203: br => Label14
IL_0208: Label13
IL_0208: ldloc.s 7 (System.Int32)
IL_020A: ldarg.2
IL_020B: ldfld System.Byte NetSegment::m_trafficDensity
IL_0210: bge => Label15
IL_0215: ldarg.2
IL_0216: ldarg.2
IL_0217: ldfld System.Byte NetSegment::m_trafficDensity
IL_021C: ldc.i4.5
IL_021D: sub
IL_021E: ldloc.s 7 (System.Int32)
IL_0220: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0225: conv.u1
IL_0226: stfld System.Byte NetSegment::m_trafficDensity
IL_022B: Label14
IL_022B: Label15
IL_022B: ldloc.s 8 (System.Int32)
IL_022D: ldarg.2
IL_022E: ldfld System.Byte NetSegment::m_noiseDensity
IL_0233: ble => Label16
IL_0238: ldarg.2
IL_0239: ldarg.2
IL_023A: ldfld System.Byte NetSegment::m_noiseDensity
IL_023F: ldc.i4.2
IL_0240: add
IL_0241: ldloc.s 8 (System.Int32)
IL_0243: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0248: conv.u1
IL_0249: stfld System.Byte NetSegment::m_noiseDensity
IL_024E: br => Label17
IL_0253: Label16
IL_0253: ldloc.s 8 (System.Int32)
IL_0255: ldarg.2
IL_0256: ldfld System.Byte NetSegment::m_noiseDensity
IL_025B: bge => Label18
IL_0260: ldarg.2
IL_0261: ldarg.2
IL_0262: ldfld System.Byte NetSegment::m_noiseDensity
IL_0267: ldc.i4.2
IL_0268: sub
IL_0269: ldloc.s 8 (System.Int32)
IL_026B: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0270: conv.u1
IL_0271: stfld System.Byte NetSegment::m_noiseDensity
IL_0276: Label17
IL_0276: Label18
IL_0276: ldloc.1
IL_0277: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_027C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0281: ldarg.2
IL_0282: ldfld System.UInt16 NetSegment::m_startNode
IL_0287: ldelema NetNode
IL_028C: ldfld UnityEngine.Vector3 NetNode::m_position
IL_0291: stloc.s 11 (UnityEngine.Vector3)
IL_0293: ldloc.1
IL_0294: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0299: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_029E: ldarg.2
IL_029F: ldfld System.UInt16 NetSegment::m_endNode
IL_02A4: ldelema NetNode
IL_02A9: ldfld UnityEngine.Vector3 NetNode::m_position
IL_02AE: stloc.s 12 (UnityEngine.Vector3)
IL_02B0: ldloc.s 11 (UnityEngine.Vector3)
IL_02B2: ldloc.s 12 (UnityEngine.Vector3)
IL_02B4: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_02B9: ldc.r4 0.5
IL_02BE: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_02C3: stloc.s 13 (UnityEngine.Vector3)
IL_02C5: ldc.i4.0
IL_02C6: stloc.s 14 (System.Boolean)
IL_02C8: ldarg.0
IL_02C9: ldfld NetInfo NetAI::m_info
IL_02CE: ldfld Flags NetInfo::m_setVehicleFlags
IL_02D3: ldc.i4 268435456
IL_02D8: and
IL_02D9: brtrue => Label19
IL_02DE: call static TerrainManager
ColossalFramework.Singleton`1<TerrainManager>::get_instance()
IL_02E3: ldloc.s 13 (UnityEngine.Vector3)
IL_02E5: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_02EA: callvirt System.Single TerrainManager::WaterLevel(UnityEngine.Vector2
position)
IL_02EF: stloc.s 15 (System.Single)
IL_02F1: ldloc.s 15 (System.Single)
IL_02F3: ldloca.s 13 (UnityEngine.Vector3)
IL_02F5: ldfld System.Single UnityEngine.Vector3::y
IL_02FA: ldc.r4 1
IL_02FF: add
IL_0300: ble.un => Label20
IL_0305: ldloc.s 15 (System.Single)
IL_0307: ldc.r4 0
IL_030C: ble.un => Label21
IL_0311: ldc.i4.1
IL_0312: stloc.s 14 (System.Boolean)
IL_0314: ldarg.2
IL_0315: dup
IL_0316: ldfld Flags NetSegment::m_flags
IL_031B: ldc.i4 4194304
IL_0320: or
IL_0321: stfld Flags NetSegment::m_flags
IL_0326: ldloc.2
IL_0327: ldc.i8 4611686018695823360
IL_0330: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0335: stloc.2
IL_0336: ldarg.2
IL_0337: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_033C: call UnityEngine.Vector3 UnityEngine.Bounds::get_min()
IL_0341: stloc.s 16 (UnityEngine.Vector3)
IL_0343: ldarg.2
IL_0344: ldflda UnityEngine.Bounds NetSegment::m_bounds
IL_0349: call UnityEngine.Vector3 UnityEngine.Bounds::get_max()
IL_034E: stloc.s 17 (UnityEngine.Vector3)
IL_0350: ldloca.s 16 (UnityEngine.Vector3)
IL_0352: ldfld System.Single UnityEngine.Vector3::x
IL_0357: ldloca.s 16 (UnityEngine.Vector3)
IL_0359: ldfld System.Single UnityEngine.Vector3::z
IL_035E: ldloca.s 17 (UnityEngine.Vector3)
IL_0360: ldfld System.Single UnityEngine.Vector3::x
IL_0365: ldloca.s 17 (UnityEngine.Vector3)
IL_0367: ldfld System.Single UnityEngine.Vector3::z
IL_036C: call static System.Void RoadBaseAI::FloodParkedCars(System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0371: br => Label22
IL_0376: Label20
IL_0376: Label21
IL_0376: ldarg.2
IL_0377: dup
IL_0378: ldfld Flags NetSegment::m_flags
IL_037D: ldc.i4 -4194305
IL_0382: and
IL_0383: stfld Flags NetSegment::m_flags
IL_0388: ldloc.s 15 (System.Single)
IL_038A: ldloca.s 13 (UnityEngine.Vector3)
IL_038C: ldfld System.Single UnityEngine.Vector3::y
IL_0391: ble.un => Label23
IL_0396: ldloc.s 15 (System.Single)
IL_0398: ldc.r4 0
IL_039D: ble.un => Label24
IL_03A2: ldc.i4.1
IL_03A3: stloc.s 14 (System.Boolean)
IL_03A5: ldloc.2
IL_03A6: ldc.i4 268435456
IL_03AB: conv.i8
IL_03AC: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_03B1: stloc.2
IL_03B2: Label19
IL_03B2: Label22
IL_03B2: Label23
IL_03B2: Label24
IL_03B2: call static DistrictManager
ColossalFramework.Singleton`1<DistrictManager>::get_instance()
IL_03B7: stloc.s 18 (DistrictManager)
IL_03B9: ldloc.s 18 (DistrictManager)
IL_03BB: ldloc.s 13 (UnityEngine.Vector3)
IL_03BD: callvirt System.Byte DistrictManager::GetDistrict(UnityEngine.Vector3
worldPos)
IL_03C2: stloc.s 19 (System.Byte)
IL_03C4: ldloc.s 18 (DistrictManager)
IL_03C6: ldfld Array8`1<District> DistrictManager::m_districts
IL_03CB: ldfld District[] Array8`1<District>::m_buffer
IL_03D0: ldloc.s 19 (System.Byte)
IL_03D2: ldelema District
IL_03D7: ldfld CityPlanning District::m_cityPlanningPolicies
IL_03DC: stloc.s 20 (DistrictPolicies+CityPlanning)
IL_03DE: ldc.i4.s 100
IL_03E0: ldarg.2
IL_03E1: ldfld System.Byte NetSegment::m_noiseDensity
IL_03E6: ldc.i4.s 100
IL_03E8: sub
IL_03E9: ldarg.2
IL_03EA: ldfld System.Byte NetSegment::m_noiseDensity
IL_03EF: ldc.i4.s 100
IL_03F1: sub
IL_03F2: mul
IL_03F3: ldc.i4.s 100
IL_03F5: div
IL_03F6: sub
IL_03F7: stloc.s 21 (System.Int32)
IL_03F9: ldarg.0
IL_03FA: ldfld NetInfo NetAI::m_info
IL_03FF: ldfld VehicleType NetInfo::m_vehicleTypes
IL_0404: ldc.i4.1
IL_0405: and
IL_0406: brfalse => Label25
IL_040B: ldarg.0
IL_040C: ldfld NetInfo NetAI::m_info
IL_0411: ldfld Flags NetInfo::m_setVehicleFlags
IL_0416: ldc.i4 268435456
IL_041B: and
IL_041C: brtrue => Label26
IL_0421: ldloc.s 14 (System.Boolean)
IL_0423: brfalse => Label27
IL_0428: ldarg.2
IL_0429: ldfld Flags NetSegment::m_flags
IL_042E: ldc.i4 2099200
IL_0433: and
IL_0434: brtrue => Label28
IL_0439: ldloc.0
IL_043A: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_043F: ldc.i4.s 10
IL_0441: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0446: brtrue => Label29
IL_044B: ldloca.s 22 (TransferManager+TransferOffer)
IL_044D: initobj TransferManager+TransferOffer
IL_0453: ldloca.s 22 (TransferManager+TransferOffer)
IL_0455: ldc.i4.4
IL_0456: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_045B: ldloca.s 22 (TransferManager+TransferOffer)
IL_045D: ldarg.1
IL_045E: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_0463: ldloca.s 22 (TransferManager+TransferOffer)
IL_0465: ldloc.s 13 (UnityEngine.Vector3)
IL_0467: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_046C: ldloca.s 22 (TransferManager+TransferOffer)
IL_046E: ldc.i4.1
IL_046F: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_0474: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_0479: ldc.i4.s 73
IL_047B: ldloc.s 22 (TransferManager+TransferOffer)
IL_047D: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason
material, TransferOffer offer)
IL_0482: Label27
IL_0482: Label28
IL_0482: Label29
IL_0482: ldarg.2
IL_0483: ldfld System.Byte NetSegment::m_wetness
IL_0488: stloc.s 23 (System.Int32)
IL_048A: ldloc.1
IL_048B: ldfld System.Boolean NetManager::m_treatWetAsSnow
IL_0490: brtrue => Label30
IL_0495: ldloc.s 14 (System.Boolean)
IL_0497: brfalse => Label31
IL_049C: ldc.i4 255
IL_04A1: stloc.s 23 (System.Int32)
IL_04A3: br => Label32
IL_04A8: Label31
IL_04A8: ldloc.s 23 (System.Int32)
IL_04AA: ldc.i4.s 63
IL_04AC: add
IL_04AD: ldc.i4.5
IL_04AE: shr
IL_04AF: neg
IL_04B0: stloc.s 24 (System.Int32)
IL_04B2: call static WeatherManager
ColossalFramework.Singleton`1<WeatherManager>::get_instance()
IL_04B7: ldloc.s 13 (UnityEngine.Vector3)
IL_04B9: ldc.i4.0
IL_04BA: callvirt System.Single
WeatherManager::SampleRainIntensity(UnityEngine.Vector3 pos, System.Boolean
ignoreWeather)
IL_04BF: stloc.s 25 (System.Single)
IL_04C1: ldloc.s 25 (System.Single)
IL_04C3: ldc.r4 0
IL_04C8: beq => Label33
IL_04CD: ldloc.s 25 (System.Single)
IL_04CF: ldc.r4 4000
IL_04D4: mul
IL_04D5: ldc.r4 1000
IL_04DA: call static System.Single UnityEngine.Mathf::Min(System.Single a,
System.Single b)
IL_04DF: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_04E4: stloc.s 26 (System.Int32)
IL_04E6: ldloc.s 24 (System.Int32)
IL_04E8: ldloc.0
IL_04E9: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_04EE: ldloc.s 26 (System.Int32)
IL_04F0: ldloc.s 26 (System.Int32)
IL_04F2: ldc.i4.s 99
IL_04F4: add
IL_04F5: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_04FA: ldc.i4.s 100
IL_04FC: div
IL_04FD: add
IL_04FE: stloc.s 24 (System.Int32)
IL_0500: Label33
IL_0500: ldloc.s 23 (System.Int32)
IL_0502: ldloc.s 24 (System.Int32)
IL_0504: add
IL_0505: ldc.i4.0
IL_0506: ldc.i4 255
IL_050B: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_0510: stloc.s 23 (System.Int32)
IL_0512: Label32
IL_0512: br => Label34
IL_0517: Label30
IL_0517: ldarg.0
IL_0518: ldfld System.Boolean RoadBaseAI::m_accumulateSnow
IL_051D: brfalse => Label35
IL_0522: ldloc.s 14 (System.Boolean)
IL_0524: brfalse => Label36
IL_0529: ldc.i4 128
IL_052E: stloc.s 23 (System.Int32)
IL_0530: br => Label37
IL_0535: Label36
IL_0535: call static WeatherManager
ColossalFramework.Singleton`1<WeatherManager>::get_instance()
IL_053A: ldloc.s 13 (UnityEngine.Vector3)
IL_053C: ldc.i4.0
IL_053D: callvirt System.Single
WeatherManager::SampleRainIntensity(UnityEngine.Vector3 pos, System.Boolean
ignoreWeather)
IL_0542: stloc.s 27 (System.Single)
IL_0544: ldloc.s 27 (System.Single)
IL_0546: ldc.r4 0
IL_054B: beq => Label38
IL_0550: ldloc.s 27 (System.Single)
IL_0552: ldc.r4 400
IL_0557: mul
IL_0558: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_055D: stloc.s 28 (System.Int32)
IL_055F: ldloc.0
IL_0560: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0565: ldloc.s 28 (System.Int32)
IL_0567: ldloc.s 28 (System.Int32)
IL_0569: ldc.i4.s 99
IL_056B: add
IL_056C: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_0571: ldc.i4.s 100
IL_0573: div
IL_0574: stloc.s 29 (System.Int32)
IL_0576: call static UnlockManager
ColossalFramework.Singleton`1<UnlockManager>::get_instance()
IL_057B: ldc.i4.s 24
IL_057D: callvirt System.Boolean UnlockManager::Unlocked(Feature feature)
IL_0582: brfalse => Label39
IL_0587: ldloc.s 23 (System.Int32)
IL_0589: ldloc.s 29 (System.Int32)
IL_058B: add
IL_058C: ldc.i4 255
IL_0591: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0596: stloc.s 23 (System.Int32)
IL_0598: br => Label40
IL_059D: Label39
IL_059D: ldloc.s 23 (System.Int32)
IL_059F: ldloc.s 29 (System.Int32)
IL_05A1: add
IL_05A2: ldc.i4 128
IL_05A7: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_05AC: stloc.s 23 (System.Int32)
IL_05AE: Label40
IL_05AE: br => Label41
IL_05B3: Label38
IL_05B3: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_05B8: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_05BD: ldc.i4.4
IL_05BE: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_05C3: brtrue => Label42
IL_05C8: ldloc.s 23 (System.Int32)
IL_05CA: ldc.i4.1
IL_05CB: sub
IL_05CC: ldc.i4.0
IL_05CD: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_05D2: stloc.s 23 (System.Int32)
IL_05D4: Label41
IL_05D4: Label42
IL_05D4: ldloc.s 23 (System.Int32)
IL_05D6: ldc.i4.s 64
IL_05D8: blt => Label43
IL_05DD: ldarg.2
IL_05DE: ldfld Flags NetSegment::m_flags
IL_05E3: ldc.i4 6293504
IL_05E8: and
IL_05E9: brtrue => Label44
IL_05EE: ldloc.0
IL_05EF: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_05F4: ldc.i4.s 10
IL_05F6: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_05FB: brtrue => Label45
IL_0600: ldloca.s 30 (TransferManager+TransferOffer)
IL_0602: initobj TransferManager+TransferOffer
IL_0608: ldloca.s 30 (TransferManager+TransferOffer)
IL_060A: ldloc.s 23 (System.Int32)
IL_060C: ldc.i4.s 50
IL_060E: div
IL_060F: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_0614: ldloca.s 30 (TransferManager+TransferOffer)
IL_0616: ldarg.1
IL_0617: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_061C: ldloca.s 30 (TransferManager+TransferOffer)
IL_061E: ldloc.s 13 (UnityEngine.Vector3)
IL_0620: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_0625: ldloca.s 30 (TransferManager+TransferOffer)
IL_0627: ldc.i4.1
IL_0628: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_062D: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_0632: ldc.i4.s 64
IL_0634: ldloc.s 30 (TransferManager+TransferOffer)
IL_0636: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason
material, TransferOffer offer)
IL_063B: Label43
IL_063B: Label44
IL_063B: Label45
IL_063B: ldloc.s 23 (System.Int32)
IL_063D: ldc.i4 192
IL_0642: blt => Label46
IL_0647: ldloc.2
IL_0648: ldc.i4 536870912
IL_064D: conv.i8
IL_064E: call static Problem Notification::AddProblems(Problem problems1,
Problem problems2)
IL_0653: stloc.2
IL_0654: Label46
IL_0654: ldloc.s 18 (DistrictManager)
IL_0656: ldfld Array8`1<District> DistrictManager::m_districts
IL_065B: ldfld District[] Array8`1<District>::m_buffer
IL_0660: ldloc.s 19 (System.Byte)
IL_0662: ldelema District
IL_0667: ldflda DistrictProductionData District::m_productionData
IL_066C: dup
IL_066D: ldfld System.UInt32 DistrictProductionData::m_tempSnowCover
IL_0672: ldloc.s 23 (System.Int32)
IL_0674: add
IL_0675: stfld System.UInt32 DistrictProductionData::m_tempSnowCover
IL_067A: Label34
IL_067A: Label35
IL_067A: Label37
IL_067A: ldloc.s 23 (System.Int32)
IL_067C: ldarg.2
IL_067D: ldfld System.Byte NetSegment::m_wetness
IL_0682: beq => Label47
IL_0687: ldarg.2
IL_0688: ldfld System.Byte NetSegment::m_wetness
IL_068D: ldloc.s 23 (System.Int32)
IL_068F: sub
IL_0690: call static System.Int32 UnityEngine.Mathf::Abs(System.Int32 value)
IL_0695: ldc.i4.s 10
IL_0697: ble => Label48
IL_069C: ldarg.2
IL_069D: ldloc.s 23 (System.Int32)
IL_069F: conv.u1
IL_06A0: stfld System.Byte NetSegment::m_wetness
IL_06A5: ldsfld InstanceID InstanceID::Empty
IL_06AA: stloc.s 31 (InstanceID)
IL_06AC: ldloca.s 31 (InstanceID)
IL_06AE: ldarg.1
IL_06AF: call System.Void InstanceID::set_NetSegment(System.UInt16 value)
IL_06B4: ldloc.1
IL_06B5: ldloc.s 31 (InstanceID)
IL_06B7: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06BC: ldloca.s 31 (InstanceID)
IL_06BE: ldarg.2
IL_06BF: ldfld System.UInt16 NetSegment::m_startNode
IL_06C4: call System.Void InstanceID::set_NetNode(System.UInt16 value)
IL_06C9: ldloc.1
IL_06CA: ldloc.s 31 (InstanceID)
IL_06CC: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06D1: ldloca.s 31 (InstanceID)
IL_06D3: ldarg.2
IL_06D4: ldfld System.UInt16 NetSegment::m_endNode
IL_06D9: call System.Void InstanceID::set_NetNode(System.UInt16 value)
IL_06DE: ldloc.1
IL_06DF: ldloc.s 31 (InstanceID)
IL_06E1: callvirt System.Void NetManager::AddSmoothColor(InstanceID id)
IL_06E6: br => Label49
IL_06EB: Label48
IL_06EB: ldarg.2
IL_06EC: ldloc.s 23 (System.Int32)
IL_06EE: conv.u1
IL_06EF: stfld System.Byte NetSegment::m_wetness
IL_06F4: ldloc.1
IL_06F5: ldc.i4 256
IL_06FA: stfld System.Int32 NetManager::m_wetnessChanged
IL_06FF: Label26
IL_06FF: Label47
IL_06FF: Label49
IL_06FF: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_0701: ldc.i4 1024
IL_0706: and
IL_0707: brfalse => Label50
IL_070C: ldloc.s 21 (System.Int32)
IL_070E: ldc.i4.3
IL_070F: mul
IL_0710: ldc.i4.1
IL_0711: add
IL_0712: ldc.i4.1
IL_0713: shr
IL_0714: stloc.s 21 (System.Int32)
IL_0716: ldc.i4 700
IL_071B: ldc.i4.s 50
IL_071D: ldarg.2
IL_071E: ldfld System.Byte NetSegment::m_trafficDensity
IL_0723: ldc.i4.6
IL_0724: mul
IL_0725: add
IL_0726: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_072B: stloc.s 32 (System.Int32)
IL_072D: br => Label51
IL_0732: Label50
IL_0732: ldc.i4 500
IL_0737: ldc.i4.s 50
IL_0739: ldarg.2
IL_073A: ldfld System.Byte NetSegment::m_trafficDensity
IL_073F: ldc.i4.4
IL_0740: mul
IL_0741: add
IL_0742: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0747: stloc.s 32 (System.Int32)
IL_0749: Label51
IL_0749: ldarg.0
IL_074A: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_074F: brtrue => Label52
IL_0754: ldloc.0
IL_0755: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_075A: ldloc.s 32 (System.Int32)
IL_075C: ldloc.s 32 (System.Int32)
IL_075E: ldc.i4.s 99
IL_0760: add
IL_0761: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_0766: ldc.i4.s 100
IL_0768: div
IL_0769: stloc.s 33 (System.Int32)
IL_076B: ldarg.2
IL_076C: ldarg.2
IL_076D: ldfld System.Byte NetSegment::m_condition
IL_0772: ldloc.s 33 (System.Int32)
IL_0774: sub
IL_0775: ldc.i4.0
IL_0776: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_077B: conv.u1
IL_077C: stfld System.Byte NetSegment::m_condition
IL_0781: ldarg.2
IL_0782: ldfld System.Byte NetSegment::m_condition
IL_0787: ldc.i4 192
IL_078C: bge => Label53
IL_0791: ldarg.2
IL_0792: ldfld Flags NetSegment::m_flags
IL_0797: ldc.i4 6293504
IL_079C: and
IL_079D: brtrue => Label54
IL_07A2: ldloc.0
IL_07A3: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_07A8: ldc.i4.s 20
IL_07AA: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_07AF: brtrue => Label55
IL_07B4: ldloca.s 34 (TransferManager+TransferOffer)
IL_07B6: initobj TransferManager+TransferOffer
IL_07BC: ldloca.s 34 (TransferManager+TransferOffer)
IL_07BE: ldc.i4 255
IL_07C3: ldarg.2
IL_07C4: ldfld System.Byte NetSegment::m_condition
IL_07C9: sub
IL_07CA: ldc.i4.s 50
IL_07CC: div
IL_07CD: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_07D2: ldloca.s 34 (TransferManager+TransferOffer)
IL_07D4: ldarg.1
IL_07D5: call System.Void TransferOffer::set_NetSegment(System.UInt16 value)
IL_07DA: ldloca.s 34 (TransferManager+TransferOffer)
IL_07DC: ldloc.s 13 (UnityEngine.Vector3)
IL_07DE: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_07E3: ldloca.s 34 (TransferManager+TransferOffer)
IL_07E5: ldc.i4.1
IL_07E6: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_07EB: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_07F0: ldc.i4.s 66
IL_07F2: ldloc.s 34 (TransferManager+TransferOffer)
IL_07F4: callvirt System.Void TransferManager::AddIncomingOffer(TransferReason
material, TransferOffer offer)
IL_07F9: Label25
IL_07F9: Label52
IL_07F9: Label53
IL_07F9: Label54
IL_07F9: Label55
IL_07F9: ldarg.0
IL_07FA: ldfld System.Boolean RoadBaseAI::m_highwayRules
IL_07FF: brtrue => Label56
IL_0804: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_0806: ldc.i4.s 32
IL_0808: and
IL_0809: brfalse => Label57
IL_080E: ldarg.2
IL_080F: dup
IL_0810: ldfld Flags NetSegment::m_flags
IL_0815: ldc.i4 1048576
IL_081A: or
IL_081B: stfld Flags NetSegment::m_flags
IL_0820: br => Label58
IL_0825: Label57
IL_0825: ldarg.2
IL_0826: dup
IL_0827: ldfld Flags NetSegment::m_flags
IL_082C: ldc.i4 -1048577
IL_0831: and
IL_0832: stfld Flags NetSegment::m_flags
IL_0837: Label58
IL_0837: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_0839: ldc.i4 128
IL_083E: and
IL_083F: brfalse => Label59
IL_0844: ldarg.2
IL_0845: dup
IL_0846: ldfld Flags NetSegment::m_flags
IL_084B: ldc.i4 8388608
IL_0850: or
IL_0851: stfld Flags NetSegment::m_flags
IL_0856: br => Label60
IL_085B: Label59
IL_085B: ldarg.2
IL_085C: dup
IL_085D: ldfld Flags NetSegment::m_flags
IL_0862: ldc.i4 -8388609
IL_0867: and
IL_0868: stfld Flags NetSegment::m_flags
IL_086D: Label60
IL_086D: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_086F: ldc.i4 512
IL_0874: and
IL_0875: brfalse => Label61
IL_087A: ldarg.2
IL_087B: dup
IL_087C: ldfld Flags NetSegment::m_flags
IL_0881: ldc.i4 16777216
IL_0886: or
IL_0887: stfld Flags NetSegment::m_flags
IL_088C: br => Label62
IL_0891: Label61
IL_0891: ldarg.2
IL_0892: dup
IL_0893: ldfld Flags NetSegment::m_flags
IL_0898: ldc.i4 -16777217
IL_089D: and
IL_089E: stfld Flags NetSegment::m_flags
IL_08A3: Label62
IL_08A3: ldloc.s 20 (DistrictPolicies+CityPlanning)
IL_08A5: ldc.i4 65536
IL_08AA: and
IL_08AB: brfalse => Label63
IL_08B0: ldarg.2
IL_08B1: dup
IL_08B2: ldfld Flags NetSegment::m_flags
IL_08B7: ldc.i4 256
IL_08BC: or
IL_08BD: stfld Flags NetSegment::m_flags
IL_08C2: br => Label64
IL_08C7: Label63
IL_08C7: ldarg.2
IL_08C8: dup
IL_08C9: ldfld Flags NetSegment::m_flags
IL_08CE: ldc.i4 -257
IL_08D3: and
IL_08D4: stfld Flags NetSegment::m_flags
IL_08D9: Label56
IL_08D9: Label64
IL_08D9: ldarg.0
IL_08DA: ldfld System.Int32 RoadBaseAI::m_noiseAccumulation
IL_08DF: ldloc.s 21 (System.Int32)
IL_08E1: mul
IL_08E2: ldc.i4.s 100
IL_08E4: div
IL_08E5: stloc.s 35 (System.Int32)
IL_08E7: ldloc.s 35 (System.Int32)
IL_08E9: brfalse => Label65
IL_08EE: ldloc.s 11 (UnityEngine.Vector3)
IL_08F0: ldloc.s 12 (UnityEngine.Vector3)
IL_08F2: call static System.Single
UnityEngine.Vector3::Distance(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_08F7: stloc.s 36 (System.Single)
IL_08F9: ldloc.s 36 (System.Single)
IL_08FB: ldarg.0
IL_08FC: ldfld System.Single RoadBaseAI::m_noiseRadius
IL_0901: div
IL_0902: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single
f)
IL_0907: stloc.s 37 (System.Int32)
IL_0909: ldc.i4.0
IL_090A: stloc.s 38 (System.Int32)
IL_090C: br => Label66
IL_0911: Label67
IL_0911: ldloc.s 11 (UnityEngine.Vector3)
IL_0913: ldloc.s 12 (UnityEngine.Vector3)
IL_0915: ldloc.s 38 (System.Int32)
IL_0917: ldc.i4.1
IL_0918: add
IL_0919: conv.r4
IL_091A: ldloc.s 37 (System.Int32)
IL_091C: ldc.i4.1
IL_091D: add
IL_091E: conv.r4
IL_091F: div
IL_0920: call static UnityEngine.Vector3
UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b,
System.Single t)
IL_0925: stloc.s 39 (UnityEngine.Vector3)
IL_0927: call static ImmaterialResourceManager
ColossalFramework.Singleton`1<ImmaterialResourceManager>::get_instance()
IL_092C: ldc.i4.8
IL_092D: ldloc.s 35 (System.Int32)
IL_092F: ldloc.s 39 (UnityEngine.Vector3)
IL_0931: ldarg.0
IL_0932: ldfld System.Single RoadBaseAI::m_noiseRadius
IL_0937: callvirt System.Int32 ImmaterialResourceManager::AddResource(Resource
resource, System.Int32 rate, UnityEngine.Vector3 position, System.Single radius)
IL_093C: pop
IL_093D: ldloc.s 38 (System.Int32)
IL_093F: ldc.i4.1
IL_0940: add
IL_0941: stloc.s 38 (System.Int32)
IL_0943: Label66
IL_0943: ldloc.s 38 (System.Int32)
IL_0945: ldloc.s 37 (System.Int32)
IL_0947: blt => Label67
IL_094C: Label65
IL_094C: ldarg.2
IL_094D: ldfld System.Byte NetSegment::m_trafficDensity
IL_0952: ldc.i4.s 50
IL_0954: blt => Label68
IL_0959: ldarg.2
IL_095A: ldfld System.Single NetSegment::m_averageLength
IL_095F: ldc.r4 25
IL_0964: bge.un => Label69
IL_0969: ldloc.1
IL_096A: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_096F: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0974: ldarg.2
IL_0975: ldfld System.UInt16 NetSegment::m_startNode
IL_097A: ldelema NetNode
IL_097F: ldfld Flags NetNode::m_flags
IL_0984: ldc.i4 10485760
IL_0989: and
IL_098A: ldc.i4 8388608
IL_098F: bne.un => Label70
IL_0994: ldloc.1
IL_0995: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_099A: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_099F: ldarg.2
IL_09A0: ldfld System.UInt16 NetSegment::m_endNode
IL_09A5: ldelema NetNode
IL_09AA: ldfld Flags NetNode::m_flags
IL_09AF: ldc.i4 10485760
IL_09B4: and
IL_09B5: ldc.i4 8388608
IL_09BA: bne.un => Label71
IL_09BF: call static GuideManager
ColossalFramework.Singleton`1<GuideManager>::get_instance()
IL_09C4: ldfld GuideController SimulationManagerBase`2<GuideManager,
GuideController>::m_properties
IL_09C9: stloc.s 40 (GuideController)
IL_09CB: ldloc.s 40 (GuideController)
IL_09CD: brfalse => Label72
IL_09D2: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_09D7: ldfld NetSegmentInstanceGuide NetManager::m_shortRoadTraffic
IL_09DC: ldloc.s 40 (GuideController)
IL_09DE: ldfld GuideInfo GuideController::m_shortRoadTraffic
IL_09E3: ldarg.1
IL_09E4: ldc.i4.0
IL_09E5: callvirt System.Void NetSegmentInstanceGuide::Activate(GuideInfo
guideInfo, System.UInt16 segmentID, System.Boolean ignoreID)
IL_09EA: Label68
IL_09EA: Label69
IL_09EA: Label70
IL_09EA: Label71
IL_09EA: Label72
IL_09EA: ldarg.2
IL_09EB: ldfld Flags NetSegment::m_flags
IL_09F0: ldc.i4.8
IL_09F1: and
IL_09F2: brfalse => Label73
IL_09F7: call static GuideManager
ColossalFramework.Singleton`1<GuideManager>::get_instance()
IL_09FC: ldfld GuideController SimulationManagerBase`2<GuideManager,
GuideController>::m_properties
IL_0A01: stloc.s 41 (GuideController)
IL_0A03: ldloc.s 41 (GuideController)
IL_0A05: brfalse => Label74
IL_0A0A: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0A0F: ldfld NetSegmentInstanceGuide NetManager::m_roadDestroyed
IL_0A14: ldloc.s 41 (GuideController)
IL_0A16: ldfld GuideInfo GuideController::m_roadDestroyed
IL_0A1B: ldarg.1
IL_0A1C: ldc.i4.0
IL_0A1D: callvirt System.Void NetSegmentInstanceGuide::Activate(GuideInfo
guideInfo, System.UInt16 segmentID, System.Boolean ignoreID)
IL_0A22: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0A27: ldfld ServiceTypeGuide NetManager::m_roadDestroyed2
IL_0A2C: ldloc.s 41 (GuideController)
IL_0A2E: ldfld GuideInfo GuideController::m_roadDestroyed2
IL_0A33: ldarg.0
IL_0A34: ldfld NetInfo NetAI::m_info
IL_0A39: ldfld ItemClass NetInfo::m_class
IL_0A3E: ldfld Service ItemClass::m_service
IL_0A43: callvirt System.Void ServiceTypeGuide::Activate(GuideInfo guideInfo,
Service service)
IL_0A48: Label74
IL_0A48: ldloc.0
IL_0A49: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0A4E: ldc.i4.8
IL_0A4F: shr.un
IL_0A50: ldc.i4.s 15
IL_0A52: and
IL_0A53: conv.u8
IL_0A54: ldarg.1
IL_0A55: ldc.i4.s 15
IL_0A57: and
IL_0A58: conv.i8
IL_0A59: bne.un => Label75
IL_0A5E: ldarg.2
IL_0A5F: ldfld System.Single NetSegment::m_averageLength
IL_0A64: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_0A69: stloc.s 42 (System.Int32)
IL_0A6B: call static StatisticsManager
ColossalFramework.Singleton`1<StatisticsManager>::get_instance()
IL_0A70: ldc.i4.s 53
IL_0A72: callvirt StatisticBase StatisticsManager::Acquire(StatisticType type)
IL_0A77: stloc.s 43 (StatisticBase)
IL_0A79: ldloc.s 43 (StatisticBase)
IL_0A7B: ldloc.s 42 (System.Int32)
IL_0A7D: callvirt abstract virtual System.Void StatisticBase::Add(System.Int32
delta)
IL_0A82: Label73
IL_0A82: Label75
IL_0A82: ldarg.2
IL_0A83: ldloc.2
IL_0A84: stfld Problem NetSegment::m_problems
IL_0A89: // end original
IL_0A89: Label0
IL_0A89: 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: ldnull
IL_0018: ldarg 0
IL_001C: ldarg 1
IL_0020: call static System.Boolean
TrafficManager.Patch._RoadBaseAI.TrafficLightSimulationStepPatch::Prefix(RoadBaseAI
__instance, System.UInt16 nodeID, NetNode& data)
IL_0025: stloc 20 (System.Boolean)
IL_0029: Label1
IL_0029: nop
IL_002A: ldloc 20 (System.Boolean)
IL_002E: brfalse => Label0
IL_0033: // start original
IL_0033: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0038: stloc.0
IL_0039: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_003E: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0043: stloc.1
IL_0044: ldc.i4.0
IL_0045: stloc.2
IL_0046: ldc.i4.0
IL_0047: stloc.3
IL_0048: ldc.i4.0
IL_0049: stloc.s 4 (System.Int32)
IL_004B: br => Label2
IL_0050: Label14
IL_0050: ldarg.1
IL_0051: ldloc.s 4 (System.Int32)
IL_0053: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0058: stloc.s 5 (System.UInt16)
IL_005A: ldloc.s 5 (System.UInt16)
IL_005C: brfalse => Label3
IL_0061: ldloc.0
IL_0062: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0067: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_006C: ldloc.s 5 (System.UInt16)
IL_006E: ldelema NetSegment
IL_0073: call NetInfo NetSegment::get_Info()
IL_0078: stloc.s 6 (NetInfo)
IL_007A: ldloc.s 6 (NetInfo)
IL_007C: ldfld ItemClass NetInfo::m_class
IL_0081: ldfld Service ItemClass::m_service
IL_0086: ldc.i4.s 9
IL_0088: beq => Label4
IL_008D: ldloc.s 6 (NetInfo)
IL_008F: ldfld Lane[] NetInfo::m_lanes
IL_0094: brfalse => Label5
IL_0099: ldloc.0
IL_009A: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_009F: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00A4: ldloc.s 5 (System.UInt16)
IL_00A6: ldelema NetSegment
IL_00AB: ldfld System.UInt16 NetSegment::m_startNode
IL_00B0: ldarg.0
IL_00B1: ceq
IL_00B3: stloc.s 7 (System.Boolean)
IL_00B5: ldloc.0
IL_00B6: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_00BB: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00C0: ldloc.s 5 (System.UInt16)
IL_00C2: ldelema NetSegment
IL_00C7: ldfld System.UInt32 NetSegment::m_lanes
IL_00CC: stloc.s 8 (System.UInt32)
IL_00CE: ldc.i4.0
IL_00CF: stloc.s 9 (System.Int32)
IL_00D1: br => Label6
IL_00D6: Label12
IL_00D6: ldloc.s 6 (NetInfo)
IL_00D8: ldfld Lane[] NetInfo::m_lanes
IL_00DD: ldloc.s 9 (System.Int32)
IL_00DF: ldelem.ref
IL_00E0: ldfld LaneType Lane::m_laneType
IL_00E5: ldc.i4.1
IL_00E6: bne.un => Label7
IL_00EB: ldloc.0
IL_00EC: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_00F1: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_00F6: ldloc.s 8 (System.UInt32)
IL_00F8: conv.u
IL_00F9: ldelema NetLane
IL_00FE: ldloc.s 7 (System.Boolean)
IL_0100: brfalse => Label8
IL_0105: ldc.r4 0
IL_010A: br => Label9
IL_010F: Label8
IL_010F: ldc.r4 1
IL_0114: Label9
IL_0114: call UnityEngine.Vector3 NetLane::CalculatePosition(System.Single
laneOffset)
IL_0119: stloc.s 10 (UnityEngine.Vector3)
IL_011B: ldloc.s 10 (UnityEngine.Vector3)
IL_011D: call static System.Boolean
TrainTrackBaseAI::CheckOverlap(UnityEngine.Vector3 pos)
IL_0122: brfalse => Label10
IL_0127: ldc.i4.1
IL_0128: stloc.2
IL_0129: Label7
IL_0129: Label10
IL_0129: ldloc.0
IL_012A: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_012F: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0134: ldloc.s 8 (System.UInt32)
IL_0136: conv.u
IL_0137: ldelema NetLane
IL_013C: ldfld System.UInt32 NetLane::m_nextLane
IL_0141: stloc.s 8 (System.UInt32)
IL_0143: ldloc.s 9 (System.Int32)
IL_0145: ldc.i4.1
IL_0146: add
IL_0147: stloc.s 9 (System.Int32)
IL_0149: Label6
IL_0149: ldloc.s 9 (System.Int32)
IL_014B: ldloc.s 6 (NetInfo)
IL_014D: ldfld Lane[] NetInfo::m_lanes
IL_0152: ldlen
IL_0153: conv.i4
IL_0154: bge => Label11
IL_0159: ldloc.s 8 (System.UInt32)
IL_015B: brtrue => Label12
IL_0160: Label5
IL_0160: Label11
IL_0160: ldarg.0
IL_0161: ldloc.0
IL_0162: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0167: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_016C: ldloc.s 5 (System.UInt16)
IL_016E: ldelema NetSegment
IL_0173: ldloc.1
IL_0174: ldc.i4 256
IL_0179: sub
IL_017A: ldloca.s 11 (RoadBaseAI+TrafficLightState)
IL_017C: ldloca.s 12 (RoadBaseAI+TrafficLightState)
IL_017E: ldloca.s 13 (System.Boolean)
IL_0180: ldloca.s 14 (System.Boolean)
IL_0182: 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_0187: ldloc.s 13 (System.Boolean)
IL_0189: brfalse => Label13
IL_018E: ldc.i4.1
IL_018F: stloc.2
IL_0190: Label3
IL_0190: Label4
IL_0190: Label13
IL_0190: ldloc.s 4 (System.Int32)
IL_0192: ldc.i4.1
IL_0193: add
IL_0194: stloc.s 4 (System.Int32)
IL_0196: Label2
IL_0196: ldloc.s 4 (System.Int32)
IL_0198: ldc.i4.8
IL_0199: blt => Label14
IL_019E: ldloc.2
IL_019F: stloc.3
IL_01A0: ldc.i4.0
IL_01A1: stloc.s 15 (System.Int32)
IL_01A3: br => Label15
IL_01A8: Label29
IL_01A8: ldarg.1
IL_01A9: ldloc.s 15 (System.Int32)
IL_01AB: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_01B0: stloc.s 16 (System.UInt16)
IL_01B2: ldloc.s 16 (System.UInt16)
IL_01B4: brfalse => Label16
IL_01B9: ldloc.0
IL_01BA: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01BF: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01C4: ldloc.s 16 (System.UInt16)
IL_01C6: ldelema NetSegment
IL_01CB: call NetInfo NetSegment::get_Info()
IL_01D0: stloc.s 17 (NetInfo)
IL_01D2: ldarg.0
IL_01D3: ldloc.0
IL_01D4: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01D9: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01DE: ldloc.s 16 (System.UInt16)
IL_01E0: ldelema NetSegment
IL_01E5: ldloc.1
IL_01E6: ldc.i4 256
IL_01EB: sub
IL_01EC: ldloca.s 18 (RoadBaseAI+TrafficLightState)
IL_01EE: ldloca.s 19 (RoadBaseAI+TrafficLightState)
IL_01F0: call static System.Void
RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData,
System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState&
pedestrianLightState)
IL_01F5: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01F7: ldc.i4.s -2
IL_01F9: and
IL_01FA: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_01FC: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_01FE: ldc.i4.s -2
IL_0200: and
IL_0201: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0203: ldloc.s 17 (NetInfo)
IL_0205: ldfld ItemClass NetInfo::m_class
IL_020A: ldfld Service ItemClass::m_service
IL_020F: ldc.i4.s 9
IL_0211: bne.un => Label17
IL_0216: ldloc.3
IL_0217: brfalse => Label18
IL_021C: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_021E: ldc.i4.2
IL_021F: and
IL_0220: brtrue => Label19
IL_0225: ldc.i4.3
IL_0226: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0228: Label19
IL_0228: br => Label20
IL_022D: Label18
IL_022D: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_022F: ldc.i4.2
IL_0230: and
IL_0231: brfalse => Label21
IL_0236: ldc.i4.1
IL_0237: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0239: Label20
IL_0239: Label21
IL_0239: ldc.i4.0
IL_023A: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_023C: br => Label22
IL_0241: Label17
IL_0241: ldloc.3
IL_0242: brfalse => Label23
IL_0247: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0249: ldc.i4.2
IL_024A: and
IL_024B: brfalse => Label24
IL_0250: ldc.i4.1
IL_0251: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0253: Label24
IL_0253: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0255: ldc.i4.2
IL_0256: and
IL_0257: brtrue => Label25
IL_025C: ldc.i4.3
IL_025D: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_025F: Label25
IL_025F: br => Label26
IL_0264: Label23
IL_0264: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0266: ldc.i4.2
IL_0267: and
IL_0268: brtrue => Label27
IL_026D: ldc.i4.3
IL_026E: stloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0270: Label27
IL_0270: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0272: ldc.i4.2
IL_0273: and
IL_0274: brfalse => Label28
IL_0279: ldc.i4.1
IL_027A: stloc.s 19 (RoadBaseAI+TrafficLightState)
IL_027C: Label22
IL_027C: Label26
IL_027C: Label28
IL_027C: ldarg.0
IL_027D: ldloc.0
IL_027E: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0283: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0288: ldloc.s 16 (System.UInt16)
IL_028A: ldelema NetSegment
IL_028F: ldloc.1
IL_0290: ldloc.s 18 (RoadBaseAI+TrafficLightState)
IL_0292: ldloc.s 19 (RoadBaseAI+TrafficLightState)
IL_0294: ldc.i4.0
IL_0295: ldc.i4.0
IL_0296: 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_029B: Label16
IL_029B: ldloc.s 15 (System.Int32)
IL_029D: ldc.i4.1
IL_029E: add
IL_029F: stloc.s 15 (System.Int32)
IL_02A1: Label15
IL_02A1: ldloc.s 15 (System.Int32)
IL_02A3: ldc.i4.8
IL_02A4: blt => Label29
IL_02A9: // end original
IL_02A9: Label0
IL_02A9: 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._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<CitizenManager>::get_instance()
IL_0045: stloc.1
IL_0046: ldloc.1
IL_0047: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_004C: ldfld Citizen[] Array32`1<Citizen>::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<NetManager>::get_instance()
IL_0089: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008E: ldfld NetNode[] Array16`1<NetNode>::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<TransportManager>::get_instance()
IL_00AA: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_00AF: ldfld TransportLine[] Array16`1<TransportLine>::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<Citizen> CitizenManager::m_citizens
IL_0145: ldfld Citizen[] Array32`1<Citizen>::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<Citizen> CitizenManager::m_citizens
IL_016E: ldfld Citizen[] Array32`1<Citizen>::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<BuildingManager>::get_instance()
IL_018A: stloc.s 5 (BuildingManager)
IL_018C: ldloc.s 5 (BuildingManager)
IL_018E: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0193: ldfld Building[] Array16`1<Building>::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<Building> BuildingManager::m_buildings
IL_01BE: ldfld Building[] Array16`1<Building>::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: 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<SimulationManager>::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<BuildingManager>::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<InfoManager>::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<NetManager>::get_instance()
IL_0036: stloc.0
IL_0037: ldloc.0
IL_0038: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003D: ldfld NetNode[] Array16`1<NetNode>::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<NetNode> NetManager::m_nodes
IL_0074: ldfld NetNode[] Array16`1<NetNode>::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<System.UInt16>
NetManager::m_updateNameVisibility
IL_00CF: ldarg.1
IL_00D0: callvirt System.Boolean
System.Collections.Generic.HashSet`1<System.UInt16>::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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<ColossalFramework.Packaging.Package/Asset>
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<CustomAssetMetaData>::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<CustomAssetMetaData>::GetListingMetaData(System.Int32 index)
IL_0037: stloc.0
IL_0038: ldarg.0
IL_0039: ldloc.0
IL_003A: call System.Void
LoadSavePanelBase`1<CustomAssetMetaData>::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<CustomAssetMetaData>::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<SimulationManager>::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<SimulationManager>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_010B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<VehicleInfo>::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<VehicleInfo>::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<VehicleInfo>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_023B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<BuildingInfo>::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<BuildingInfo>::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<BuildingInfo>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_036B: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<BuildingInfo>::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<BuildingInfo>::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<BuildingInfo>::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<BuildingManager>::get_instance()
IL_0482: callvirt virtual System.Void SimulationManagerBase`2<BuildingManager,
BuildingProperties>::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.Asset>
ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p)
IL_04A5: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
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<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
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<NetInfo>::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<NetInfo>::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<NetInfo>::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.Packa

You might also like